美文网首页
把pygame 做成 flask 的样子

把pygame 做成 flask 的样子

作者: 圣_狒司机 | 来源:发表于2023-04-19 15:28 被阅读0次

一、事件路由

flask的机制是实例化事件轮询函数,然后向主函数注册路由视图的方式实现路由响应。

使用flask轮询函数只需要实例化Flask类,再app.run就可以了。app是库自带的,用户要做的只剩往路由表里添加视图函数。

pygame的内部机制是单事件循环,可以模仿flask注册事件类。先实例化一个自己的route类,往这个route类里封装事件表,对应flask 的路由表,再封装事件索引装饰器。

class Route:
    def __init__(self):
        self.lib = {}
    def __repr__(self):
        return f"{self.lib=}"
    def __call__(self,routepath):
        def warpper(func):
            self.lib[routepath] = func
            @wraps
            def inner_wrapped(*args):
                return func(*args)
            return inner_wrapped
        return warpper

二、游戏类

在游戏类的init函数中封装route事件表

class Game:
    def __init__(self):
        pygame.init()
        self.route = Route()
        self.clock = pygame.time.Clock()

    def run(self):
        self.screen = pygame.display.set_mode((400,300))
        print(self.route.lib)
        while 1:
            for event in pygame.event.get():
                if event.type in self.route.lib:
                    self.route.lib[event.type](event)
        self.screen.fill((0,0,0))
        pygame.display.flip()
        self.clock.tick(20)

三、注册事件函数

把以上两个类写进 lib.py 中,导入库:

import pygame,sys
from functools import wraps

写入口主函数和事件注册函数:

import pygame,sys
from pygame.locals import *
from lib import Game

game = Game()

@game.route(QUIT)
def exit(e):
    pygame.quit()
    sys.exit()

@game.route(KEYDOWN)
def keydown(e):
    print(e)

@game.route(MOUSEMOTION)
def mousemottion(e):
    print(e)

@game.route(MOUSEBUTTONDOWN)
def mousebuttondown(e):
    print(e)

game.run()

相关文章

  • 2019-07-01 python 第三方库相关介绍

    搭建网站:Django ,Flask,web 小游戏:PyGame 爬虫:Scrapy 统计分析:Pandas 在...

  • 把蛋卷做成花的样子……

    已经忘记这款点心叫什么名字了,但是只要你放入嘴里,立马就会知道,原来这是好吃的蛋皮卷 既有鸡蛋的高蛋白,又满足点心...

  • 把普通照片做成雨后的样子

    导入素材图,风景图层位于上方、雨窗图层位于下方 将风景图层转换为智能对象—滤镜—模糊—高斯模糊—混合模式改为叠加 ...

  • 去把现实做成心中的样子

    静静地看着静静的院子 好像一棵树的成长 无关风和雨的洗礼 一只鸟儿的歌唱 又是因何而起呢? 不是因为今天是晴天或是...

  • WatsonAPI之Conversation(使用Flask调用

    使用Flask和Conversation 做一个小的对话程序 使用Flask做一个对话程序 事前准备 做成一个co...

  • Pygame入门--飞机大战案例

    Pygame的快速入门 #导入pygame模块 import pygame #游戏初始化 pygame.init(...

  • 喜欢把朋友圈做成诗的样子

    今天分享些我发过的朋友圈,同时这些朋友圈也曾倍受朋友嫌弃,有说我装逼的,也有说我是酒徒的。当然,我的心态永远是:不...

  • 你终于把自己做成别人讨厌的样子

    你发现有一种人,他们天生认为自己都是对的!特别讨厌!为什么呢?我们先来看一段话:我们的思维存在太多的领域是...

  • 2018-09-04-pygame

    一、pygame基本操作 import pygame——导入pygame模块 pygame.init()——初始化...

  • 岁月怕把你遗忘, 给你做成日月的样子, 天天见便可以天天想起。

网友评论

      本文标题:把pygame 做成 flask 的样子

      本文链接:https://www.haomeiwen.com/subject/ctdljdtx.html