自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thinking in Haxe - Rocks Wang的专栏

ONE LANGUAGE TO RULE THEM ALL!! 一份代码直接构建多达9个主流平台的原生应用,这就是不可思议的HAXE!

  • 博客(40)
  • 资源 (5)
  • 收藏
  • 关注

原创 haXe开发备忘:位图重复填充的问题

开发中发现:在native也就是cpp目标中,用Graphics.beginBitmapFill()这个方法填充一个区域时,repeat参数不起作用,结果总是用边缘像素填充了空白区域。经过一番检索与研究,发现这是OpenGL硬件渲染器的一个已知限制,如果纹理图的边长不是2的整数倍(如4, 16, 64, 256, 1024...)的话,就是这个结果。有几个解决方案可根据实际情况选用:1

2012-12-25 17:11:57 749

原创 haXe NME通过JNI调用Android

haXe中的JNI概念首先澄清一个概念问题,NME中的JNI接口和java中的含义并不相同,java中的JNI是java调用本地C/C++代码的标准接口,而haXe中的JNI则正好相反,是用haXe在Android目标平台调用java代码。当然,意义上也说得通,因为从haXe和Android目标的关系来说,Android自带的java运行库反而是native的嘛,呵呵。 nme.JNI

2012-12-18 23:21:22 2142

原创 可选的Int参数在CPP目标上导致的编译错误

这是昨天开发中遇到的另外一个平台相关小问题。见代码如下:typedef Request = { var code: Int; var data: String; }public function request(?requestCode: Int = 1, ?requestData: String) {  var requestList: Array = [];  requestL

2012-12-14 13:05:43 680

原创 类中静态变量的初始化在Flash和CPP目标的小差异

原想写两个静态变量把当前设备的屏幕大小预先保存起来,这样比起在代码中写Lib.current.stage.stageWidth能少打几个字,于是,我就这么写了:class Util {public static inline var screenWidth: Int = Lib.current.stage.stageWidth;public static inline var scre

2012-12-14 12:25:17 614

原创 haXe中使用callback关键字"特化"一个函数从而改变其参数列表

haXe中有个很方便的特性,就是可以用callback关键字来“特化”一个函数。具体就是针对一个多个参数的函数调用,可以指定1至若干个默认参数的值,而返回一个需求参数数量小于原函数的定制化的新函数。看上去很晕吧,但是有时候很方便,比如我最近遇到的一个场景,AS3中的事件监听器的原型必须是Dynamic -> Void,而我希望用一个函数处理所有的鼠标事件,但是根据不同事件类型对函数进行定制

2012-12-13 02:33:24 834

原创 一个完整的haXe游戏例子

一个老外一个人在48小时内做完的,包括编码,美工,动画,声音等。页面里有完整代码下载。http://mkv25.net/ludum/ld24/preview/

2012-12-12 01:21:36 1538

原创 关于haXe/Java的一些文章收集

官方的新手指南:http://haxe.org/doc/start/java如何编译haXe成java: http://www.gigglingcorpse.com/2012/04/11/compiling-haxe-to-java-is-really-cool/用haXe编写nme项目中Android目标的Java部分: http://www.gigglingcorpse.com/201

2012-12-12 01:20:31 892

原创 haXe中时间和日期的小结

haXe里关于时间和日期有不少类和方法,这里整理小结如下:* haxe.Timer.stamp() : Float  这个静态方法返回一个当前时间戳,单位是秒,但因为是浮点数(haXe中的浮点数是双精度的也就是double),所以可以精确到毫秒级。可用于在游戏中测量时间差。  但是一定注意,它返回的并非其它语言中的标准时间戳概念(比如java/C/perl等,即1970年1月1日0点开

2012-12-12 01:19:26 953

原创 一个可以设置种子的随机数产生器

haXe在flash平台中没有可设置种子的随机数产生器,cpp平台中有cpp.Random类可设置种子,但不能用于flash平台,比较麻烦。这里特别给出一个各平台通用的“有种的”随机数产生器类:package net.cnjm.haxe.util;#if cpptypedef Random = cpp.Random;#elseimport nme.display.Bitma

2012-12-12 01:16:10 745

原创 haXe学习笔记:xml的解析

haXe官网文章链接:http://haxe.org/doc/cross/xml在haXe中操作xml文件还是很简单的,就一个类Xml,这个类既是工具类又是文档节点类。下面的代码即可解析xml:    var str = 'Haxe rules!';    var xml : Xml = Xml.parse(str).firstElement();            t

2012-12-12 01:15:27 931

原创 haXe开发备忘:haXe库整理

事先声明,这里仅收集罗列对于本人常用及感兴趣的haXe库,用haXe+NME开发跨平台游戏的童鞋可以参考。以下库除特别说明外都可以用haxelib install 命令来下载安装,用haxelib info 来获取其主页地址及版本信息。* actuate: 非常方便的补间动画引擎* box2d: 著名2D物理引擎的haXe移植。这个库最近版本的许可证从GPL改为更宽松的MIT了,想把它

2012-12-12 01:14:46 2108

原创 haXe学习笔记:关于类,接口和派生

haXe的类派生机制和Java大同小异,也存在类和接口,一个类也是只能继承一个超类,但可以实现多个接口,这里仅仅总结一下不一致的一些细节情况。1. 接口实现的语法稍有不同Java中implements关键字后面可以跟多个接口名,比如A implements Runnable, Serializable { ... }但haXe中每个implements后面只能跟一个接口名,但可以用多个

2012-12-12 00:55:35 1354

原创 haXe学习笔记:关于NME中的drawTiles方法

这两天修复了NME中flash版本drawTiles方法的几个bug,还把颜色变换功能补上了,NME的老大已经把我的补丁集成到NME的subversion中了,特此写一篇来记录一下。Tilesheet类和drawTiles方法是NME中的独有的东西,在flash的API中是没有的。drawTiles方法的特点是:* 可以一次性批量绘制一张图片的多个矩形区域(所谓Tile)到目标Grap

2012-12-10 00:15:29 1341

原创 用haXe+NME实现水果忍者的刀光效果,支持多点触摸,Flash10, Android通用

前两天玩了玩水果忍者,感觉这种输入方式是非常适合多点触摸屏的,输入直观而且爽快感十足,于是就想到了如何使用haxe+NME实现刀光的效果,今天按照我的想法把效果实现了,感觉还是很逼真的。估计即使不是水果忍者中的真正算法,也差之不远了。下面介绍一下我的算法。算法的核心是采用NME中的Graphics.drawTriangles()来实现扭曲位图映射。对应在Flash中,这个API是从Flas

2012-12-10 00:12:08 2835

转载 屏幕分辨率及对应名称大全

http://www.android123.com.cn/androidkaifa/578.html    对于Android游戏开发我们不得不像iPhone那样思考兼容Android平板电脑,对于苹果要考虑iPad、iPhone 3GS和iPhone 4等屏幕之间的兼容性,对于几乎所有的分辨率Android123总结了大约超过20中粉笔阿女郎的大小和对应关系,对于开发Android游戏而

2012-12-10 00:10:55 4488

原创 haXe学习笔记:写一个支持类型参数的静态方法

在Java中,泛型是1.5版本加入的新语言特性,因此只要你不在乎警告或压制了警告,就可以无视它。但在haXe里,类型参数是你无法避免的东西,因为Array你是无论如何也得用的。还好,简单使用起来也很容易,没什么不容易理解的地方。这里说说我们自己怎么编写支持类型参数的类和方法。支持类型参数的类有很多例子,比如haXe源码里Array的实现,这里摘录代码片段如下:class Array {

2012-12-10 00:09:09 715

原创 haXe开发备忘:如何使用变长参数

不少语言里面都有变长参数语法的支持,但方式方法各自不同,比如java是用迭代器,javascript是用arguments变量,AS没研究过,大概跟javascript比较像。而haXe则是另一种方式,今天工作中恰好要写找最大值最小值的变长参数方法,这里就共享出来。class Utils {  public static var max: Dynamic; public sta

2012-12-10 00:08:36 899

原创 HaXe学习笔记:HaXe语言和其它编程语言的区别

以前发在百度空间里的,目前看来可能不够精确,仅供大家参考。================================================================老实说,haxe这种语言还是有些怪异的,这里主要跟我擅长的java和一般擅长的javascript比较一下吧,这两种语言一为静态语言,一为动态语言,而haxe则居于两者之间,再加上类似C的预编译指令,真是呜

2012-12-10 00:07:32 4587

原创 让我们一起进入haXe的奇幻世界吧

haXe是什么?haXe是一种编程语言,官方网站在:http://haxe.org下面是官网对haXe的描述:IF YOU COULD ONLY LEARN ONE PROGRAMMING LANGUAGE, HAXE WOULD BE IT.IT'S UNIVERSAL. IT'S POWERFUL. IT'S EASY-TO-USE.那么haXe

2012-12-10 00:01:30 3480 3

原创 在J2ME中实现高效高质缩小图片

以下算法可以把一张图片快速缩小到原大小的1/4,即长宽都为原来的一半,且因为使用邻域组合的算法(即从原图4个像素累加再4等分得到新图上的一个像素),效果非常好。虽然不能实现任意比例放缩,但以下算法短小精悍效率高,可用于一些特定场合,比如:显示图片的缩略图等。 int w1 = img1.getWidth(), h1 = img1.getHeight(), w2 = w1

2012-12-09 20:01:07 616

原创 Javassist简单应用 - 不用学习JVM知识也可以修改class文件

------------------------------------------------ package rocks;import javassist.*;public class TestAssist {        public static void main(String[] args) throws Exception {        ClassPoo

2012-12-09 19:58:13 731

原创 原创开源javascript解释器 RockScript,可以在J2ME手机上流畅运行!

源代码和测试程序在这里:http://code.google.com/p/javascript4me/已在Nokia低端S40手机中测试过。测试程序是一个标准J2ME应用,打开程序后即可从javascript例程列表中选择一个来显示源文件或直接执行。如需测试自己编写的javascript源码,只要将编写好的js文件加入scripts.zip并重新打JAR包即可。优点体积超级

2012-12-09 19:55:02 1380

原创 从Java虚拟机角度审视针对移动设备的代码优化

这篇文章是很早以前针对J2ME代码的优化而撰写的,那个时候很多设备的虚拟机性能烂,内存少,对JAR包的体积还有要求(比如老S40),所以极限化优化是一种需求。当下的智能手机甚至功能手机都和几年前已不可同日而语,下面的很多技巧仅供参考吧,至少能让大家对java编译器和虚拟器的一些机制有些了解。以下的技巧根据不同需求可归纳如下:1. 通过改变编码习惯减少生成的字节码指令数量,这样既能节省内

2012-12-09 19:44:45 693

原创 NME Android目标中文输入问题完美解决!

前面写了两篇文章提到了在haXe+NME中解析和显示中文的问题,但是经验证,在Android/Windows等目标平台上(iOS目前没条件测试),中文输入还是不行,TextField似乎仅接受Ascii字符。今天在群中看到有位大侠找到了老外写的一篇文章解决了这个问题:http://www.haxenme.org/community/forums/general-discussion/patch

2012-12-09 00:13:32 1972 1

原创 haXe开发备忘:访问本地文件

试了下如何用haXe访问本地文件系统。* 在Android/windows中,可以用sys.FileSystem和sys.io.File来读写本地目录与文件* 而URLRequest则用来访问远程站点,类似file:///sdcard/xxx/xxx.jpg这样的本地文件URL目前看来是不能识别的* 看到NME坛子里讨论好像URLRequest接受/sdcard/myfolder/fi

2012-12-09 00:12:47 1296 2

原创 在haXe中实现文件上传

研究了一下haXe中的文件上传,因为nme的cpp(neash)库中缺失FileReference类,因此只能采用URLRequest+URLLoader的方式来上传文件。这里的关键是要请求中采用HTTP协议中标准的multipart/form-data的方式来编码POST数据,这样可以在一次请求中向服务器端提交多个参数,同时上传多个文件,且文件名等信息也包含在请求数据中。服务器端是很简单

2012-12-09 00:10:02 1273

原创 haXe开发备忘:关于TextField的一些研究

* 如果wordWrap属性为true,则TextField的width和height属性不会随text变化而自动更新,必须显式的修改,默认值为100*100* TextField的textWidth和textHeight是文本块的真实宽高,随text变化而自动更新* TextField.defaultTextFormat仅对在其后设置的文本有效,即必须先设置defaultTextForm

2012-12-09 00:09:23 801

原创 关于自动拼接地图算法

游戏地图中不同地形之间的过渡是个比较麻烦的问题,不过编辑器不能自动处理,那么地图编辑者就很累了。这里收集了一些原理性文章,设计RpgMaker和Tiled编辑器中的两种不同方式。RPG MAKER的自动砖块拼接  http://blog.csdn.net/changbaohua/article/details/3860503浅谈RPG Maker XP自动地图元件的绘制原理  http:/

2012-12-09 00:08:44 3939

原创 关于haXe NME中的事件机制

因为NME实际就是C++版本的AS3运行库,因此可直接参考AS3中的事件机制。下面是两篇比较系统的中文文章:AS3中的事件机制 http://hi.baidu.com/iammutex/item/553aab20b4caeb11087508f4AS3事件机制浅析 http://www.cnblogs.com/psj2002/archive/2012/05/14/2499592.html

2012-12-09 00:02:53 1118

原创 haXe中对BitmapData进行批量像素级运算

NME中大部分的位图滤镜(flash.filters.*)都未实现,所以有些特效不得不自己编写代码来进行批量像素处理。用getPixel32()和setPixel32()当然是最简单的,但效率很低。因此这里使用getPixels()把批量像素复制到字节数组,进行完运算,再用setPixels()覆盖回到位图。下面的代码目的是根据一张掩码位图mask对原始位图bmp逐像素进行浮雕化处理,也就

2012-12-08 23:39:20 1058

原创 haXe CFFI介绍

官方文档:http://haxe.org/doc/cpp/ffiCFFI是haXe和原生CPP代码交互的标准方案,就像JNI相对于java。因为NME的iOS/Android部分都基于CPP,因此如果希望自己扩展haXe,理解CFFI很有必要。

2012-12-08 23:37:14 829

原创 如何创建NME本地扩展

最近正研究NME如何调用Android/iOS本地库,这里先把老外大牛的文章链接贴一下,等亲自验证了再补充我自己的心得。http://www.joshuagranick.com/blog/2012/03/20/how-to-create-an-nme-extension/另外这里有老外原文中引用的例程源码:http://code.google.com/p/nme-extension

2012-12-08 23:36:36 660

转载 【转载】NME不同平台上读写文件的处理

原文:http://www.idearadar.org/?p=71NME’s Pitfalls and workarounds(1): Use SharedObject over ByteArray IO 在nme 3.4.3中,它的ByteArray IO与filesystem相关类在不同target中表现不同,如下段代码所示,你需要用条件编译来处理它: loader.d

2012-12-08 23:35:53 695

翻译 haXe2.1到haXe3的变化

见官方文档:http://haxe.org/manual/haxe3 捡几个影响比较大的小结如下:* Zip API现在被移到haxe.zip包,变成完全跨平台的了* 平台相关的文件操作API被移到sys包中,变成跨平台的了* 属性的getter和setter命名被标准化了,但仍然向下兼容,见下面例程:class Foo {    public var x(get,se

2012-12-08 23:34:55 810

转载 【转载】BitmapData的整理

不错的文章,转一个。原文地址:http://www.cnblogs.com/psj2002/archive/2011/02/17/1957277.html======================================================================最近在看BitmapData这个类,对这个东西也不是很熟悉,所以在网上看了一些资料,现

2012-12-08 23:34:16 756

原创 NME使用Android设备自带中文字体

前面写了篇关于中文显示的文章,地址在:http://hi.baidu.com/rockswang/item/7a6e5c283eb1190f42634acb在Android平台上,上文给出的解决方案是应用自带中文字体。但是这里有个问题就是中文字体文件普遍太大了,比如我找的仿宋字体算小的了,也有4M左右,而微软雅黑居然要14M,这样apk安装包就很大了。另外,经测试我的华为C8500低端手机

2012-12-08 23:33:03 1343

转载 NME - 签署Android发布包

原文:http://www.gigglingcorpse.com/2012/03/15/nme-signing-for-android-release/ nme – signing for android releaseAfter a few days of working on that simple game I mentioned earlier, and after muc

2012-12-08 23:31:56 975 1

原创 本博客重新开张了!

因为在百度空间发表的技术文章经常被管理员莫名其妙的锁帖,因此决定搬回CSDN这个我最早用的开发者论坛了! 目前主要关注使用haXe开发跨平台娱乐应用和游戏。haXe是一种超级酷的语言,在NME和Jeash库的支持下,可实现一套代码同时构建到Android, iOS, BlackBerry, Flash, HTML5, Windows, Mac等多平台,开发之易不逾J2ME, Flash

2012-12-08 23:30:00 624

原创 NME中不同渲染方式的性能测试

原文链接:http://www.joshuagranick.com/blog/2012/10/04/nme-rendering-methods-benchmarked/作者的测试是在一台Mac pro笔记本上分别分别针对本地目标和flash目标进行测试。其分数是在稳定的60帧/秒速率下,同屏显示的精灵(bunnies)数量,数量越多性能越好。本地目标采用GPU加速,而Flash则是软件

2012-12-08 23:17:25 1461

原创 Android WebView的一些使用技巧

从java代码中操作DOM* 最简单的办法是使用WebView.loadUrl("javascript: javascript_code_to_modify_dom();"),用这个方法可以方便的对DOM进行修改,可以使用JQuery。这个方法的缺点是没法读取DOM,而只能修改,或调用js方法。* 利用html中的Form表单(必须使用GET方法)和WebClient.shouldOver

2012-12-08 23:08:35 1907

haXe2语言参考手册

haXe2的语言参考手册,目录如下: 1. 基本类型 2. 语法 3. 类型推断 4. 面向对象 5. 类型参数(泛型) 6. 枚举 7. 包与导入 8. 动态类型Dynamic 9. 高级类型 10. 迭代器 11. 属性Properties 12. 可选参数 13. 条件编译 14. 内联 15. 关键字速查

2013-01-20

haXe语言参考手册

haXe2的语言参考手册,目录如下: 1. 基本类型 2. 语法 3. 类型推断 4. 面向对象 5. 类型参数(泛型) 6. 枚举 7. 包与导入 8. 动态类型Dynamic 9. 高级类型 10. 迭代器 11. 属性Properties 12. 可选参数 13. 条件编译 14. 内联 15. 关键字速查

2013-01-20

haXe2语言参考手册(英文)

haXe语言参考手册,全面的介绍了haXe语言的各个方面,章节列表如下: 基本类型 语法 类型推断 面向对象 类型参数(泛型) 枚举Enum 包和导入(import) 动态类型Dynamic 高级类型 迭代子Iterator 属性Properties 可选参数 条件编译 内联inline 关键字列表

2013-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除