记录精彩的程序人生
转自https://stendhalgame.org/wiki/RolePlayingDesign 这可能是构成Marauroa的所有中间件中最复杂的部分。 角色扮演设计是决定为Marauroa创建新游戏的简单因素。 我们不得不选择轻松创建基于时间限制的游戏。 Marauroa将在这种游戏(也称为实时游戏)中更好地工作。 角色扮演设计试图通用和游戏无关(独立于正在制作的游戏)。 RPManager背后的基本思想是: forever { Execute Actions Send Perceptions Wait for next turn } 为此,我们使用了几个类: RPManager is coded in Marauroa and doesn’t need to be modified. IRPRuleProcessor is the interface that you need to modify in order to personalize the actions that your game will execute. RPWorld is the class th....
转自https://stendhalgame.org/wiki/NetworkDesign 请注意:此页面介绍了低级网络通信。 如果您想使用Marauroa编写游戏,则无需为这些实现细节烦恼。 我们为Marauroa本身的贡献者记录网络设计。 对于将Marauroa移植到其他编程语言的人来说很有帮助。 Messages Marauroa使用消息在客户端和服务器之间进行通信。 从客户端发送到服务器的消息以C2S为前缀,从服务器发送到客户端的消息使用前缀S2C。 每条消息都在marauroa.common.net.message包中的自己的Java类中实现。 您可以在javadoc中查找有关每条消息的详细信息。 如果您想将Marauroa移植到另一种编程语言,您需要知道消息是如何准确序列化的。 最简单的学习方法是查看readObject()和writeObject()方法的源代码。 游戏的不同客户状态有:连接,登录,游戏,注销。 根据状态,不同的消息有效: State connected 由于安全性要求,登录过程有点复杂。不要害怕,只需一步一步地遵循它。 一旦建立了TCP连接,客户端就会使....
本文描述了在游戏中如何使用Marauroa在高层级访问数据库。
本文介绍Marauroa如何在内部访问数据库以及如何为您自己的表添加支持。
本文介绍了Marauroa数据库的表结构。
Marauroa提供了一套非常简单的API,使用它可以很容易开发游戏。
http://stackoverflow.com/questions/16600547/how-get-a-string-width-in-libgdx
我想开发一款Android游戏有一段时间了,但从来没有一个好的idea。最近,我一直在玩地铁跑酷,发现它实在太有意思了。通常来讲,我不喜欢没有终点的游戏,因为你不可能通关,所以每次我玩这些游戏的时候,我总会随意设置一些目标然后再去玩。这次我的目标是得到30倍分数复乘技能。当我实现这个目标的时候,我就获得一些技能然后就会迷上这款游戏。这款游戏也让我意识到,一款Android游戏没有必要非要有什么大的来头和复杂的游戏设置,简单随意就好。 不管怎样,我觉得一个游戏如果能做到仅需你将手指对准一个东西然后向它射击就很好了。如果再能有一个系统性的任务,每天每周需完成的挑战和一些武器升级的话,那么这个游戏就会很有趣了。我的第一个想法是创立一款游戏,让一些可爱的小怪兽在一个美丽的场景中到处跑,可以藏在树后面,或者躲在老房子里,甚至可以是在云朵里。你需要做的就是尽可能多地将它们打下。我说的可爱的小怪兽,指的是一些像Gremlins(小精灵)之类的玩意。它们会搬一些体形巨大的机器,或者是做一些其他的愚蠢的事情来让你哈哈大笑。当然,作为一个拥有零预算的独立游戏开发者,就按我可以想象到的动画复杂程度来看,我知....
Netbeans8.2开发LibGDX程序报错:Could not find org.jetbrains.trove4j:trove4j:20160824.
从Github上下载项目代码到本地,用Netbeans打开后,执行Clean and Build后,控制台报 * What went wrong: A problem occurred configuring project ':android'. > SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable. 解决方式:重新设置Android SDK即可
how to harness Blender to create 2D isometric tiles
the basic formulas to handle isometric projection in 2D
a beginner’s look at isometric tiles
高拍仪厂家一般都提供B/S系统集成高拍仪的方法,厂商提供的二次开发绝大多数都是基于ActiveX控件,通过JS脚本来控制,功能上受限,只能使用ActiveX控件暴露的接口且无法自定义界面,另外ActiveX控件的使用限制了系统只能使用IE浏览器或基于IE内核的浏览器。本文采用一种基于Java的解决方案,通过Java Web Start技术可以兼容各种浏览器,也可以在非Window系统下使用,缺点是通常会比厂商提供的原生程序需要慢一些,但可以接受。
本系列教程来自MTX(MoribitoTechX)的Tutorial Blog: http://moribitotechx.blogspot.co.uk/ 因需科学上网才能访问,且该博客5年多没有更新了(最后更新时间2013.7.27),故这里手打上来留一备份。因为比较长,分成两部分:第一部分 项目地址:https://github.com/moribitotech/MTX Series 4 (Fun & Cool Things) This series is for showing nice effects and smart actions for your games and live wallpapers. The best part is, it only requires single line of code to create effects or couple of line of codes for smart actions. Game effects, Menu effects, Information panel effects, Backgroun....
本系列教程来自MTX(MoribitoTechX)的Tutorial Blog: http://moribitotechx.blogspot.co.uk/ 因需科学上网才能访问,且该博客5年多没有更新了(最后更新时间2013.7.27),故这里手打上来留一备份。因为比较长,分成两部分:第二部分 项目地址:https://github.com/moribitotech/MTX Series 1 (Introduction to MTX with LibGDX Scene2D) In this series I will talk about Mini-MTX framework which built on LibGDX Scene2D. This is a mandatory series, if you want to continue other series. I will talk about the structure of MTX, screen systems, advanced actors, game specific buttons, animations and....
转自Aurelien Ribon’s Dev Blog的Tutorial: Animated grass using LibGDX 注意:文中大部分链接已失效 在github上找到该作者的项目地址:universal-tween-engine A little and easy tutorial today, but which can add a nice value to your games: we’re going to animate some grass to enhance the floors. Indeed, even if you really suck at graphics as I do, you can fake the user into thining it’s still awesome by animating everything! If it doesn’t look pretty, make it move! Of course, I don’t claim that’s the best way to implement animated g....
请看下面的代码: package com.packtpub.libgdx.canyonbunny.game; public class WorldController { private static final String TAG = WorldController.class.getName(); public WorldController () { } private void init () { } public void update (float deltaTime) { } } WorldController类有一个内部的init()方法用于初始化对象。我们知道,所有的初始化代码也可以放到构造函数中。然而,在很多情况下,初始化代码位于一个单独的函数中也很有意义。无论何时我们需要在游戏中重置一个对象的时候,我们不要完全重建这个对象,这样就可以提高性能。这种实现还可以极大的降低被垃圾回收期中断的概率。我们尝试重用现有的对象,这样可以达到最大性能和最小内存占用的设计目标。这一点对于安卓这种有效资源的只能手机尤其重要。 好吧,翻译的确实够生硬的,意思应该都理解。之前遇到类....
Netbeans10已经发布了,之所以还使用Netbeans8.2是因为目前只有该版本有插件支持Android开发,不知道Netbeans何时才能从Apache孵化出来。。。 下载并安装Java SE Development Kit 8 Downloads 下载并安装NetBeans IDE 8.2 Download,选择Java SE版即可。 安装NBANDROID-V2插件,参考Netbeans8.2安装Android开发插件NBAndroid。 安装Android SDK,参考Android SDK的下载与安装和android AVD 启动时报错。 下载Gradle based setup application,并执行: 启动Netbeans8.2,打开上一步上生成的gradle项目: 打开后出现问题,请参考Netbeans8.2使用NBANDROID-V2插件打包libgdx android项目报错和Netbeans8.2打开libgdx android项目报错This Gradle plugin requires a newer IDE able to request....
在项目的gradle.properties配置文件中加入以下这句: android.injected.build.model.only.versioned=3 参考android 报错 This Gradle plugin requires a newer IDE able to request IDE model level 3 错误解决方案,原文针对android studio IDE,对Netbeans8.2同样适用。