python – 结合pygame和扭曲

python – 结合pygame和扭曲,第1张

概述After yesterdays选择不当的问题我再试一次. 我的作品中有一个tic tac toe program纯粹是为了学习网络游戏. 我对twisted的理解是我应该让服务器类运行reactor,然后让每个玩家作为客户端连接到它(服务器是一个单独的实体).鉴于我在上一个问题中的评论,我怀疑我是以完全错误的方式解决这个问题. 我应该做什么以及我应该关注哪些教程或文档? 将pygame与twis After yesterdays选择不当的问题我再试一次.

我的作品中有一个tic tac toe program纯粹是为了学习网络游戏.

我对twisted的理解是我应该让服务器类运行reactor,然后让每个玩家作为客户端连接到它(服务器是一个单独的实体).鉴于我在上一个问题中的评论,我怀疑我是以完全错误的方式解决这个问题.

我应该做什么以及我应该关注哪些教程或文档?

解决方法 将pygame与twisted相结合的难点在于谁控制了主循环.这通常需要将任何类型的UI(GTK,Tkinter等)mainloop与Twisted结合起来,PyGame也不例外.

我建议,因为网络延迟是重要的,因为twisted有一个非常好的调度框架,你是让扭曲的反应堆运行并控制主循环,然后使用LooPingCall允许你处理来自pygame的事件.

在最基本的:

from twisted.internet.task import LooPingCallDESIRED_FPS = 30.0 # 30 frames per seconddef game_tick():   events = pygame.events.get()   for event in events:      # Process input events   redraw()# Set up a looPing call every 1/30th of a second to run your game ticktick = LooPingCall(game_tick)tick.start(1.0 / DESIRED_FPS)# Set up anything else twisted here,like Listening socketsreactor.run() # Omit this if this is a tap/tac file

虽然这起初看起来很简单,但它带来了危险.如果你花费大量时间在游戏滴答中进行处理,那么你就有可能使扭曲的反应堆挨饿,使其无法处理事件.如果您需要定时事件,请不要阻止,而是使用像reactor.callLater这样的扭曲工具.您可以越多地避免阻止,您的应用程序响应越快.在一些段落中要描述的内容太多了,因为如果你从未对异步或非阻塞库进行编程,那么对于twisted的编程是一种真正需要习惯的思维模式.

有关更完整的示例,请查看“gam3”以获取用于连接扭曲的游戏库(包括用于模拟事件的世界时钟)和由其中一个扭曲的开发人员制作的示例游戏,以展示如何集成扭曲和pygame.

总结

以上是内存溢出为你收集整理的python – 结合pygame和扭曲全部内容,希望文章能够帮你解决python – 结合pygame和扭曲所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存