基于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同步块与私有不可变对象和同步方法的差异   OracleDataSource、OracleUCP、Commons DBCP和Tomcat连接池之间的java差异?   java在文本文件中写入对象   java访问web服务   如何用java代码并行读取拼花地板文件   spring是否可以将运行时未知的Avro消息转换为特定的Java类   具有复杂对象的java Spring数据MongoDB addToSet()   java ArrayList是否删除元素,是否向下移动列表?   Vaadin中按钮的java多行标题不起作用   java为什么要使用@PropertySource而不是PropertyPlaceHolderConfigure?   java如何检查网站链接是否有数据(图片)或网站是否无效?   java如何禁用对jsp页面的直接访问?   用java实现matlab递归文件夹读取。伊奥。文件   为什么是java。伊奥。FileDescriptor的构造函数是公共的吗?   在java中关闭扫描程序时无法访问的代码?   搜索Java模拟退火接受概率