根据触摸拖动更改图像

时间:2013-09-24 11:14:14

标签: cocos2d-iphone

Spritesheet 这个是我的精灵表我想根据用户在屏幕上移动他的手指来改变图像 也就是说,当他触摸最近显示的弓形附近的手指时,必须显示来自精灵表的no2图像,因为他继续拖动他的手指根据图像必须显示在屏幕上 任何人都可以指导我这个场景,因为我完全不知道从哪里开始 提前谢谢你 这就是我如何从精灵表中显示第一张图片

danceSheet = [CCSpriteBatchNode batchNodeWithFile:@"bowspritesheet.png"];
        [self addChild:danceSheet z:1];

        danceSprite = [CCSprite spriteWithTexture:danceSheet.texture rect:CGRectMake(0, 0, 90, 140)];
        danceSprite.rotation=-90;
        danceSprite.position=ccp(screenSize.width/1.2, screenSize.height/6);
        [danceSheet addChild:danceSprite z:0];

2 个答案:

答案 0 :(得分:0)

在这里,您必须创建一个变量,告诉您用户可以拉伸的最大距离。除此之外,如果他伸展,对弓也没有影响。假设距离 30像素

现在,您可以使用cctouchbegun方法和cctouchmoved方法实现您的功能。在cctouch方法中,您必须设置一个ccpoint变量,该变量将存储第一个触及用户的位置。假设为 firstLocation 。同时,你将弓的精灵改为2号图像。

现在,您必须使用ccmoved函数。因为当用户移动他的fingure时,您将获得用户现在触摸的当前位置。所以你必须得到距离并将其除以(30/10)即为3.假设(你的距离/ 3)= 1 那么你不需要改变弓的形象。现在,如果它等于2那么你必须改变没有。(2 + 1 =)3图像的弓。所以你可以通过这种方式实现弓形功能。这里我们做了(30/10),因为你设置了最大距离,用户可以拉伸等于30,你有10个不同的弓形箭头图像。 < / p>

希望,你明白了。如果你发现任何困难,你可以像我一样。

答案 1 :(得分:0)

我认为你想要使用这个给定的精灵表进行一些箭头动画,你可能想要从你的弓形武器中间向后滑动然后你想要发射箭头。对 ?!你可以使用这个精灵表,我想你要做的只是计算或假设一些距离。当我显示你的精灵表时,你有大约10张图像用于启动箭头动作。所以你需要做的就是根据你的触摸位置将所有这些图像放在相同的距离......即如果你有30px的距离,那么你可以根据你的触摸将所有图像放在3px的位置。意味着你将从0px&amp;的初始图像开始然后把所有其他图像放在0 -3 -6 -9&amp;所以..所以这样你就可以实现这一点。我希望我的这个尝试帮助你..问我,如果你在任何时候都没有得到我的答案。