不知道大家有没有玩过一个小游戏,是靠控制声音的大小来让主角进行跳跃移动的,我们今天就将通过Python代码来实现这个游戏。
(一)定义角色,添加在场景上
#定义 sprite
class PPX(cocos.sprite.Sprite):
def __ init __( self ):
super ( PPX, self). __ init __(‘ppx.png’)
… # 略
#创建并添加
self.ppx = PPX()
self.add(self.ppx)
(二)给角色增加重力的效果
def update(self, dt):
self.speed += 10 * dt
self.y -= self.speed
if self.y < -80:
self.reset()
(三)获取麦克风的声音
#初始化
pa = PyAudio()
SAMPLING_RATE = int(pa.get_device_info_by_index(0)[‘defaultSampleRate’])
self.stream = pa.open(format=paInt16, channels=1, rate=SAMPLING_RATE, input=True, frames_per_buffer=self.NUM_SAMPLES)
#每帧中获取音量
string_audio_data = self.stream.read(self.NUM_SAMPLES)
k = max(struct.unpack(‘1000h’, string_audio_data))
(四)通过音量判断行走和跳跃
if k > 3000:
self.floor.x -= min((k / 20.0), 150) * dt
if k > 8000:
self.ppx.jump((k - 8000) / 1000.0)
(五)简单的碰撞检测
def collide(self):
px = self.ppx.x - self.floor.x
for b in self.floor.get_children():
if b.x <= px + self.ppx.width * 0.8 and px + self.ppx.width * 0.2 <= b.x + b.width:
if self.ppx.y < b.height:
self.ppx.land(b.height)
break
代码到这里就结束了,我们通过Python去实现一个游戏小程序,也能大大提高自己对Python的学习热情哦。
文章部分内容源于网络,联系侵删*
文章参考源于http://h.jiguangdaili.com/news/54477.html
转载:https://blog.csdn.net/zhimaHTTP/article/details/111406082