"""
雷电射击游戏_精灵模块简版
本程序需要Python精灵模块V1.31以上版本支持,
作者:李兴球 @ 2020/3/16
本程序的所有敌机是图章,它们可以移动,使用overlap_with进行碰撞检测.....
"""
from sprites import * # 从精灵模块导入所有命令
enemies_amounts = 200 # 敌机数量
title = '雷电射击游戏_精灵模块简版'
bgs = ['res/w1.png','res/w2.png','res/w3.png']
exps = ['res/explosion0.png','res/explosion1.png']
screen = Screen() # 新建屏幕
screen.setup(960,720) # 设定屏幕宽高
screen.tracer(0,0) # 关闭自动刷新和绘画版时
screen.title(title) # 设定屏幕所在窗口标题
PlaySound('res/Tragedy Flame.wav',SND_ASYNC|SND_LOOP)
index = 0 # 定义变量,做为背景表的索引
def alt_background():
global index
screen.bgpic(bgs[index]) # 设定背景图片
index = index + 1 # index增加1
index = index % 3 # index对3求余
screen.ontimer(alt_background,50) # 50毫秒后再次运行函数
alt_background()
plane = Sprite(shape='res/敌机1.png',pos=(0,720))
for _ in range(enemies_amounts): # 这里生成一定数量的敌机
x = random.randint(-480,480)
y = random.randint(720,5440)
plane.goto(x,y)
plane.stamp()
bs = Group('zd') # 新建bs组,它们的标签为zd
def shoot():
if framecounter % 3 == 0 :
bullet = Sprite(shape='circle',visible=False,tag='zd')
bullet.color('yellow')
bullet.scale(0.5)
bullet.goto(player.pos())
bullet.show()
player = Sprite(shape='res/thunder.png') # 玩家操作的飞机
player.scale(0.5)
player.sety(-240)
leftkey = Key('a') # 新建a键
rightkey = Key('d') # 新建d键
upkey = Key('w') # 新建w键
downkey = Key('s') # 新建s键
shootkey = Key('j') # 新建j键
screen.listen() # 监听屏幕
w = Sprite(visible=False) # 在屏幕上写分数的角色
w.addy(200)
score = 0 # 得分
clock = Clock() # 新建时钟对象
framecounter = 0 # 帧计数器
enemies = plane.stampItems # 给plane的图章列表取别名为enemies
以下代码省略......................
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
