Code: Select all
GET TOUCH 0 AS x10,y10
IF x10>35.5 THEN
IF y10>68 THEN
IF x10<242.5 THEN
IF y10<208 THEN
IF SPRITE_HIT ("1ship10",x10,y10)=1 THEN
SPRITE "1ship10" AT x10,y10
ENDIF ! ENDIF ! ENDIF ! ENDIF ! ENDIF
Code: Select all
GET TOUCH 0 AS x10,y10
IF x10>35.5 THEN
IF y10>68 THEN
IF x10<242.5 THEN
IF y10<208 THEN
IF SPRITE_HIT ("1ship10",x10,y10)=1 THEN
SPRITE "1ship10" AT x10,y10
ENDIF ! ENDIF ! ENDIF ! ENDIF ! ENDIF
Ну это можно записать в таком виде:Tantrixx wrote:Уважаемые форумчане, подскажите или направьте, сам не пойму. Мне нужно, чтоб спрайт в ограниченном месте передвигался, но не просто передвигался, а с шагом равным 24.Пространство я нашёл, как ограничить, а вот шаг 24 никак не могу сделатьCode: Select all
GET TOUCH 0 AS x10,y10 IF x10>35.5 THEN IF y10>68 THEN IF x10<242.5 THEN IF y10<208 THEN IF SPRITE_HIT ("1ship10",x10,y10)=1 THEN SPRITE "1ship10" AT x10,y10 ENDIF ! ENDIF ! ENDIF ! ENDIF ! ENDIF
Code: Select all
GET TOUCH 0 AS x10,y10
IF x10>35.5 And y10>68 And x10<242.5 And y10<208 and SPRITE_HIT ("1ship10",x10,y10)=1 THEN
SPRITE "1ship10" AT x10,y10
ENDIF ! ENDIF ! ENDIF ! ENDIF ! ENDIF
Ты хочешь касанием пальца перемещать по клеткам спрайт?Tantrixx wrote:Спасибо за ответ
Ты прав, по клеткам и нужно перемещать. 10х10 клеток, это нужно прописывать каждую клетку? Если в её области появился спрайт, то х10 равен той клетке и y10 равен той клетке? И так 100 раз? Это меня и смутило. По этому искал, как передвигать с шагом 23, то есть по клетке.
Я не знаю как работает touch_x (0), может с ним получилось бы сделать такое движение?
ДаMARK99 wrote:Ты хочешь касанием пальца перемещать по клеткам спрайт?Tantrixx wrote:Спасибо за ответ
Ты прав, по клеткам и нужно перемещать. 10х10 клеток, это нужно прописывать каждую клетку? Если в её области появился спрайт, то х10 равен той клетке и y10 равен той клетке? И так 100 раз? Это меня и смутило. По этому искал, как передвигать с шагом 23, то есть по клетке.
Я не знаю как работает touch_x (0), может с ним получилось бы сделать такое движение?
Ну тогда пусть твоё поле находится в самом начале, в точке 0,0 и будет s на s по площади , и поле будет 10 на 10 клеток, а всего клеток 10*10=100, и доена клетки тогда буде s/10Tantrixx wrote:ДаMARK99 wrote:Ты хочешь касанием пальца перемещать по клеткам спрайт?Tantrixx wrote:Спасибо за ответ
Ты прав, по клеткам и нужно перемещать. 10х10 клеток, это нужно прописывать каждую клетку? Если в её области появился спрайт, то х10 равен той клетке и y10 равен той клетке? И так 100 раз? Это меня и смутило. По этому искал, как передвигать с шагом 23, то есть по клетке.
Я не знаю как работает touch_x (0), может с ним получилось бы сделать такое движение?
Code: Select all
Get Sprite "1ship10" pos xs,ys 'возвращает координаты спрайта
Xsetki=0'координаты первой ячейки
Ysetki=0
For s1=1 to 10
For s2=1 to 10
If xs>xsetki and xs<xsetki+s and ys>ysetki and ys<ysetki+s then 'сдесь идёт перебор координат ячеек в которой может находиться спрайт
Sprite "1ship10" at xsetki,ysetki 'перемещение спрайт в соответствующую ячейку
Goto 1 ' выход из цикла чтобы время не терять
Endif
Xsetki+=s/10
next s2
Xsetki=0
Ysetki+=s/10
next s1
1
Саму клетку рисовать не обязательно, это спрайт просто будет двигаться словно по клеткам.Tantrixx wrote:Тачпадом было бы на много проще сделать, но ни кнопку ни спрайт не где разместить, да и не очень будет выглядеть.
Можно и не по клеткам, а как всегда, но чтоб он становился в ближайшие клетки.
СпасибоMARK99 wrote:TOUCH_X (N) и TOUCH_Y (N) работают так же как и get touch n as x,y только во втором случае команда сразу возвращает, и касание по x, и по y, а в первом отдель x и отдельно y