Вы наверное не заметили, но выше я именно эту команду и упоминал.Фант wrote:Есть команда которая вычисляет угол спрайта. Можно использовать ее для выпполнения сложных поворотов
GET SPRITE N$ ANGLE X
Нажатие на спрайт - что ему не нравится
Re: Нажатие на спрайт - что ему не нравится
Re: Нажатие на спрайт - что ему не нравится
Естественно. Это практически первые строки, что я написал в программеФант wrote:надеюсь с этим Вы разобрались?
OPTION ANGLE DEGREES
OPTION ANGLE RADIANS
заставляет все тригонометрические функции считать свои аргументы в градусах/радианах. Остальные функции и команды BASIC, которые используют углы в качестве параметров, также затрагиваются этими командами. По умолчанию считается в радианах.
Для расчета в градусах в начале кода надо задать OPTION ANGLE DEGREES
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Нажатие на спрайт - что ему не нравится
ну тогда проблем быть не должно!
Re: Нажатие на спрайт - что ему не нравится
Ну короче вот что-то такое у меня получилось. Я не очень доволен, какой-то индусский код вышел. Хотя для второго дня программинга (а я после того, как заставил круг двигаться по экрану, к бейсику не подходил) думаю неплохо.
Code: Select all
GRAPHICS
OPTION ANGLE DEGREES
maxx=SCREEN_WIDTH()
maxy=SCREEN_HEIGHT()
my_tank1$ = "my_tank1" 'Name of the tank
my_tank1_speed = 0.5 'Speed of the tank
my_tank1_turn = 0 'Tank angle
key_top$ = "key_top" 'Key top
key_top_pressed$ = "key_top_presses" 'Key top pressed
key_down$ = "key_down" 'Key down
key_down_pressed$ = "key_down_pressed" 'Key down pressed
key_left$ = "key_left" 'Key left
key_left_pressed$ = "key_left_pressed" 'Key left pressed
key_right$ = "key_right" 'Key right
key_right_pressed$ = "key_right_pressed" 'Key right pressed
SPRITE key_top$ LOAD "data/arrow_t.png"
SPRITE key_top$ AT 120,maxy -250
SPRITE key_top$ ALPHA 0.7
SPRITE key_top$ SHOW
SPRITE key_top_pressed$ LOAD "data/arrow_tp.png"
SPRITE key_top_pressed$ AT 120,maxy -250
SPRITE key_top$ COPY key_down$
SPRITE key_down$ AT 120,maxy -120 FLIP 2
SPRITE key_down$ ALPHA 0.7
SPRITE key_down$ SHOW
SPRITE key_top_pressed$ COPY key_down_pressed$
SPRITE key_down_pressed$ AT 120,maxy -120 FLIP 2
SPRITE key_top$ COPY key_left$
SPRITE key_left$ AT 30, maxy - 185 ANGLE -90
SPRITE key_left$ ALPHA 0.7
SPRITE key_left$ SHOW
SPRITE key_top_pressed$ COPY key_left_pressed$
SPRITE key_left_pressed$ AT 30, maxy - 185 ANGLE -90
SPRITE key_top$ COPY key_right$
SPRITE key_right$ AT 210, maxy - 185 ANGLE 90
SPRITE key_right$ ALPHA 0.7
SPRITE key_right$ SHOW
SPRITE key_top_pressed$ COPY key_right_pressed$
SPRITE key_right_pressed$ AT 210, maxy - 185 ANGLE 90
SPRITE my_tank1$ LOAD "data/my_tank1.png"
SPRITE my_tank1$ AT maxx/2,maxy/2
SPRITE my_tank1$ SHOW
GET SPRITE my_tank1$ SIZE tank_width, tank_height
loop:
'Current tank coordinates
GET SPRITE my_tank1$ POS x_tank1, y_tank1
'Pressing the control buttons
GET TOUCH 0 AS x,y
'Tank movement top
IF SPRITE_HIT (key_top$, x,y) = 1 THEN
SPRITE key_top_pressed$ SHOW
IF y_tank1 - my_tank1_speed > 0 THEN SPRITE my_tank1$ AT x_tank1, y_tank1 - my_tank1_speed ANGLE 0
ELSE
SPRITE key_top_pressed$ HIDE
SPRITE key_top$ SHOW
ENDIF
'Tank movement down
IF SPRITE_HIT (key_down$, x,y) = 1 THEN
SPRITE key_down_pressed$ SHOW
IF y_tank1 + tank_height + my_tank1_speed < maxy THEN SPRITE my_tank1$ AT x_tank1, y_tank1 + my_tank1_speed ANGLE 180
ELSE
SPRITE key_down_pressed$ HIDE
SPRITE key_down$ SHOW
ENDIF
'Tank movement left
IF SPRITE_HIT (key_left$, x,y) = 1 THEN
SPRITE key_left_pressed$ SHOW
IF x_tank1 - my_tank1_speed > 0 THEN SPRITE my_tank1$ AT x_tank1 - my_tank1_speed, y_tank1 ANGLE -90
ELSE
SPRITE key_left_pressed$ HIDE
SPRITE key_left$ SHOW
ENDIF
'Tank movement right
IF SPRITE_HIT (key_right$, x,y) = 1 THEN
SPRITE key_right_pressed$ SHOW
IF x_tank1 + tank_width + my_tank1_speed < maxx THEN SPRITE my_tank1$ AT x_tank1 + my_tank1_speed, y_tank1 ANGLE 90
ELSE
SPRITE key_right_pressed$ HIDE
SPRITE key_right$ SHOW
ENDIF
GOTO loop
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Нажатие на спрайт - что ему не нравится
А где изображения? без них код выдает ошибку
Re: Нажатие на спрайт - что ему не нравится
Да рано еще. Но там все работает, вы уж мне поверьте Из того, что написано, конечно. Когда будет что показать - закину с картинками. Вот у меня сразу вопросец. Дальше планирую рисовать лабиринт из различного вида блоков. Ткните носом, как это лучше реализовать. Помню когда на спектруме программил , там я делал так.Фант wrote:А где изображения? без них код выдает ошибку
DATA 1,1,1,1,1,1,1
DATA 1,0,2,2,0,1,0
DATA 1,0,0,0,0,1,0
DATA 1,0,0,0,0,1,0
DATA 1,1,1,1,1,1,1
Где к примеру 0 - это пустота. 1- это кирпич, 2- железный блок итд. Потом все это читалось с помощью команды READ и в соответствии с цифрами выводились нужные блоки. Тут такое можно реализовать и как ?
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Нажатие на спрайт - что ему не нравится
По лабиринтам главный спец-это Верховный
К сожалению до лабиринта у меня не дошли руки...
DATA и READ в sB конечно же присутствует-принцип тот же.
К сожалению до лабиринта у меня не дошли руки...
DATA и READ в sB конечно же присутствует-принцип тот же.
Re: Нажатие на спрайт - что ему не нравится
В мануале не могу найти. Это в каком разделе ?
ПыСы лабиринт не рандомный, поэтому помощь Верховного может и не понадобиться пока
ПыСы лабиринт не рандомный, поэтому помощь Верховного может и не понадобиться пока
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Нажатие на спрайт - что ему не нравится
РАЗНОЕDionis wrote:В мануале не могу найти. Это в каком разделе ?
ПыСы лабиринт не рандомный, поэтому помощь Верховного может и не понадобиться пока
Re: Нажатие на спрайт - что ему не нравится
Большое спасибо.