11
2013
08

libgdx小游戏源码分享

游戏在线体验(建议chrome浏览器):

是的,这个屌炸天的小游戏作为我专用示例,已经移植到了文曲星GVM2、j2me、android、pc、unity3d、html5甚至psv上了……希望以后能找到更好的示例替代游戏。

点击下载工程源码


09
2013
08

JavaFX的Dialog扩展库

目前JavaFX没有提供直接使用的类似MessageBox、Dialog的API,必须自己构建界面去实现,相当麻烦。这里介绍一个老外封装好的一套Dialog,涵盖了所以类似其它平台的Dialog功能,包括提示、警告、错误、询问对话框等,效果如图:

javafx-information-dialog.png

使用方法很简单,导入jar包,然后使用如下Api即可:

Dialogs.showWarningDialog(stage, "Careful with the next step!", "Warning Dialog", "title");

下载jar包以及了解更多用法,请到其Github主页


09
2013
08

Java中使用js脚本

JAVA其实早在JDK1.6中就集成了JSR223包括JavaScript、Python等脚本功能。当我们遇到需要支持插件等拓展功能的项目时,比起反射,脚本更加简单易用。下面以JavaScript为例,简单介绍一下脚本在Java中的用法。

初始化脚本引擎:

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine jsEngine = manager.getEngineByName("javascript");

08
2013
08

使用可视化布局工具开发JavaFX应用

Oracle为JavaFX提供了可视化的布局工具JavaFX Scene Builder,用来替代繁琐的界面设置代码和脑补预览,并可以方面地将界面控件与逻辑代码绑定,点击进入官方下载

JavaFX Scene Builder其实是一款JavaFX使用的FXML编辑器,类似于android的布局系统,初步使用了一段时间,发现体验很不错,要优于大部分Swing插件,当然比起微软的那一套还有差距。得益于JavaFX优雅的设计,它在使用时不需要设置一大堆容器和复杂的布局,基本上拖拖拽拽和简单的设置就能实现大部分布局,此外还支持css以及界面预览功能,可以简单查看实际运行效果。

2.png

……

07
2013
08

JavaFX简介与使用入门

JavaFX是Sun于2007年推出的富互联网应用开发技术(RIA)。所谓RIA,就是页面体验和数据交互都基于web,提供跨平台,拥有丰富的体验,且易于部署的应用程序。了解更多RIA可以参照维基百科上的内容。

1_book_swiss_armyknife

RIA普遍被认是未来互联网应用发展趋势的热门技术,比如Air、Flex、Silverlight、Google GWT甚至HTML5等。JavaFX诞生之初,adobe借助flash普及,谷歌、微软借助系统和浏览器,优势都很明显,相比之下JavaFX形势不乐观也受到较少的关注。2007年Sun发布JavaFX1.0的时候以JavaScript作为语言,具有一定的学习成本,使用起来也并不方便。后来Oracle发布JavaFX 2.0,增加了很多新特性,并明智地抛弃js选择Java作为开发语言。这样一来,广大开发者可以毫无困难地使用JavaFX,并吸收Java大量的现有框架。JavaFX 2.0使用起来有点像简洁版的Swing,但其强大的地方在于可以使用FXML定义应用的布局实现逻辑与界面分离,有点类似Android的布局系统,这也是经典的MVC理念,官方还提供完善的布局设计工具,体验要优于任何Swing插件。此外,JavaFX 2.0还可以开发3D应用、媒体应用等,支持GPU渲染,更厉害的是像页面一样支持CSS,可以轻松实现自定义的界面风格。到目前为止,JavaFX支持windows、mac、linux平台,ARM版的也在准备中,事实上已经可以通过RoboVM在IOS上运行JavaFX了,有迹象表明官方也将对移动平台提供支持。由此可见选择JavaFX的有着众多优点,虽然HTML5在崛起,而JavaFX也有依赖较新版本JRE的软肋,但凭借Oracle的推广和近乎无限的Java资源,JavaFX必将在未来RIA第一阵营中占有一席之地。

……

04
2013
08

翻出一个高二写的游戏

QQ截图20130804001928.jpg

哈哈哈哈!翻到个屌炸了天的东西!还自带地图编辑器有木有?!尼玛在软件里留学校班级是多么洋气的行为!

31
2013
07

JAVA中如何等待所有子线程处理完毕

多线程开发中,经常会遇到某个操作需要等待其它线程处理完毕才能执行。比如主线程要等若干个数据库提交线程处理完毕后关闭数据库连接,如果用join会让线程变成顺序执行,失去了多线程的意义,如果用计数来标记逻辑上又混乱,这里介绍JAVA提供的一个多线程同步工具类:

java.util.concurrent.CountDownLatch
 

CountDownLatch使用很简单,在构造的时候指定线程的数量标记,每当一个子线程run()执行完毕以后调用一次其countDown()方法来标记一个线程执行结束。在主线程中通过await()方法来完成与其它线程的同步。

29
2013
07

Eclipse下如何用libgdx开发html5

Libgdx如何安装配置这里不再阐述。官方对如何开发调试HTML5几乎没什么介绍,网上资料也较少,这里简单讲解一下如何配置环境。

首先创建libgdx工程时可以用其提供的创建工具建立包含HTML5的工程,但是导入html5的工程文件会无法识别,这是因为缺少Google plugin和Google Web Toolkit,去这里下载www.gwtproject.org/download.html,Google plugin仅安装Google Plugin for eclipse即可。

28
2013
07

2D光照引擎BOX2D LIGHTS

这个屌炸天的框架可以让你的BOX2D物理游戏拥有炫酷的效果,并且同BOX2D一样非常容易使用。

项目地址:https://code.google.com/p/box2dlights/

image


目前这个项目是基于libgdx开发的,不过作者也表示它可以很容易地移植到其它框架或者原生的openGL中去。通过我的实践来看,确实搭配libgdx使用起来更加方便。

这里还有一个老外做的教学视频,教你如何在libgdx里创建光效(记得挂代理):

http://www.youtube.com/watch?v=O1zW2XETuXA


24
2013
07

RoboVM迎来0.0.3

   昨天在RoboVM博客得知其发布了0.0.3版。这次最大的改变就是以JNI形式内嵌了llvm,并且只需要安装RoboVM的eclipse插件即可完成配置(http://download.robovm.org/eclipse/)。相比之前要安装llvm、RoboVM以及eclipse插件的繁琐步骤,现在不仅将配置RoboVM变成一键完成,还提升了项目40%的编译速度。

   另外作者最近曾发布过RoboVM进行openGL开发,以及运行javaFX示例、libgdx示例的文章,从结果来看,虽然有些不完美,但总体适配情况令人满意。libgdx作者也发表过类似文章肯定了libgdx在RoboVM上的运行效果,并多次表示将加强与RoboVM的合作。

   虽然RoboVM还仅停留在0.0.3版,离正式商用尚有一段距离,但从目前的情况来看,它已经具备一定的实用性,只是很多细节还需要处理,相信在作者的努力下,不久的将来JAVA一定能在IOS上大放异彩。