本文整理汇总了Python中ball.Ball.hit方法的典型用法代码示例。如果您正苦于以下问题:Python Ball.hit方法的具体用法?Python Ball.hit怎么用?Python Ball.hit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ball.Ball
的用法示例。
在下文中一共展示了Ball.hit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: GameLayer
# 需要导入模块: from ball import Ball [as 别名]
# 或者: from ball.Ball import hit [as 别名]
class GameLayer(Layer):
is_event_handler = True
def __init__(self):
super(GameLayer, self).__init__()
# 添加一个 板子
self.paddle = Paddle('images/ash.png')
self.add(self.paddle.sprite)
self.ball = Ball('images/pokem.png')
self.add(self.ball.sprite)
# 添加一个 label 显示当前的游戏状态
self.hud = Label('皮卡丘: 0')
self.hud.position = (0, 450)
self.add(self.hud)
# 添加一个 label 显示当前游戏关卡
self.level = Label('Level 1')
self.level.position = (100, 450)
self.add(self.level)
# 添加一个变量来记录金币
self.gold = 0
# 设置 4 个按键状态
self.key_pressed_left = False
self.key_pressed_right = False
self.key_pressed_up = False
self.key_pressed_down = False
self.blocks = []
# 调用 reset 函数初始化状态
self.reset()
# 定期调用 self.update 函数
# FPS frame per second 每秒帧数
self.schedule(self.update)
def reset(self):
self.gold = 0
self.update_hud()
self.paddle.reset()
self.ball.reset()
# 添加砖块并且显示出来
# 先删除残存的砖块
for b in self.blocks:
self.remove(b)
# 再初始化新的砖块
self.blocks = []
levelfile = 'level.txt'
positions = level_from_file(levelfile)
number_of_blocks = len(positions)
for i in range(number_of_blocks):
b = Sprite('images/pikachu.png', anchor=(0, 0))
b.position = positions[i]
# b.position = (randint(0, 500), 400)
self.add(b)
self.blocks.append(b)
def game_over(self):
print('游戏结束,跪了。捉到了', self.gold, '只皮卡丘')
# 没接到球,跳转到结束画面(失败)
scene = Scene(GameOver())
director.replace(SplitColsTransition(scene))
def game_win(self):
# 打完所有皮卡丘,跳转到下一关或(成功)
scene = Scene(GameWin())
director.replace(SplitColsTransition(scene))
def update_hud(self):
self.hud.element.text = '皮卡丘:' + str(self.gold)
def update_blocks(self):
# 判断是否撞到了砖块
for b in self.blocks:
if collides(self.ball.sprite, b):
# self.ball_speedy = -self.ball_speedy
self.ball.hit()
self.remove(b)
self.blocks.remove(b)
self.gold += 1
# self.speed += 1
self.update_hud()
print('捉到', self.gold, '只皮卡丘')
break
if len(self.blocks) == 0:
self.game_win()
def update_ball(self):
if self.ball.fired:
self.ball.update()
else:
bx, by = self.ball.sprite.position
px, py = self.paddle.sprite.position
self.ball.sprite.position = (px, by)
collide = collides(self.ball.sprite, self.paddle.sprite)
if collide:
self.ball.hit()
if self.ball.dead():
self.game_over()
#.........这里部分代码省略.........