""" 本程序实现一个能向前向后跳跃的小猫,按F键发射子弹,飞碟碰到子弹爆炸. Python精灵模块小猫射击飞碟.py pip install pygame """ import pygame from sprites import * pygame.mixer.init() # 初始化混音器 j = pygame.mixer.Sound("jump.wav") # 新建音效对象 width,height = 480,360 # 定义宽高变量 screen = Screen() # 新建屏幕对象 screen.bgcolor('dodger blue')# 设定屏幕背景 screen.setup(width,height) # 设定屏幕宽高 screen.title("跳跃的小猫,请按awd键") # 用来画黑色地面的 t= Turtle(visible=False) # 新建不可见海龟对象 t.penup() # 抬笔 t.pensize(50) # 画笔轨迹粗细 t.goto(-240,-150) # 坐标定位 t.pendown() # 落笔 t.goto(240,-150) # 坐标定位 akey = Key('a') # a键实例 dkey = Key('d') # d键实例 wkey = Key('w') # w键实例 fkey = Key('f') # f键实例 images = 'res/cat1.png','res/cat2.png' # 两张猫的造型图 sp = Sprite(shape=images) # 新建角色,造型序列为images sp.dx = 0 # 水平速度 sp.dy = 0 # 垂直速度 sp.da = -1 # 加速度 sp.rotatemode(1) # 左右翻转模式 screen.listen() zd = Sprite(1) # 子弹 zd.ht() ufo = Sprite('res/ufo.png') ufo.rotatemode(1) # 旋转模式为左右翻转 ufo.goto(0,120) clock = Clock() # 新建时钟对象 while 1: ufo.fd(6) # ufo前进 if ufo.collide(zd) and ufo.isvisible(): # 如果ufo碰到子弹 explode(ufo,['res/explosion0.png','res/explosion1.png']) ufo.ht() ufo.bounce_on_edge() # 碰到边缘就反弹 if zd.isvisible(): zd.addy(5) # y坐标增加5 if fkey.down(): # 如果按了f键,子弹到达sp的坐标 zd.goto(sp.xcor(),sp.ycor()) zd.show() # 按键检测 if akey.down(): # 如果按了小写a键 sp.nextcostume() # 下一个造型 sp.dx = -5 sp.setheading(180) elif dkey.down(): # 如果按了小写d键 sp.nextcostume() # 下一个造型 sp.dx = 5 sp.setheading(0) else:sp.dx = 0 # 按w键跳跃 if wkey.down() and sp.ycor()==-100: #j.play() sp.dy = 15 sp.addy(sp.dy) if sp.ycor() < -100 : sp.dy = 0 sp.sety(-100) # 坐标更新 sp.addx(sp.dx) if sp.ycor()!= -100: sp.addy(sp.dy) sp.dy = sp.dy + sp.da screen.update() # 渲染画面显示 clock.tick(60)
李兴球
李兴球的博客是Python创意编程原创博客
要发表评论,您必须先登录。
发表评论