""" 跳高台接金币.py 请完善程序,让小球接到金币后会显示游戏结束几个字。 """ from sprites import Sprite,Key,Clock ball = Sprite(1,pos=(-150,30)) # 新建球 ball.scale(0.5) # 球缩小 screen = ball.getscreen() # 得到屏幕 screen.setup(480,360) # 设定宽高 screen.bgpic('res/sky.png') g1 = Sprite('square',pos=(100,100),tag='ground')# 新建平台,标签为ground g1.color('brown') g1.shapesize(0.5,5) # 变形 g2 = Sprite('square',pos=(-50,-50),tag='ground')# 新建平台,标签为ground g2.color('brown') g2.shapesize(0.5,5) # 变形 g3 = Sprite('square',pos=(150,-100),tag='ground') g3.color('brown') g3.shapesize(0.5,5) # 这是下面最长的那个地面 g4 = Sprite('square',pos=(0,-165),tag='ground') g4.color('brown') g4.shapesize(0.5,24) g5 = Sprite('square',pos=(-150,45),tag='ground') g5.color('brown') g5.shapesize(0.5,4) # 以下会把'coins'当成一个路径去寻找下面有没有0.png,1.png,然后加载为角色的造型 coin = Sprite('coins',pos=(100,130)) coin.scale(0.2) akey = Key('a') # 实例化a键 dkey = Key('d') # 实例化d键 wkey = Key('w') # 实例化w键 screen.listen() # 监听按键检测 dx = 0 dy = -1 clock = Clock() # 新建时钟对象 while True: x = ball.xcor() + dx y = ball.ycor() + dy old_x = ball.xcor() # 记录先前球的x坐标 old_y = ball.ycor() # 记录先前球的y坐标 ball.goto(x,y) if ball.collide_others('ground'): # 如果小球碰到标签为'ground'的平台 if akey.down():dx=dx - 0.2 elif dkey.down():dx=dx + 0.2 else:dx= dx*0.9 # 实现有点滑行的效果 dy = 0 # 小球碰到地面那么垂直速度设为0,就不会往下掉了 ball.goto(old_x,old_y) # 并且还回到上一次x,y坐标 if wkey.down():dy = 10 # 如果这个时候按w键,则dy为10,实现起跳 else: dy = dy - 0.5 coin.nextshape() # 金币切换到下一个造型 if coin.collide(ball): coin.play('collect.wav') coin.hide() screen.update() clock.tick(60)
李兴球
李兴球的博客是Python创意编程原创博客
要发表评论,您必须先登录。
发表评论