多个 类 handlin - Pygame
multiple classes handlin - Pygame
我正在创建一个我使用多个文件的游戏,下面的代码是我有精灵的文件,2 classes Player()
代表一个水坑,和一个球 Ball()
所以我想以某种方式(我不知道也许从玩家 class 继承但不能用它做任何事情)控制我在 Player()
在 [=16] 创建的水坑的边缘=]以便当球位于 Player()
的水坑边缘之间并且当球为:>= 560 像素
时弹跳
class Player(pg.sprite.Sprite):
def __init__(self):
pg.sprite.Sprite.__init__(self)
self.image = pg.Surface((130,20))
self.image.fill(black)
self.rect = self.image.get_rect()
self.rect.centerx = width/2
self.rect.y = 560
def update(self):
self.vx = 0
keys = pg.key.get_pressed()
if keys[pg.K_LEFT]:
self.vx = -15
if keys[pg.K_RIGHT]:
self.vx = 15
if self.rect.left <= 0:
self.rect.left = 0
if self.rect.right >= width:
self.rect.right = width
self.rect.x += self.vx
class Ball(pg.sprite.Sprite):
def __init__(self):
pg.sprite.Sprite.__init__(self)
self.image = pg.Surface((10,10))
self.image.fill(black)
self.rect = self.image.get_rect()
self.rect.centerx = width / 2
self.rect.centery = height / 2
self.vx = -4
self.vy = 10
def update(self):
if self.rect.y >= 560:# and... how do i declare the puddle here???
self.vy = -self.vy
if self.rect.top <= 0:
self.vy = -self.vy
if self.rect.right <= 0:
self.vx = -self.vx
if self.rect.left >= width:
self.vx = -self.vx
self.rect.x += self.vx
self.rect.y += self.vy
您可以使用 paddle.rect.colliderect(ball.rect) 来测试球和桨之间的碰撞。不过之后您需要将球移出碰撞区域。
我正在创建一个我使用多个文件的游戏,下面的代码是我有精灵的文件,2 classes Player()
代表一个水坑,和一个球 Ball()
所以我想以某种方式(我不知道也许从玩家 class 继承但不能用它做任何事情)控制我在 Player()
在 [=16] 创建的水坑的边缘=]以便当球位于 Player()
的水坑边缘之间并且当球为:>= 560 像素
class Player(pg.sprite.Sprite):
def __init__(self):
pg.sprite.Sprite.__init__(self)
self.image = pg.Surface((130,20))
self.image.fill(black)
self.rect = self.image.get_rect()
self.rect.centerx = width/2
self.rect.y = 560
def update(self):
self.vx = 0
keys = pg.key.get_pressed()
if keys[pg.K_LEFT]:
self.vx = -15
if keys[pg.K_RIGHT]:
self.vx = 15
if self.rect.left <= 0:
self.rect.left = 0
if self.rect.right >= width:
self.rect.right = width
self.rect.x += self.vx
class Ball(pg.sprite.Sprite):
def __init__(self):
pg.sprite.Sprite.__init__(self)
self.image = pg.Surface((10,10))
self.image.fill(black)
self.rect = self.image.get_rect()
self.rect.centerx = width / 2
self.rect.centery = height / 2
self.vx = -4
self.vy = 10
def update(self):
if self.rect.y >= 560:# and... how do i declare the puddle here???
self.vy = -self.vy
if self.rect.top <= 0:
self.vy = -self.vy
if self.rect.right <= 0:
self.vx = -self.vx
if self.rect.left >= width:
self.vx = -self.vx
self.rect.x += self.vx
self.rect.y += self.vy
您可以使用 paddle.rect.colliderect(ball.rect) 来测试球和桨之间的碰撞。不过之后您需要将球移出碰撞区域。