Cocos2d iphone 根据触摸更改图像

Cocos2d iphone 根据触摸更改图像,cocos2d-iphone,Cocos2d Iphone,这是我的精灵表,我想根据用户在屏幕上移动手指来更改图像 i、 e,当他触碰这个弓附近的手指时,首先显示的是精灵表中的no2图像,当他继续拖动他的手指时,必须显示屏幕上必须显示的图像 有谁能给我介绍一下这个场景,因为我完全不知道从哪里开始。 提前感谢 这是我如何显示从精灵表的第一个图像 danceSheet = [CCSpriteBatchNode batchNodeWithFile:@"bowspritesheet.png"]; [self addChild:danceSheet

这是我的精灵表,我想根据用户在屏幕上移动手指来更改图像 i、 e,当他触碰这个弓附近的手指时,首先显示的是精灵表中的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];

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

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

现在,您必须在ccmoved函数中工作。在这种情况下,当用户移动其fingure时,您将获得用户现在接触的当前位置。所以你必须得到距离,然后除以(30/10),也就是3。假设(您的距离/3)=1,则无需更改弓的图像。现在,如果它等于2,那么你必须改变船头的编号(2+1=)3图像。因此,通过这种方式,您可以实现弓的功能。这里我们做了(30/10),因为您已将用户可以拉伸的最大距离设置为30,并且您有10个不同的带箭头的弓图像


希望,你能理解。如果你在实现这一点时发现任何困难,你可以和我一样。

我想你需要一些使用给定精灵表的箭头动画,你可能需要从弓武器的中间向后滑动,然后你想要发射你的箭头。正确的?!你可以使用这个精灵表,我想你要做的只是计算或假设一些距离。当我给你们看这个精灵表的时候,你们有大约10张启动箭头动作的图片。所以你要做的就是根据你的触摸位置把所有的图像放在一个相等的距离上。。。i、 e如果您有30像素的距离,那么您可以根据您的触摸将所有图像放置在3像素的位置。意味着您将从0px的初始图像开始,然后将所有其他图像放置在0-3-6-9,依此类推。。这样你就可以做到这一点。我希望我的这次尝试能帮助你。。问我你是否在任何时候都没有得到我的答案

谢谢你的帮助,但是我怎样才能更改sprite sheet中的图像,你能给我一些示例代码吗..你能告诉我你是如何放置第一个图像的吗?我已经编辑了问题,并放置了显示sprite sheet中第一个图像的代码你使用了spritesheet。因此,您可以使用there名称直接获取另一个精灵的纹理。您可以使用danceSprite=[CCSprite sprite WithPriteFrameName:“NameofSprite”]