这个程序演示了用Arcade街机模块制作一个收集金币的游戏。通过鼠标操作角色去碰撞金币,金币就会消失。运用了角色实例化,角色列表实例化,鼠标移动事件,碰撞检测等“技术”。
以下是部分代码预览:
import arcade import random SCREEN_WIDTH = 800 # 常量定义,屏幕宽度 SCREEN_HEIGHT = 600 # 常量定义,屏幕高度 SCREEN_TITLE = "Arcade最简收集金币小程序_作者:李兴球" # 常量定义,屏幕标题 class MyGame(arcade.Window): """ 继承自窗口类的游戏类,在具体的游戏中,重写以下方法,删除不需要重写的方法。 """ def __init__(self, width, height, title): super().__init__(width, height, title) # 调用父类的初始化方法新建一个窗口 arcade.set_background_color(arcade.color.AMAZON) # 设置背景颜色为亚马逊绿 def setup(self): """ 这个方法是在实例化Mygame后对游戏进行一些设置。 """ self.player = arcade.Sprite("characterx.png") # 给游戏添加一个玩家控制的角色 self.coin_list = arcade.SpriteList() # 实例化一个金币列表 for i in range(50): coin = arcade.Sprite("coin_01x.png") # 实例化一枚金币 coin.center_x = random.randrange(SCREEN_WIDTH) coin.center_y = random.randrange(SCREEN_HEIGHT) self.coin_list.append(coin) def on_draw(self): """ 渲染屏幕 ,帧率为60左右,即每60份之一秒会自动调用此方法 """ arcade.start_render() # 此命令会用背景色填充屏幕,然后可以在这个代码下用draw命令画其它角色 self.coin_list.draw() # 先画所有金币 self.player.draw() # 再画玩家 def update(self, delta_time): """ 所有的角色移动等游戏逻辑都在这里编写代码 """ def on_mouse_motion(self, x, y, delta_x, delta_y): """ 当鼠标移动时会自动地调用此方法 """ def main(): """主要的函数""" game = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE) # 实例化一个游戏 game.setup() # 对游戏进行设置 arcade.run() # 进入循环 if __name__ == "__main__": main()
如需要查看完整代码,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)