小虫密室逃脱Python的arcade模块制作的简易迷宫游戏

python小虫密室逃脱by李兴球_arcade简易迷宫游戏

以下是部分代码预览:

"""
小虫密室逃脱.py
小虫子被困在密室了,只要帮它碰到密码箱,正确输入密码,才能让它逃脱。
可是有一只狗在把守密码箱,俗话说狗拿耗子,多管闲事。有一只老鼠被闲在笼子里。
只要小虫子拿到钥匙,笼子就会自动打开,耗子就会跑,狗就会去抓耗子。趁这个时候虫子就能去碰密码箱了。
请用上左右方向箭头操作小虫子,让它碰到钥匙后再去碰保险箱。本程序用arcade模块实现主程序,用turtle模块实现密码输入界面。

"""
 
import arcade

PASSWORD = "888"                      # 解锁密码
SPRITE_SCALING = 1                    # 定义缩放比例
SCREEN_WIDTH = 1280                   # 定义所渲染的屏幕宽度 
SCREEN_HEIGHT = 960                   # 定义所渲染的屏幕高度 
SCREEN_TITLE = "小虫密室逃脱by李兴球_arcade简易迷宫游戏"
SPRITE_PIXEL_SIZE = 64                # 地图方块尺寸 

# 定义物理常数 
MOVEMENT_SPEED = 5
JUMP_SPEED = 23
GRAVITY = 1.1

class MyGame(arcade.Window):
    """ 继承自窗口的游戏类. """
    input_password = False
    def __init__(self):
        """
        初始化方法
        """
        super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
        
        # 定义角色列表
        self.wall_list = None       
        self.key_list = None

        # 定义玩家相关变量        
        self.player_sprite = None
        self.physics_engine = None         
             

    def setup(self):
        """ 设置与初始化变量的值. """   

        # 老鼠,代表猎物
        self.rat = arcade.Sprite("images/mouse_right.png")
        self.rat.textures.append(arcade.load_texture("images/mouse_left.png"))
        self.rat.status = "hide"                                             # 这是自定义属性
        self.rat.center_x = 300
        self.rat.center_y = 80        

         
    
    def let_rat_go(self):
        """设定让耗子跑的状态"""
        self.rat.status = "run"
        self.rat.change_x =  10
        
    def let_rat_dead(self):
        """让老鼠死的状态"""        
        self.rat.status = "dead"
        self.rat.change_x =  0
        
        
    def on_draw(self):
        """        渲染屏幕        """
       

        # 开始渲染屏幕
        arcade.start_render()       
        # 画所有的角色       

        
    def on_key_press(self, key, modifiers):
        """
        当按键时调用此方法
        """

    def on_key_release(self, key, modifiers):
        """
        当松开键时调用此方法
        """       

    def update(self, delta_time):
        """ 移动与游戏的逻辑,这个方法不断地执行,如果本关key数加载完了,那么此关结束 """           

def show_password_input_UI():
    """显示密码输入界面,本函数定义了一个Square类,用来实例化三个小方块,单击它们会换造型"""
    print(" 这里显示密码输入界面")
    images = ["images/" + str(i) + ".gif" for i in range(10)]
    import turtle
    import random
                           
            
    screen = turtle.Screen()
    screen.delay(0)    
    screen.setup(SCREEN_WIDTH//3,SCREEN_HEIGHT//3)
    screen.bgcolor("#999999")
    screen.title("请输入密码,用鼠标单击数字即可")
    [screen.addshape(image) for image in images]
    turtle.penup()
    turtle.ht()
    turtle.goto(0,100)
    turtle.write("请用鼠标单击输入密码箱的密码:",font=("黑体",16,"normal"),align='center')
    square1 = Square(images)             # 左边方块
    square1.goto(-100,0)                  
    square2 = Square(images)             # 中间方块
    square3 = Square(images)             # 右边方块
    square3.goto(100,0)
    screen.mainloop()

def main():
    window = MyGame()
    window.setup()
    arcade.run()

if __name__ == "__main__":
    main()

下载完整源代码与素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

关于李兴球

李兴球的博客是Python创意编程原创博客
此条目发表在arcade, python, turtle分类目录。将固定链接加入收藏夹。