基于pygame和level tmx文件的2d游戏引擎(即将推出:完全集成openai-gym)

spygame的Python项目详细描述


快速设置说明图::https://raw.githubusercontent.com/sven1977/spygame/master/examples/platformer_2d/screen2.png
:alt:失落的维京人-样本的维京人级别

代码
----
-您可能需要与python版本匹配的pygame版本。例如,对于Windows1064bit+python3.6,您可以从这里下载"pygame-1.9.3-cp36-cp36m-win-amd64.whl"<;http://www.lfd.uci.edu/~gohlke/pythonlibs/\pygame>;``然后执行一个`` pip安装[下载轮子的路径]``
-git'spygame<;http://github.com/sven1977/spygame>;``编写代码或执行``pip install spygame``

Get Started
----
-针对引擎编写一个简单的游戏:

。代码块::python
:行号:

tile=0)

=self.add_component(spyg.simplehumanbrain("brain",["up","down","left","right"])
将物理组件添加到物理处理中(这里我们使用:简单的二维自顶向下视图和控件)
self.cmp_physics=self.add_component(spyg.topdownpysics("physics")

#普通的spyg.sprite对象不实现"tick"函数,因此它们不会发生任何变化-我们需要在这里实现它,以确保我们的组件(大脑和物理)也被勾选
def tick(self,游戏循环:
self.cmp_brain.tick(游戏循环)
self.cmp_physics.tick(游戏循环)


"class":spyg.level,"name":"maze","id":1,<;-这将读取级别布局和设置数据的data/maze.tmx文件
},

},

,title="迷宫跑者-一个A-迷宫游戏:)"

就这样,玩一个关卡->;这将进入一个无休止的游戏循环
game.levels_by_name["maze"].play()




运行此游戏所需的只是上述目录中的代码,以及可以在此处找到的其他子目录data/和images/。http://github.com/sven1977/spygame/tree/master/examples/maze嫒runner>;`。这些目录包含必要的spritesheets、
级别背景图像和级别设置(碰撞层、背景图像、播放器的位置和类别等)。

这应该会给您一个这样的级别:

。图::https://raw.githubusercontent.com/sven1977/spygame/master/examples/maze-runner/screen1.png
:alt:maze-runner-a-maze-ing游戏:)

maze-runner-a-maze-ing游戏:)-*所有图片都是(c)暴雪娱乐公司(The Lost Vikings)*

通过四个箭头键(上、下、左、右)控制代理。

我们将创建一个完整的2d平台
(抱歉,文档仍然很在制品!).

ai(强化学习),带spygame
------

这样,强化学习算法就可以针对任何spygame
级别的对象运行。

contribution to spygame
---------
如果您希望对spygame库进行贡献,则当前将打开以下项:

-添加音频/声音支持
-创建更多示例游戏
-创建更多"失落的维京人"级别
-创建更多物理组件(除了现有的自顶向下和平台)
-创建对图形用户界面元素(标签、按钮、复选框等)的支持。这是一个开放的pygame问题,可能应该在pygame级别解决。
-帮助将spygame集成到openai gym和openai rllab repos中

图::https://raw.githubusercontent.com/sven1977/spygame/master/examples/platformer_2d/screen1.png
:alt:lost vikings-sample spygame level

lost vikings-sample spygame level-*所有图形均为(c)暴雪娱乐公司(lost vikings)*



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java HikariCP连接池Tomcat调试启用   java如何在javascript中访问JSON数组的元素?   jasper使用HttpServlet报告Java空白PDF   用于存储海量数据的java最佳集合   JBPM&springboot组织。流口水。坚持不懈jta。JtaTransactionManager在JNDI位置[java:comp/UserTransaction]未找到任何UserTransaction   java Grails maven插件需要Groovy 2.4.2   获取列表中访问最少的元素(Java 8)   java在IntelliJ中下载cn1lib不起作用   java Akka构造函数通过spring进行布线   swing在Java中创建JList时,如何更改条目的背景颜色?   为什么Java8Lambda允许访问非最终类变量?   javajavax。邮政MessaginException:无法连接到SMTP主机   java Android Webview高度在滚动后增加