我正在尝试使用cocos2d引擎为iphone构建游戏.我想知道如何区分用户是使用iphone 4还是iphone 3,因为我想加载iphone4的高分辨率图形和iphone 3的低分辨率.我知道我是否使用@ 2x.png如果我正在使用iphone 4,则图像文件名UIImage的末尾会自动加载高分辨率图像,但对于游戏,我使用cocos2d引擎的CCSprite类来加载图形.
我真的很感激回复.
此致,Ankur
这是xD的问题
给定iphone中cocos2d中的CCSprite实例,我可以使用什么方法来获取图像的宽度和高度?
如何在eclipse的cocos2d-x场景中为" 是否添加精灵 "编写TDD .这是我的代码
CCSprite *sprite =null;
//adding sprite code
sprite = new CCSprite();
sprite->initWithSpriteFrameName(“abc.png");
this->addChild(sprite);
Run Code Online (Sandbox Code Playgroud)
任何博客或正确方向的帮助将不胜感激.谢谢
我遇到的问题是,当我改变锚点时,sprite会相对于当前锚点自动旋转.而且我不希望这种情况发生.
我遵循的步骤
有没有办法将精灵的旋转重置为0,而不实际旋转纹理(即,保持纹理的当前形式 - 实际纹理旋转到90度)和改变锚点或位置与步骤4,所以我可以从第5点继续.
我有一个继承自CCSprite的对象.我希望从这个对象里面改变图像.
如何在不在Cocos2d-X中创建新的CCSprite对象的情况下更改图像(精灵)?
谢谢,阿德里安.
考虑我的网站的这个条件:
我不支持IE8及以下版本,因此浏览器支持不是问题.
我也使用gzip来避免CSS中的数据重载,以防我在CSS文件中复制和粘贴数据URI图像.
我只有一个由LESS生成的CSS文件.
为了方便起见,我为每个图像数据URI使用LESS变量.
有了这些,我仍然不确定它是否是加载图像的最佳方法.使用此方法加载小图像可减少HTTP请求的数量,而且我们不必维护精灵图像.
你能想到这种方法有什么缺点吗?
我正在使用以下代码绘制线条,它的工作效果令人惊叹,
http://www.merowing.info/2012/04/drawing-smooth-lines-with-cocos2d-ios-inspired-by-paper/
现在我想......
1>检测线是否与自身相交.2)检测CCSprite是否在此闭合线内.
在搜索时,我遇到了LineIntersection的许多逻辑,但没有一个是准确的.我给它们中的一个检测交叉点,但是当没有交叉线时它也检测到它.
第一种方法
- (BOOL) lineIntersectOccured:(CGPoint)t1 pointEnd:(CGPoint)t2
{
BOOL result = NO;
int pointsCount = [arrlinePoints count];
CGPoint cp1;
CGPoint cp2;
for(int i = 0, j = 1; j < pointsCount; i++,j++)
{
[[arrlinePoints objectAtIndex:i] getValue:&cp1];
[[arrlinePoints objectAtIndex:j] getValue:&cp2];
// lines connected do not need to be included.
if((cp2.x == t1.x && cp2.y == t1.y) || (cp1.x == t2.x && cp1.y == t2.y))
{
continue;
}
CGPoint diffLA = CGPointMake(cp2.x - cp1.x,cp2.y - cp1.y);
CGPoint diffLB = …
Run Code Online (Sandbox Code Playgroud)早上好.
我在linux上,使用cocos2d-x Android
.
我创建了一个计算圆值的函数.
// Circle point updateCircle() // x = number of iteration · SamplingPeriod |-|-|-| // y = A · sine ( 2 · PI · number of iteration · SamplingPeriod / Period ) int iterations = this->getNumberOfIterations(); CCPoint centerPoint = this->getCenter(); float x = centerPoint.x + this->getAmplitude() * cos( 2 * M_PI * iterations * this->getSamplingPeriod() * this->getFrequency() ); float y = centerPoint.y + this->getAmplitude() * sin( 2 * M_PI …
当我向我的cocos2d应用程序添加CCSpriteFrameCache或CCSpriteBatchNode时,我不明白我做了什么.有人可以解释以下几点(如果你能解释几个会有所帮助;请根据你回答的问题在你的答案前写下相应的字母):
[所有问题都意味着实现最佳性能和最低内存使用率]
a)为每一层创建spritesheets是否至关重要?(例如:菜单 - 自己的spritesheet,GameLayer - 自己的spritesheet ......)
b)有人可以解释为什么我必须向批处理节点添加精灵,以及批处理节点通常是什么?
b1)那么,为什么我不能做以下事情:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"menusprites.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"menusprites.png"];
[self addChild:spriteSheet];
Run Code Online (Sandbox Code Playgroud)
然后通过调用将sprite添加到我的图层
CCSprite *mySprite = [CCSprite spriteWithSpriteFrameName:@""];
[self addChild:mySprite];
Run Code Online (Sandbox Code Playgroud)
没有将它们添加到批处理节点?因为根据我的理解,它的工作原理如下:
我将我的spritesheet与其上的所有精灵添加到屏幕上.我的应用程序然后进入plist并查找我想要显示的精灵的坐标,然后将其放在屏幕上.那我为什么要打电话呢
[spriteSheet addChild:mySprite];
Run Code Online (Sandbox Code Playgroud)
?
c)当我不再需要它时,如何摆脱spritesheet用于记忆目的?
我开始学习cocos2d的,我想知道为什么我们实际使用convertToGL从CCDirector,[[CCDirector sharedDirector] convertToGL: touchLoc];
当我们已经拥有了[touch view]
从[touch locationInView: [touch view]];
?
另外,我们首先"addChild"一个CCSprite,包含一个图像,然后我们设置它的主体,ccsprite成为这个主体的数据用户.不会更好地"添加孩子"身体吗?或者它是出于任何特定目的?
谢谢
ccsprite ×10
cocos2d-x ×3
android ×2
ios ×2
iphone ×2
css ×1
dimensions ×1
eclipse ×1
http ×1
ipad ×1
less ×1
line-drawing ×1
objective-c ×1
sprite ×1
tdd ×1