- 浏览: 25429 次
- 性别:
- 来自: 北京
最新评论
文章列表
转自 http://www.dualface.com/index.php/archives/1216
cocos2d 回放音效的默认设置是 44Khz,但 iPhone 环境下 22Khz 就足够了,大多数游戏的音效文件都是 22Khz 的。所以在初始化游戏时,应该修改 cocos2d 的音效回放设定,以达到最高的处理效率。
#import "SimpleAudioEngine.h"[CDSoundEngine setMixerSampleRate:CD_SAMPLE_RATE_MID];
还可以在初始化时预先载入音效,避免玩家操作要发出音效时却导致游戏 ...
http://www.cocos2d-iphone.org/forum/topic/273#post-1451
Available Properties in UIDevice
uniqueIdentifier – identifier guaranteed to be unique for every device
name – arbitrary name found in General > About setting on device
systemName – name of the OS running on the device
systemVersion – current version of the OS
model- model, such as ”iPhone” ...
这是2个月之前的开发,遇到的问题.当时用了2天时间得以解决。思考过程比较绕,但只要理解了原理 那么付诸于代码后,就变的so easy...
理解的核心就是要用一阶导数.
当你的物体(子弹,炮弹,各种物体...)被发射后,box2D会帮你模拟弹道曲线!这根本不用去想也不用你管!但你会发现刚体在空中时,其角度不会发生变化! 所以就变成了一个角度打出去,落地前绝不变化的情况!
当时我自己用纯数学的计算,解决了问题。但当时刚接触Box2d 对其API不了解!最后才知道用其刚体属性的线速度即可替代我那之前几十行的数学算法! 不啰嗦了,刚体怎么发射出去的我就不管了! 在此只说 ...
原文地址:http://www.cocoachina.com/newbie/basic/2010/0726/1927.html
1.在您專案中的Goups & Files 下找到 Targets2.在您的軟體名稱如MagicFighter上按下右鍵並選擇Duplicate3.將複製出來的新Target更名為 xxxLite 如 MagicFighterLite4.找到Info copy.plist並更名為 InfoLite.plist5.在左上方的下拉式選單切換您的Active Target為Lite版本如MagicFighterLite6.在Targets下雙擊您新的Target如MagciFighterLite以開啟 Target Info設定畫面7.將左上方的Configuration修改為 All con ...
Q: How do I access the pixel data of a CGImage object?
A: On Mac OS X 10.5 or later, a new call has been added that allows you to obtain the actual pixel data from a CGImage object. This call, CGDataProviderCopyData, returns a CFData object that contains the pixel data from the image in question. A ...
(此为国外网站的自动英译中,- -!遗憾的是不能手动调回英文状态... 所以措词看的很不舒服! 但代码和他说的几个碰撞的介绍的地址,还是值得保留和参考的)
你将不得不自己,程序这和小心的像素碰撞可能是 iPhone 来说太贵 ...
boolean isCollisionPolygon(int[] xPoints, int[] yPoints, int posx, int posy) {
int i, j;
int y;
int miny, maxy;
int x1, y1;
int x2, y2;
int ind1, ind2;
int ints;
int[] polyInts;
int nPoints = xPoints.length;
if (nPoints < 3) {
return false;
...
XNA中关于2D图形像素碰撞
- 博客分类:
- 算法收集
下面所介绍的例子是微软官方的一个例子,这里给出下载XNA官方2D像素碰撞例子的链接。
在这个例子中没有涉及到什么新鲜的技术,主要是利用提取图像的像素,然后根据两张图像画布相交的范围构造一个小范围的矩形框,之后遍历此矩形框中的每一个像素点,判断当前遍历到的像素点的alpha值是否为零,若两张图片同一个像素点的alpha值同时不为零,则两张图片碰撞,反之则没有进行碰撞。好了,不罗嗦了,下面就展开介绍一下这个例子吧。
这个例子比较简单,没有自己封装类,所有功能都是在PerPixelCollisionGame类中实现的,该类继承Game类。
首先是定义一些常用的变量, ...
很多玩过飞行射击类游戏的朋友都对跟踪导弹印象深刻,手中有这样一款武器常常能够战无不胜,但是敌人射出的导弹则可能成为玩家的噩梦。其实实现导弹跟踪的方法并不复杂,只需要一些简单的平面解析几何知识就可以做到。算法分析假设导弹旋转角速度为omega,运动速度为v。下图显示了导弹和目标在坐标轴中的初始状态。
初始时刻,目标与导弹的运动方向都是-Y,位置分别为(x1,y1),(x2,y2),连接导弹与目标的坐标,得到一条线段,该线段与-Y轴夹角为c;导弹与-Y方向的夹角为b,b是导弹已旋转的角度,此时为0;导弹方向与线段的夹角为a,a就是导弹还需要旋转的角度。此时:
c=90-Math.a ...
首先,本文讨论的是很简单的算法。高手莫入。
在飞行射击游戏中,恐怕没有一个游戏不用到跟踪算法的。比如在玩街机的时候,是不是经常挂于BOSS的“跟踪弹”?
这是怎样实现的呢?很简单,只要有高中的一点数学知识就行了!
首先回忆几个三角函数sin,cos,tan(tg),arctan(arctg)sin(x)—对边/斜边。在1,2项限为正,3,4项限为负cos(x)—邻边/斜边。在1,4项限为正,2,3项限为负tan(x)—对边/邻边。在1,3项限为正,2,4项限为负
考虑到游戏里面的坐标系如下所示:
假设敌人子弹的坐标为slug.x,slug.y,子弹的速度为slug.
卡马克地图缓冲图大小计算方法
- 博客分类:
- 算法收集
背景缓冲的大小
背景缓冲图像的大小要大于屏幕最多可涉及的Tile的区域。
例如:
屏幕大小是128 X 128,Tile是 8 X 8,缓冲图像至少是 136 X 136 = (128 + 8) X (128 + 8)
屏幕大小是120 X 130,Tile是 8 X 8,缓冲图像至少是 128 X 144 = (120 + 8) X ((130+7)/8*8 + 8)
屏幕大小是 screenW X screenH,Tile是 tileW X tileH,
缓冲图宽高的计算公式为:
(screenW + (tileW - 1)) / tileW * tileW + tileW ...
为了不浪费时间介绍动态刚体,可以直接参参见下面的连接:
http://www.d6.com/users/checker/dynamics.htm#articles
这里,展示了如何在2D游戏中实施真实的物理。
我将介绍一些我所做的扩展,首先,计算给定凸多边形的惯量是有技巧 ...
六、计算触点
为了动态的移动刚体,我们需要精确计算两个碰撞多边形之间的触点。对于2D来说这并不复杂,但是在3D场景中会变得非常复杂。在2D情况下,可以考虑两种情况,点和边的相交或者是边和边的相交。
这个处理过程 ...