- 博客(260)
- 资源 (2)
- 收藏
- 关注
原创 塔防游戏《android防御战》上线了
<br /><br />这段时间一直在学习andengine,并开发了一款塔防游戏《android防御战》,<br />算是能学以致用 :)<br />下面是对游戏的介绍,有兴趣的朋友可以下来玩玩看<br />二维码:<br /> Android世界正遭受来自不同种族敌人的侵扰,你要借助android魔法塔的力量来设置防御设施,抵御敌人的入侵。<br />游戏采用传统的塔防玩法,包括6大场景,7种魔法塔,12个有趣的关卡。你可以购买不同类型的魔法塔,并决定他们的摆放的位置,升级顺序等.<br />7种魔法
2011-04-30 12:57:00
1298
1
原创 控制游戏中物体的移动速度
<br /> <br />最近在开发TD游戏中发现,游戏中移动的物体,在android模拟器和真机上差别比较大。<br />例如模拟器上FPS=10,真机上FPS=50,那么模拟器上的物体移动速度就会很慢,而真机上却跑得很快。<br />怎样才能让物体的移动速度不受机器性能的影响呢?其实也比较简单,只要给物体一个移动速度(带方向),然后记录上一帧和当前帧的时间间隔,乘0.001换算成秒。<br />移动速度 * 时间间隔 ,就得出每帧物体需要移动的距离。这样在性能较好的机器上,每帧的时间间隔会比较短,在同样
2011-03-15 10:08:00
2612
1
转载 游戏开发中的数学和物理算法10-18
<br /> <br />1.标量<br />标量只有大小没有方向。<br />2.矢量<br />矢量既有大小又有方向。<br />3.常用举例:<br />物理上常用的矢量与标量的对应概念有:速度和速率;距离和位移等。如图:<br /><br />距离:<br />假设A到B的距离为a,B到C的距离为b,C到D的距离为c;<br />那么A到D的距离就为a+b+c。<br />位移:<br />假设A到B的位移为a,B到C的位移为b,C到D的位移为c;<br />那么A到D的位移大小为|a+b+c|(数
2011-03-06 22:45:00
6701
转载 游戏开发中的数学和物理算法(9):三角代数
<br /><br />三角代数里的公式推理思路都是通过单位圆来完成的。<br />在单位圆中有x2+y2=1。下图为一单位圆:<br /><br />推论出的公式:<br />cos2a + sin2a = 1<br />sin(–a) = –sina<br />cos(–a) = cosa<br />tan(–a) = –tana<br /><br />sin(a1 + a2) = sina1cosa2 + cosa1sina2<br />sin(a1 – a2) = sina1cosa2 – cosa
2011-03-06 21:20:00
1498
转载 游戏开发中的数学和物理算法(8):三角函数
<br /><br />三角函数在计算机游戏开发中是经常被用到的。<br /><br />主要三角函数<br />sin a=b/c<br />cos a=a/c<br />tan a=b/a<br />其他三角函数<br />csc a=c/b=1/ sin a<br />sec a=c/a=1/ cos a<br />cot a=a/b=1/ tan a<br /> 常用三角函数函数值表<br />a (Degrees)<br />a (Radians)<br /
2011-03-06 21:19:00
2142
转载 游戏开发中的数学和物理算法(7):角度 vs 弧度
<br />我们通常使用的笛卡尔坐标系统,角点通常在(0,0),即原点。初始边在x轴正半轴,终边与初始边成夹角。<br />初始边逆时针旋转为正值,顺时针旋转为逆值。<br /> <br /><br />数学表示:<br />角度:degree=radian*180/π<br />弧度:radian=degree*π/180<br />π≈3.141592654<br />例如:120◦转换为弧度为2π/3<br />计算机中的实现:<br />#define RadToDeg 5
2011-03-06 21:18:00
1521
转载 游戏开发中的数学和物理算法(6):圆和球的碰撞检测
<br /> <br />1.圆的碰撞检测<br />圆的碰撞条件:<br />当两个圆相切或者相交时,我们认为两个圆应该开始发生碰撞。<br /><br /><br />数学表示:<br /><br />计算机中的实现:<br />bool CollisionBetweenCircles(circle c1,circle c2){ bool hit; float distanceOfCenter=sqrt(pow((c1.center.x-c2.center.x),2)+
2011-03-06 21:17:00
1633
转载 游戏开发中的数学和物理算法(5):圆(2D)和球(3D)
<br /> <br />1.圆(2D)<br />圆的两个关键因素:圆心和半径。<br />公式:<br />(x–h)2 + (y–k)2 = r2 圆心为(h,k) 半径为r.<br /><br />举例:圆心为(1,2),半径为2的圆。<br /><br /><br />计算机中的实现:<br />struct circle{ Point2D center; float radius;} <br /><br />2.球(3D)<br />球的两个关键因素:球心和半径。
2011-03-06 21:16:00
1614
转载 游戏开发中的数学和物理算法(4):抛物线
<br /><br />抛物线<br />如果你投掷一个铅球或者踢足球,它们将做一个抛物线运动。因为它们总是受一个垂直于地面的重力加速度g的作用。下图为四个方向上的抛物线。<br /><br /><br />公式:<br />垂直轴向上的抛物线:y=a(x–h)2+k, 顶点为(h,k),关于x=h对称.<br />水平轴向上的抛物线:x=a(y–k)2+h, 顶点为(h,k),关于y=k对称.<br />举例:<br />
2011-03-06 21:13:00
2151
1
转载 游戏开发中的数学和物理算法(3):点之间的距离
<br /> <br />1.计算两点之间的距离<br />公式:a2+b2=c2(勾股定理)<br /> <br />2D:<br /><br />3D:<br /><br />计算机实现:<br />float Distance2D(Point2D p1,Point2D p2){ float dx=p1.x-p2.x; float dy=p1.y-p2.y; float distance=sqrt(pow(dx,2)+pow(dy,2)); re
2011-03-06 21:12:00
1428
转载 游戏开发中的数学和物理算法(2)
<br /> <br />直线公式:<br />Ax + By = C (A和B不能同时为0)<br />讨论:<br />A和B不为0:为斜线(不垂直于x轴和y轴);<br />A为0,B不为0:直线为垂直于y轴的直线,且于y轴交与点(0,C/B);<br />A不为0,B为0:直线为垂直于x轴的直线,且于x轴交与点(C/A,0);<br />例1:<br /><br />例2:<br /><br />斜率:<br /><br />定义斜率:<br />float GetSlope(Point2D p1
2011-03-06 21:08:00
1120
转载 游戏开发中的数学和物理算法(1):定义点
<br /> <br />数学中的坐标系统(笛卡尔坐标系统)<br /><br />这里A(0,0), B(1,2), C(4,3), D(–1,2), E(–2,–1), F(3,–2).<br />计算机中的坐标系统(屏幕坐标系统)<br /><br />注意这里的y轴在两个坐标系统是相反的。在后面将会研究将笛卡尔坐标系统转换为屏幕坐标系统。<br />在3D的坐标系中,没有一个工业标准,有的采用y轴向上(y-up)的坐标系,有的采用z轴向上(z-up)的坐标系,有的采用右手坐标系统(right-han
2011-03-06 21:06:00
1378
原创 控制游戏中物体的移动速度
<br /> <br />最近在开发TD游戏中发现,游戏中移动的物体,在android模拟器和真机上差别比较大。<br />例如模拟器上FPS=10,真机上FPS=50,那么模拟器上的物体移动速度就会很慢,而真机上却跑得很快。<br />怎样才能让物体的移动速度不受机器性能的影响呢?其实也比较简单,只要给物体一个移动速度(带方向),然后记录上一帧和当前帧的时间间隔,乘0.001换算成秒。<br />移动速度 * 时间间隔 ,就得出每帧物体需要移动的距离。这样在性能较好的机器上,每帧的时间间隔会比较短,在同样
2011-02-27 00:22:00
1567
原创 制作Java Applet签名验证
<br />(1)将java小程序打jar cvf test.jar test.class<br /><br />(2)生成名为allin.store的密钥库,别名为allin<br />keytool -genkey -keystore allin.store -alias allin<br /><br />(3)导出chinani.cer数字证书<br />keytool -export -keystore allin.store -alias allin -file allin.cer<br /><b
2010-12-15 23:56:00
762
原创 完成了第一个android游戏《趣味象棋》
<br />游戏中用了一个Activity主框架,在进入不同场景时再去调用不同的surfaceview<br />在整个游戏的开发过程中发现AI的设计是最难的,看来要加强算法的学习啊。<br />美工也是比较头痛的问题,图片都是用ps平平凑凑做出了的。不多说了,上截图<br /><br /><br /><br />【趣味象棋apk下载】
2010-09-09 17:46:00
1068
原创 我的第一个android应用 --《段子》
<br />学习android也有一段时间了,不过总觉得学得比较零碎,所以决定做个应用,把学到的知识做下整理。<br />我给这个应用取名《段子》,其实就是使用httpclient从网络上下载一些比较经典的段子,然后放到本地的数据库中,这是最主要的功能。<br />当然也做了一些细化的功能,如可以对喜欢段子进行加星收藏,不喜欢的段子进行删除。同时还提供了搜索功能,方便你快速查找段子。<br />最后使用的短信的intent,方便把段子和你好友分享。 <br />功能就这么多,下面有截图和apk包下载:<br
2010-09-08 09:35:00
776
转载 HTML5 WebSockets
HTML5之中一个很酷的新特性就是WebSockets,它可以让我们无需AJAX请求即可与服务器端对话。今天彬Go将让大家通过Php环境的服务器端运行WebSocket,创建客户端并通过WebSockets协议发送和接收服务器端信息。 什么是WebSockets? WebSockets是在一个(TCP)接口进行双向通信的技术,PUSH技术类型。同时WebSockets仍将基于W3C标准,目前为止,Chrome和Safari的最新版本浏览器已经支持WebSockets了。WebS
2010-08-12 13:22:00
1993
转载 深入理解JAVA事件机制
java中的事件机制的参与者有3种角色:1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中2.event source:具体的事件源,比如说,你点击一个button,那么button就是event source,要想使button对某些事件进行响应,你就需要注册特定的listener。3.event
2010-04-17 18:17:00
878
原创 js表单验证
最近公司项目中用了一些ajax的应用,其中的有些表单需要验证,周末抽空写了个通用的控件,能实现比较简单的校验,基本能满足公司项目的需求。 首先需要jquery支持, 控件支持 integer,float,munber(integer+flaot),empty String 等类型的验证。 表单控件的id和class属性是必须的 class : validata_i
2009-11-08 00:46:00
847
原创 动态css换肤
先要加入link标签 并赋予id 使用简单的js脚本控制link的链接地址function changecss(url){ skin.href=url;} 最后就可以在页面上调用了css.csscss1.css 可以把当前使用css文件记录在cookie或db中
2009-11-02 23:24:00
901
转载 通过hibernate去调用存储过程
之前一直误以为用了hibernate之后就不可以使用存储过程了可能是因为跨平台的考虑,好像这方面的资料还真的是上很少介绍(请允许我的孤陋寡闻)说实话还真看不出来hibernate调用存储过程有什么优势 表结构 1CREATE TABLE `proctab` ( `id` int ( 11 ) NOT NULL auto
2009-10-23 15:21:00
858
转载 JVM原理学习笔记
最近在阅读 《Inside the JVM》 这本书,结合一些日常工作学习中的感想,随便写一些东西,蜻蜓点水,不必有章法。关于“单例同步”: 一直有人在问单例对象的并发调用是否需要同步,基本属于“月经帖”了,答案是现成的满天下都是,但真正能让人心里踏实下来的解释寥寥无几。实际上,只要学习了一些JVM的运行原理,解释这个问题就不难了。 如果一个类是单例
2009-10-23 09:45:00
4029
6
转载 PL/SQL Developer使用技巧
1、PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;设置方法:PL/SQLDeveloper 7.1.2 ->tools->Preferences->Oracle->LogonHistory , “Store
2009-10-12 09:29:00
721
转载 Java正则表达式入门
众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待
2009-08-17 17:18:00
789
转载 全面认识UML类图元素
开发Java应用程序时,开发者要想有效地利用统一建模语言(UML),必须全面理解UML元素以及这些元素如何映射到Java。本文重点讨论UML类图中的元素。 类图是最常用的UML图,它用于描述系统的结构化设计。其中包括类关系以及与每个类关联的属性及行为。类图能出色地表示继承与合成关系。为了将类图作为一种高效的沟通工具使用,开发者必须理解如何将类图上
2009-08-13 11:09:00
981
2
转载 使用Adobe Flex 3开发大型多人在线游戏
简介本文简单介绍了如何使用Adobe Flex 3技术来开发多人在线游戏.讲到了为何选择Adobe Flex 3,开发中注意的问题以及开发的一个简单流程等,对于想了解Flex 3在游戏开发方面知识的朋友还是很有帮助的. 中间还有几句,我怎么也想不到该如何表达会好一点,还请大大们帮我补上.谢谢各位了!使用FLEX3开发大型多人在线游戏大型多人在线游戏
2009-07-31 00:45:00
1153
转载 JVM内存模型以及垃圾回收
JAVA堆的描述如下:内存由 Perm 和 Heap 组成. 其中Heap = {Old + NEW = { Eden , from, to } }JVM内存模型中分两大块,一块是 NEW Generation, 另一块是Old Generation. 在New Generation中,有一个叫Eden的空
2009-07-03 16:49:00
731
转载 排序算法复习(Java实现): 插入,冒泡,选择,Shell,快速排序
为了便于管理,先引入个基础类:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package algorithms;/** * @author yovn *
2009-06-30 17:51:00
1231
转载 java中 int 转 byte 的规律
iphone 3G 保护贴 保护膜 超耐磨 日本 28.0元 一).a(-|+)256=c;如果a为正数那么使用a-256=c,如果说a为负数使用a+256=c如果结果c不在-128~127之间再次用c(-|+)256依次类推直到结果c在-128
2009-06-24 16:16:00
1398
转载 Java对象及元素的归宿在哪里
在JAVA平台上开发应用程序的时候,有一个很大的特点就是其是在应用程序运行的时候才建立对象。换句话说,在程序运行的时候,才会最终确定对象的归属,即对象应该存储在什么地方。由于存储在不同的区域,其在性能上会有所不同。为此作为Java程序开发人员需要了解各个存储区域的特点以及对性能的影响。然后再根据需要来调整应用程序的区域分配。总的来说,在操作系统中有五个地方可以用来保存应用程序运行中
2009-06-10 18:02:00
618
转载 JAVA基础知识精华总结
1、对象的初始化 (1)非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。 (2)静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。
2009-06-10 15:34:00
544
转载 hibernate里load方法和get方法的区别
1.hibernate中get方法和load方法的根本区别在于:如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,那没办法,只能抛异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛
2009-06-10 14:37:00
529
转载 Java事务开发常见问题
作者: 佚名, 出处:IT专家网论坛<br /><br /> 一、了解事务源<br /> 我在面试中经常会问到这样的一个问题,假如有一个全局变量,在一个事务中修改了这个变量的值,而后这个事务因为别的原因回滚了,那这个变量的值会回滚到更改之前的值么?<br /> 其实事务只能对它所管理的资源进行提交和回滚,这些资源就是事务源,它通常包括数据库连接资源,JMS队列资源等。事务的ACID(原子性,一致性,隔离性,持久性)属性也是针对它所管理的资源而言的。前面问题中的一个全局变量,可以说是内存中的一块存
2009-06-10 13:39:00
444
原创 一些高效的Linux命令行操作
1. 查找Java项目中,main方法定义在哪个文件里. 切换到你要查找项目的目录下执行 grep -rlI /<main . 如果你觉得自己打字快,不怕麻烦执行如下命令也可以找到该文件 find -type f -name *.java -exec grep -l /<main {} /; 2 快速的建立一个文件,并输入一些
2009-05-31 10:10:00
823
原创 Jquery插件开发
使用jquery也有一段时间了,以前写的都比较零散,要不就是使用别人开发的jquery插件。开发第三方插件是我们提高JQuery代码经验的不错的选择,当我们的代码想要重用的时候,我们总是习惯把这些代码封装成一个插件,幸运的是在JQuery中这并不比写代码复杂多少。 JQuery的全局函数也就是属于JQuery命名空间的函数,典型的例子就是$.AJAX()这个函数。将函数定义于Jqu
2009-03-05 22:34:00
1938
1
原创 ajax文件上传应用
今天看到一个jquery插件jquery.fileupload.v.1.5.0,自己试着结合java做了一个ajax的文件上传小应用这个插件支持多个文件选取功能,很不错,而且代码简单: $("#fileUpload").fileUpload({ uploader: style/uploader.swf, cancelImg: style/img/
2009-03-03 17:52:00
1445
原创 jquery小应用
本应用有点类似google联系人选择的那种小应用。使用jquery的弹出窗口,动态加载后台数据到窗口的上部(非共享区),下部(共享区)。可以从点击上部的数据添加到下部的共享区中。也可以把下部的的数据删除,还原到上部的非共享区中。 从Google的应用中学到了不少的东西~哈哈 新加入的全选和取消选择功能
2009-02-27 14:07:00
716
领域驱动设计(精简版)
2008-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人