用户:
威武的阿尔法qorq查看:0 回复:0 评论:0 创建时间:2021-10-31T14:04:21
【作品展示】

【作品介绍】
上左右
【作品源代码】
# 导入库中大部分功能
from arcade import *
from random import*
from arcade import key
# 子类继承父类Window
class MyWindow(Window):
# 初始化方法,也叫构造函数
def __init__(self): # 该方法在类被实例化的时候会被自动调用一次
super().__init__(950,610) # 继承父类里面原有的初始化方法
set_background_color((137,207,240))
self.q1=PymunkPhysicsEngine((0,-900))
self.el=SpriteList()
self.q=Sprite("ground.png")
self.q.left=0
self.q.bottom=0
self.q1.add_sprite(self.q,body_type=self.q1.STATIC)
self.y=Sprite("jkl.jpg",0.85)
self.y.left=0
self.y.bottom=0
self.w=Sprite("j1.png")
self.w.position=100,300
self.w.append_texture(load_texture("j2.png"))
self.w.append_texture(load_texture("j3.png"))
self.q1.add_sprite(self.w)
schedule(self.ce,2)
self.r=Sound("bgmusic.mp3")
self.r.play(10,loop=True)
self.t=Sound("jiu.wav")
self.num=0
# 重写【键盘按键按下】方法,英文输入的状态下,每当按下键盘上面的按键时,该方喵自动被执行1次,symbol 参数是按下按键的值
def on_key_press(self, symbol, modifiers):
if symbol==key.RIGHT:
self.q1.set_velocity(self.w,(100,0))
if symbol == key.LEFT:
self.q1.set_velocity(self.w, (-100, 0))
if symbol == key.UP:
self.q1.set_velocity(self.w, (0, 500))
self.w.set_texture(1)
# 重写【键盘按键弹起】方法,英文输入的状态下,每当键盘上面的按键弹起时,该方喵自动被执行1次,symbol 参数是按下弹起的按键值
def ce(self,time):
for i in range(30):
self.e=Sprite("en.jpg",0.15)
self.e.position=randint(0,800),randint(150,600)
self.el.append(self.e)
def hit(self):
self.h=check_for_collision_with_list(self.w,self.el)
if self.h:
for i in self.h:
self.el.remove(i)
self.t.play(10)
self.num+=1
self.c=check_for_collision(self.w,self.q)
if self.c:
self.w.set_texture(0)
def on_key_release(self, symbol, modifiers):
if symbol==key.UP:
self.w.set_texture(2)
# 重写【鼠标按下】方法,当鼠标在arcade窗口中按下的时候,会自动调用
def on_mouse_press(self, x, y, button, modifiers):
pass
# 重写绘制方法,这个方法在程序执行run()指令后,会每秒被执行60次
def on_draw(self):
start_render() # 清屏并重新开始绘制
self.y.draw()
self.q.draw()
self.w.draw()
self.el.draw()
if self.num<1000:
draw_text(f"你吃掉了{self.num}包金坷垃",20,500,(255,0,0),30,font_name="FZY4JW")
elif self.num>=1000:
draw_text("可喜可贺,你的田种好了", 20, 500,(255, 0, 0), 30, font_name="FZY4JW")
self.q1.set_velocity(self.w,(0,0))
unschedule(self.ce)
# 重写更新方法,这个方法在程序执行run()指令后,会每秒被执行60次
def on_update(self, time):
self.q1.step(1/60)
self.hit()
# 创建MyWindow类的实例,将会自动执行 __init__ 方法里面的代码
w = MyWindow() # 实例化
# 运行(调用Window类中的方法)
run()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn