若相依 发表于 2015-1-18 11:34:16

发布一篇J2ME中的基本碰撞检测算法浅析

学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解
在游戏中,常常必要举行碰撞检测的完成,比方判别后面是不是有停滞和判别枪弹是不是击中飞机,都是检测两个物体是不是产生碰撞,然后依据检测的了局做出分歧的处置。举行碰撞检测的物体大概有些的外形和庞大,这些必要举行组合碰撞检测,就是将庞大的物体处置成一个一个的基础外形的组合,然后分离举行分歧的检测。
上面复杂先容一下两种最基础的外形举行碰撞的时分举行的处置。
1、矩形和矩形举行碰撞
一样平常划定规矩的物体碰撞都能够处置成矩形碰撞,完成的道理就是检测两个矩形是不是堆叠。我们假定矩形1的参数是:左上角的坐标是(x1,y1),宽度是w1,高度是h1;矩形2的参数是:左上角的坐标是(x2,y2),宽度是w2,高度是h2。
在检测时,数学上能够处置成对照中央点的坐标在x和y偏向上的间隔和宽度的干系。即两个矩形中央点在x偏向的间隔的相对值小于即是矩形宽度和的二分之一,同时y偏向的间隔的相对值小于即是矩形高度和的二分之一。上面是数学表达式:
x偏向:|(x1+w1/2)&ndash;(x2+w2/2)|<|(w1+w2)/2|
y偏向:|(y1+h1/2)&ndash;(y2+h2/2)|<|(h1+h2)/2|
在程序中,只必要将下面的前提转换成代码就能够完成了。
可是矩形碰撞只是一种对照粗拙的碰撞检测办法,由于良多实践的物体大概不是一个划定规矩的矩形。
上面先容一下圆形碰撞。
2、圆形和圆形的碰撞
圆形和圆形的碰撞应当说是一种最复杂的碰撞,由于在数学上关于两个圆形是不是产生堆叠,有盘算两个圆心之间的间隔的公式。那末前提就变成:盘算两个圆心之间的间隔是不是小于两个圆的半径和。
假定圆形1的左上角坐标是(x1,y1),半径是r1,圆形2的左上角的坐标是(x2,y2),半径是r2。
由于MIDP1.0中没有浮点数,并且浮点数的运算对照慢,以是我们将前提做一个复杂的变更:关于前提的双方都举行平方,如许就往失落了开方的运算步骤。
上面是数学表达式:
(x1&ndash;x2)2+(y1&ndash;y2)2<(r1+r2)2
在程序中,只必要将下面的前提转换成代码就能够了。
下面先容的只是最基础的碰撞检测算法的完成,而实践的编程过程当中碰到的碰撞检测成绩要比这些庞大良多,还必要其他情势的检测,还必要举行加倍深切的进修。

通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。

再现理想 发表于 2015-1-21 10:17:04

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

若天明 发表于 2015-1-30 14:55:22

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

小妖女 发表于 2015-2-1 17:02:40

是一种语言,用以产生「小应用程序(Applet(s))

若相依 发表于 2015-2-2 11:05:03

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

愤怒的大鸟 发表于 2015-2-3 15:14:40

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

冷月葬花魂 发表于 2015-2-9 03:32:34

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

山那边是海 发表于 2015-2-10 04:27:26

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

飘灵儿 发表于 2015-2-10 08:46:08

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

金色的骷髅 发表于 2015-3-6 20:20:39

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

兰色精灵 发表于 2015-3-11 06:29:00

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

柔情似水 发表于 2015-3-13 22:07:24

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

简单生活 发表于 2015-3-15 07:36:21

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

飘飘悠悠 发表于 2015-3-31 04:06:20

是一种使用者不需花费很多时间学习的语言

活着的死人 发表于 2015-3-31 07:15:58

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

海妖 发表于 2015-4-13 04:22:42

Java 编程语言的风格十分接近C、C++语言。

小女巫 发表于 2015-4-16 04:29:58

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

因胸联盟 发表于 2015-4-16 15:09:17

Java 编程语言的风格十分接近C、C++语言。

第二个灵魂 发表于 2015-4-22 05:49:47

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
页: [1]
查看完整版本: 发布一篇J2ME中的基本碰撞检测算法浅析