下面gif动录制作软件把图片进行了压缩,所以呈现了“圆圈”效果。实际上效果像上图这样。
以下是部分代码预览:
""" 萤火虫勇闯黑夜迷宫_大型滚动地图 """ import random import arcade import os SPRITE_SCALING = 1 SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 SPRITE_PIXEL_SIZE = 64 # 距离屏幕边距的最小距离 VIEWPORT_MARGIN = 40 MOVEMENT_SPEED = 5 class MyGame(arcade.Window): """主应用程序类. """ def __init__(self, width, height): """ 初始化器 """ super().__init__(width, height,"萤火虫勇闯黑夜迷宫_大型滚动地图 lixingqiu") self.game_over = False # 角色列表 self.player_list = None self.coin_list = None # 设置游戏及玩家相关变量 self.score = 0 self.player_sprite = None self.wall_list = None self.physics_engine = None self.view_bottom = 0 self.view_left = 0 def setup(self): """ 实例化变量 """ # 角色列表 self.player_list = arcade.SpriteList() self.wall_list = arcade.SpriteList() # 设置蒙板 self.mask = arcade.Sprite("images/mask.png") self.mask.scale = 2 # 实例化玩家操作的角色 self.score = 0 self.player_sprite = arcade.Sprite("images/lixingqiu.png", 0.4) self.player_sprite.center_x = 128 self.player_sprite.center_y = 270 self.player_list.append(self.player_sprite) def on_draw(self): """ 渲染屏幕 """ # 开始渲染 arcade.start_render() # 画各个角色 self.wall_list.draw() self.player_list.draw() self.小东西_list.draw() self.mask.draw() def on_key_press(self, key, modifiers): """当按键时调用此方法 """ if key == arcade.key.UP: self.player_sprite.change_y = MOVEMENT_SPEED elif key == arcade.key.DOWN: self.player_sprite.change_y = -MOVEMENT_SPEED elif key == arcade.key.LEFT: self.player_sprite.change_x = -MOVEMENT_SPEED elif key == arcade.key.RIGHT: self.player_sprite.change_x = MOVEMENT_SPEED def on_key_release(self, key, modifiers): """当松开按键时调用此方法 """ if key == arcade.key.UP or key == arcade.key.DOWN: self.player_sprite.change_y = 0 elif key == arcade.key.LEFT or key == arcade.key.RIGHT: self.player_sprite.change_x = 0 def update(self, delta_time): """ 游戏逻辑设定,结果都是更新坐标/角度,删除/添加角色等。""" # 调用物理引擎 self.physics_engine.update() # 蒙板跟随玩家角色 self.mask.center_x = self.player_sprite.center_x self.mask.center_y = self.player_sprite.center_y def main(): """ 主要方法""" window = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT) window.setup() arcade.run() if __name__ == "__main__": main()
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)