用户:我爱蝴蝶忍查看:0 回复:5 评论:0 创建时间:2021-08-13T21:10:58
【作品展示】

【作品介绍】
吴签吃牢饭
【作品源代码】
# 从 arcade 导入 大部分功能
from arcade import *
import random
from arcade import key
import time
#音乐只有一分钟
#‘香肠’出品
# 定义一个类 MyWindow, 使其继承 Window 类:
class MyWindow(Window):
def __init__(self):
super().__init__(1300,700)
# 设置背景颜色
self.bg = Sprite('bg.png')
self.bg.left = 0
self.bg.bottom = 0
# 创建物理引擎
self.ppe = PymunkPhysicsEngine((0, -400))
# 创建地面
self.grd = Sprite("ground2.png")
self.grd.position = 650, 20
# 将地面加入物理引擎,并设置地面的物体类型为静态
self.ppe.add_sprite(self.grd,body_type = self.ppe.STATIC)
# 生成吴签
self.j = Sprite("w3.png",0.5)
self.j.position = 100, 300
# 将吴签加入物理引擎
self.ppe.add_sprite(self.j)
# 给吴签添加造型
shape_list = ["w4.png", "w5.png"]
for shape in shape_list:
self.j.append_texture(load_texture(shape))
# 添加背景音乐并循环播放
self.bg_msc = Sound ("bgmusic.wma")
self.bg_msc.play()
# 添加吴签吃掉shi的音效
self.jiu = Sound("skr.wma")
# 添加属性记录被吃掉的shi个数
self.cnt = 0
# 定时自动生成shi
self.time = 2
self.shi_list = SpriteList()
schedule(self.create_shi,self.time)
# 自定义生成shi的方法
def create_shi(self, time):
for i in range(3):
self.shi = Sprite("lf.png",0.7)
x = random.randint(0,1300)
y = random.randint(150,700)
# 设置精灵 self.shi 的位置为 x, y
self.shi.position = x,y
# 向精灵列表 self.shi_list 中添加精灵 self.shi
self.shi_list.append(self.shi)
# 控制吴签移动
def on_key_press(self, symbol, modifiers):
if symbol == key.RIGHT:
self.ppe.set_velocity(self.j,(200, 0))
if symbol == key.LEFT:
self.ppe.set_velocity(self.j, (-200, 0))
if symbol == key.UP:
self.ppe.set_velocity(self.j, (0, 400))
self.j.set_texture(1)
def on_key_release(self, symbol, modifiers):
if symbol == key.UP :
self.j.set_texture(2)
def on_draw(self):
# 开始渲染
start_render()
self.bg.draw()
self.grd.draw()
self.shi_list.draw()
self.j.draw()
draw_text("被吃掉laofan:" + str(self.cnt),20, 650,(255, 0, 0),30,font_name="FZY4JW.TTF")
def on_update(self,time):
self.ppe.step()
# 吴签在地面时,切换为 0 号造型
hit = check_for_collision(self.j, self.grd)
if hit == True:
self.j.set_texture(0)
# 吴签碰到shi时, 1个shi消失,播放音效,并将被吃掉的shi的个数 增加 1
hit_list = check_for_collision_with_list(self.j, self.shi_list)
if hit_list != []:
self.shi_list.remove(hit_list[0])
self.jiu.play()
self.cnt += 1
# 创建一个 MyWindow 类的实例 w
w = MyWindow()
# 运行
run()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn