当前位置:   article > 正文

Python音乐跳舞毯(基于海龟画图创作的作品,来自Python创意编程100例sprites篇_Python精灵模块)_sprites模块按键检测

sprites模块按键检测

出色的配音是本作品的一大亮点哦! 相信这竟然是Python用海龟画图制作的作品吗?

sprites模块就是用python的turtle模块制作的!所以本作品仍属于Python海龟画图作品

  1. """
  2. 音乐跳舞毯模拟,当箭头滑过中间的箭头时,按相应的方向箭头即可加分。
  3. 本程序也演示了如何播放多首背景音乐。
  4. 注意音乐文件名下划线中的数字是时长,这时预先查看到设故意设成这样的。
  5. 也可以用相关模块的命令读出wav的时长。
  6. 由于借用了pygame的混音器,所以本程序正常运行还要安装pygame模块。
  7. 共有8首背景音乐,2个声音效果。声音播放用了winsound模块的PlaySound命令(sprites模块封装)
  8. 和pygame模块的混音器功能。
  9. """
  10. from sprites import * # 从精灵模块导入所有命令
  11. from pygame import mixer # 从pygame模块导入混音器
  12. mixer.init() # 初始化混音器
  13. soundeffect = mixer.Sound('fairydust.wav') # 实例化音频对象
  14. Sprite(visible=False).play('dance celebrate.wav') # 封面时的音效
  15. screen = Screen()
  16. screen.setup(480,360)
  17. screen.bgpic('res/cover.png')
  18. spacekey = Key('space') # 空格键
  19. mouseleftkey = Mouse(1) # 鼠标左键
  20. screen.listen()
  21. while not (mouseleftkey.down() or spacekey.down()):
  22. screen.update()
  23. screen.bgpic('res/stage-kiss.png')
  24. arrowpng = 'res/绿箭头.png'
  25. # 下面是用于碰撞的箭头,可以把它们设为完全透明
  26. rightarrow = Sprite(shape=arrowpng,pos=(90,0))
  27. leftarrow = Sprite(shape=arrowpng,pos=(-90,0))
  28. leftarrow.right(180)
  29. uparrow = Sprite(shape=arrowpng,pos=(-30,0))
  30. uparrow.left(90)
  31. downarrow = Sprite(shape=arrowpng,pos=(30,0))
  32. downarrow.right(90)
  33. # 下面是移动的箭头
  34. rightarrow2 = Sprite(shape=arrowpng,pos=(90,-180))
  35. leftarrow2 = Sprite(shape=arrowpng,pos=(-90,-280))
  36. leftarrow2.right(180)
  37. uparrow2 = Sprite(shape=arrowpng,pos=(-30,-2000))
  38. uparrow2.left(90)
  39. downarrow2 = Sprite(shape=arrowpng,pos=(30,-1000))
  40. downarrow2.right(90)
  41. score = 0
  42. def rightreleased():
  43. global score
  44. if rightarrow2.collide(rightarrow):
  45. rightarrow.left(1)
  46. score += 10
  47. effect((0,120),'res/add10.png',500)
  48. soundeffect.play()
  49. def leftreleased():
  50. global score
  51. if leftarrow2.collide(leftarrow):
  52. leftarrow.left(1)
  53. score += 10
  54. effect((0,120),'res/add10.png',500)
  55. soundeffect.play()
  56. def upreleased():
  57. global score
  58. if uparrow2.collide(uparrow):
  59. uparrow.left(1)
  60. score += 10
  61. effect((0,120),'res/add10.png',500)
  62. soundeffect.play()
  63. def downreleased():
  64. global score
  65. if downarrow2.collide(downarrow):
  66. downarrow.left(1)
  67. score += 10
  68. effect((0,120),'res/add10.png',500)
  69. soundeffect.play()
  70. screen.onkey(rightreleased,"Right")
  71. screen.onkey(leftreleased,"Left")
  72. screen.onkey(upreleased,"Up")
  73. screen.onkey(downreleased,"Down")
  74. musics = ['music/01_99.wav','music/02_118.wav','music/03_96.wav',
  75. 'music/04_329.wav','music/05_275.wav','music/06_141.wav',
  76. 'music/07_118.wav','music/08_140.wav']
  77. index = 0
  78. m = Sprite(visible=False)
  79. def playmusic():
  80. global index
  81. music = musics[index]
  82. m.play(music)
  83. times = music.split('/')[-1].split('.')[0].split('_')[-1]
  84. times = int(times) * 1000
  85. index = index + 1
  86. if index < len(musics):
  87. screen.ontimer(playmusic,times)
  88. playmusic() # 播放多首音乐
  89. clock = Clock()
  90. while True:
  91. # 右方向箭头按键检测
  92. rightarrow2.addy(2)
  93. if rightarrow2.ycor() > 180:
  94. rightarrow2.reborn(90,-180+random.randint(-300,0))
  95. # 左方向箭头按键检测
  96. leftarrow2.addy(2)
  97. if leftarrow2.ycor() > 180:
  98. leftarrow2.reborn(-90,-180+random.randint(-500,0))
  99. # 上方向箭头按键检测
  100. uparrow2.addy(2)
  101. if uparrow2.ycor() > 180:
  102. uparrow2.reborn(-30,-180+random.randint(-700,0))
  103. # 下方向箭头按键检测
  104. downarrow2.addy(2)
  105. if downarrow2.ycor() > 180:
  106. downarrow2.reborn(30,-180+random.randint(-900,0))
  107. screen.title("得分:" + str(score))
  108. clock.tick(60)

Python创意编程100例sprites篇免费下载网址为本人lixingqiu.com博客首页置顶文章最下面!!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/116941
推荐阅读
相关标签
  

闽ICP备14008679号