本文整理汇总了Python中pygame.Rect.clamp方法的典型用法代码示例。如果您正苦于以下问题:Python Rect.clamp方法的具体用法?Python Rect.clamp怎么用?Python Rect.clamp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pygame.Rect
的用法示例。
在下文中一共展示了Rect.clamp方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from pygame import Rect [as 别名]
# 或者: from pygame.Rect import clamp [as 别名]
def __init__ (self, real, within, player, vel, dirn, pos):
Entity.__init__(self, vel)
self.size = conf.MINE['size']
r = Rect((0, 0), self.size)
r.center = pos
self.graphics.pos = r.clamp(within).topleft
self.real = real
self.player = player
self.placed = None
示例2: Player
# 需要导入模块: from pygame import Rect [as 别名]
# 或者: from pygame.Rect import clamp [as 别名]
class Player(WorldObject):
def __init__(self, identifier, nick, color, pos, vel=(0,0)):
WorldObject.__init__(self, identifier)
self.nick = nick
self.color = color
self.rect = Rect((0,0), settings.PLAYER_SIZE)
self.vx, self.vy = vel
self.x, self.y = pos
self.rect.center = pos
self.local = False
dispatcher.connect(self.move, signal=signals.MOVE_PLAYER, sender=self)
def move(self, x, y, vx, vy):
if vx and vy:
vx *= 1 / math.sqrt(2)
vy *= 1 / math.sqrt(2)
self.x = x
self.y = y
self.vx = vx * settings.PLAYER_SPEED
self.vy = vy * settings.PLAYER_SPEED
def update(self, dt):
self.x += self.vx * dt
self.y += self.vy * dt
self.rect.centerx = self.x
self.rect.centery = self.y
clamp = self.rect.clamp(self.world.bounds)
if clamp != self.rect:
self.rect = clamp
self.x = self.rect.centerx
self.y = self.rect.centery