2013-09-24 5 views
1

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

ответ

0

Здесь вы должны сделать одну переменную, которая говорит вам, что это максимальное расстояние пользователь может растягиваться. Помимо этого, если он растянется, на носу не будет никакого эффекта. Предположим, что расстояние как 30 пикселей.

Теперь вы можете реализовать свои функции, используя метод cctouchbegun и метод cctouchmoved. В методе cctouch вам нужно установить одну переменную ccpoint, в которой будет сохранено первое местоположение пользователя , касающееся. Предположим, что как firstLocation. Одновременно вы изменяете спрайт лука на изображение №2.

Теперь вам нужно работать в функции ccmoved. В результате, когда пользователь переместил его пальцы, вы получите текущую позицию, где пользователь коснулся прямо сейчас. Таким образом, вы должны получить расстояние и делить его на (30/10), то есть 3. Предположим, что (ваше расстояние/3) = 1, тогда вам не нужно менять изображение лука. Теперь, если он равен 2, вам нужно изменить лук с изображением (2 + 1 =) 3. Итак, вы можете реализовать функциональность лука. Здесь мы сделали (30/10), потому что вы установили максимальное расстояние, которое пользователь может растянуть, равно 30, и у вас есть 10 разных изображений лука со стрелкой.

Надеюсь, вы получите это. Если вы найдете какие-либо трудности при реализации этого, вы можете как я.

+0

спасибо за помощь, но как я могу изменить изображение с листа спрайта, можно ли дать мне пример кода. –

+0

Можете ли вы рассказать мне, как вы положили первое изображение? – Renaissance

+0

Я отредактировал вопрос и поместил код отображения первого изображения из листа спрайта –

0

Я думаю, что вам нужна анимация стрелок, используя этот заданный спрайт-лист, и вам может понравиться, когда вы проведите пальцем назад с середины своего лунного оружия, тогда вы хотите запустить стрелу. Правильно ?! вы можете использовать этот спрайт-лист, я думаю, что вам нужно просто вычислить или принять какое-то расстояние. и, пока я показываю ваш этот спрайт-лист, у вас есть около 10 изображений для запуска действия стрелки. так что вам нужно просто поместить все эти изображения на какое-то равное расстояние в соответствии с вашим местоположением касания ... если у вас есть расстояние в 30 пикселей, вы можете поместить все свои изображения в соответствии с вашим прикосновением в позиции 3px. означает, что вы начнете с начального изображения с 0px &, а затем поместите все остальные изображения в 0 -3 -6 -9 & и так далее. так что вы можете это достичь. Надеюсь, моя эта попытка поможет вам ... спросите меня, не получите ли я своего ответа в любой момент.

Смежные вопросы