1

精灵表 这是我的精灵表我想根据用户在屏幕上移动他的手指来更改图像,即当他触摸最初显示的这个弓附近的手指时,必须显示来自精灵表的2图像,因为他继续拖动他的手指图像必须显示在屏幕上,任何人都可以在这种情况下指导我,因为我完全不知道我必须从哪里开始。
在此先感谢
这就是我从精灵表中显示第一张图片的方式

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];
4

2 回答 2

0

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

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

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

希望,你明白了,如果你在实现这个过程中发现任何困难,你可以像我一样。

于 2013-09-24T12:06:09.563 回答
0

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

于 2013-09-24T12:11:39.777 回答