当前位置: 首页 > news >正文

穿越红尘不扰关,回旋天地去复还


实在不好意思,前一段我家老爷子住院做了个颈椎手术,最近他老人家身体好了(刚刚和母上逛公园去了),我也就闲下来了。很长时间没上博客,也没有读任何邮件,非常对不住大家,这两天我会补回来。


——————————————————————————————————————————————————

不过,这段时间小弟并非什么都没干,话说LGame的0.3.3正式版,已经到了整理下代码就能发的程度了,顺便传两张图。



我对Java版也做了一些修正,比如小弟最近将ADT升级到2.0后,发现以前的示例工程全部无法【直接】使用了,经仔细观察,发现是Eclipse工程配置和旧版有了变化而导致的;因此我在Beta版中又额外修正了部分示例,以防用户无法使用旧版LGame示例时,而误以为是框架运行Bug(-_-|||)。其实最简单的修改方式,无非是生成新工程,然后copy源码过来,这样原来的遗留项目也就正常了(一开始就直接用ADT1.6以上版本的用户不必操心此问题)。

PS:7月12上传到SVN中的。


另外,我为LGame中添加了SpriteBatch,SpriteRegion,LTextureRegion这三个基本同Libgdx近似名称类功能等价的新类(但坐标系不同,具体功能也有扩展和删减,还加入了SpriteBatchScreen这个直接调用SpriteBatch的类),方便移植些东西过来。并增加了一个LGame和Libgdx的混用包,以求更直接的“照搬”代码。需要注意的是,此混用包是以LGame底层API为基础的Libgdx功能再现,所以并不是标准的Libgdx类库,功能有所删减,同时也不需要Libgdx的so库支持(SVN的Beta版中有使用的例子)。另外,我将Box2D那部分使用Libgdx的代码也放到里面去了,也就是说Physics部分现在需要同时加载这个包才能用。

除了标准的setScreen方法外,最近我又新添加了replaceScreen这一切换方式,用以进行渐进式的窗体变换(通过设定MoveMethod模式,可以进行16种样式的窗体移动交替,就是常见的一个窗体逐步进入画面,一个窗体逐步移出画面那种桥段……)。PS:该方式本身就属于特效,所以使用replaceScreen切换画面时,在onTransition设定的特效会被强制无效化。


对Action事件部分也有较大修改,触发对象换成了所有继承自Action接口的类,而不限于Actor对象才能使用自动事件。不过原先使用了Actor做动作的话也无需介怀,即便您使用到了Actor特有的函数(startAnimation,stopAnimation之类的),直接强转Action为Actor即可照用不误。

并且删除了一些使用量较少的辅助类,为新增加的功能腾出空间。

经过长时间“调教”,话说0.3.3版中明显的Bug应该已经找不到了,剩下的就是同步到C#、C/C++以及HTML5(JavaScript)这三种语言的版本中去。事实上,因为小弟开发LGame的时间段太散(经常写几天又中断几天),所以很多地方测试不够,导致旧版中有些很明显的Bug存在(比较明显的是C#版,7月12号更新的这版Beta也就刚刚能使用|||)。所以我对0.3.3版的正式发布变得非常小心,绝不留后患(发布0.3.3后我就准备组团了,毕竟维护4种语言个人很难做到,突显得打基础更重要~)


之所以没有立即发布0.3.3,是因为小弟整合四种语言找平衡中,顺路补全测试用例,否则有的模块大家不知道该怎么用-_-。比如把Java版原来的 org.loon.framework.android.game.xxxx 包命名方式直接缩短为 loon.xxxx。

具体原因是为了兼顾C/C++版,因为如果和Java版package基本等价,在C/C++中使用命名空间时,就要变成如下命名样式:

namespace org
{
namespace loon
{
namespace framework
{
namespace javase
{
namespace game
{
namespace core
{


这长度,实在太碉堡了|||。而且调用时using org::loon::framework::game::xxxx一大串也非常难记。所以为了平衡各版API通用性,小弟只能牺牲点Java习惯,削足适履(虽然包名太短,在Eclipse里展开效果不好看,但在NetBeans中看着还成-_-)

PS:如果您暂时还需要使用旧版0.3.3-Beta,小弟建议一定要下载SVN中0712这个更新,否则以后的0.3.3(无论是Beta还是正式发布)都将不是目前这种包名了。当然,也没有多大的变化,仅仅是包名缩短,加之极少量LGame中Java类名与C/C++及C#版中namespace名或API名有冲突,进行了改名而已。等正式颁发布时小弟会加以详细说明(缩短全部Java包名后,jar居然额外省出了十几KB……)。


还有C++版和Java版的匹配问题不用担心,小弟把8成的Java常用API都以C++的方式实现了(具体地说,是java.io,java.nio,java.lang,java.util这四个和本地环境关系不大的部分被我移植了),所以基本数据类型,集合,线程之类的写法都可以直接套用,有简单的GC实现(引用计数器),可以在设定好的前提下支持反射(手动注册反射类)。这都是为了让Java项目能直接导出为C++项目所做的基础工作。

0.3.3正式版,过两天加一个初步的迁移工具(主要功能是把Java版项目转换成C#、C++版项目,所以需要API高度匹配,否则不好做。为此C++版甚至仿写了8成的Java类库),再写几个新示例就放出来了。大体上讲依旧Java语法特性为主,兼顾C/C++与C#用户习惯,在和前三种语法没有大冲突的前提下,适当考虑JavaScript用户习惯。

___________

最近剧荒,补女皇之刃,附带追鬼畜勇者,还我H之魂(新出的7月里番已经看完,只能看看这些了)——以及偏正常,略百合的贫乏神来了(另,距离第十三号仓库开播还有九天,总算有个能看的了)。

相关文章:

  • The guide to implementing 2D platformers(2D动作游戏开发与实现)
  • 2D动作游戏开发与实现(翻译)
  • 关于在WP7的XNA开发模式中引入广告(Ad)
  • HTML5全球普及加速:预计将终结iOS与Android界限(转载)
  • 更改ubuntu的挂载点
  • 学习旅程——轻松快乐
  • ACM模板列表
  • LGame开始进行0.3.3正式发布前的最终代码整合
  • 最近的小问题
  • Android的手势识别GestureDetector
  • 父View禁用touch 如何让子view还能获取touch event
  • JAVA_OPTS参数-Xms和-Xmx的作用
  • 浅谈Java游戏引擎在智能机领域的发展
  • Java内存查看与分析
  • 百度终于给力了,百度移动云测试中心(MTC)确实好用
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Markdown 语法简单说明
  • PAT A1092
  • SQLServer之创建显式事务
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 翻译:Hystrix - How To Use
  • 前端技术周刊 2019-01-14:客户端存储
  • 写代码的正确姿势
  • 学习笔记TF060:图像语音结合,看图说话
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • C# - 为值类型重定义相等性
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 交换综合实验一
  • 通过调用文摘列表API获取文摘
  • ​Linux·i2c驱动架构​
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (39)STM32——FLASH闪存
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (七)Java对象在Hibernate持久化层的状态
  • (全注解开发)学习Spring-MVC的第三天
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET 分布式技术比较
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ C++ ] STL---string类的使用指南
  • [2016.7.Test1] T1 三进制异或
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [CF]Codeforces Round #551 (Div. 2)
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘