这个程序演示了用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资源。)
