То есть по логике получаем координаты касания - GET TOUCH 0 AS x,y и далее проверяем попали ли они внутрь спрайта 1 (это кнопка вниз) - IF SPRITE_HIT (1, x,y) = 1 THEN (... тут обработчик после нажатия кнопки). Получаю ошибку "Ошибка вычисления функции SPRITE_HIT". Где ошибка ?SPRITE_HIT (n$, x,y)
возвращает 1 если точка с координатами [x], [y] попадает внутрь спрайта [n$]. Иначе возвращает 0.
Нажатие на спрайт - что ему не нравится
Нажатие на спрайт - что ему не нравится
Всем добрый день. Решил уже серьезно (в 100 раз ) засесть за программирование. Пытаюсь сделать самое простое. Есть объект в виде спрайта. Есть 4 кнопки (стрелки вверх, вниз, влево, вправо). Все это вывел на экран, все ок. Далее нужно сделать, чтобы при нажатии на кнопки объект двигался в соответствующую сторону. Пытаюсь обработать нажатие на спрайт одной из кнопок. В мануале написано
- Фант
- 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: Нажатие на спрайт - что ему не нравится
Привет! Номер спрайта берите в кавычки.
If sprite_hit("1",x,y)....
If sprite_hit("1",x,y)....
- Mr. Kibernetik
- Site Admin
- Posts: 4786
- Joined: Mon Nov 19, 2012 10:16 pm
- My devices: iPhone, iPad, MacBook
- Location: Russia
- Flag:
Re: Нажатие на спрайт - что ему не нравится
Вы пишете:
IF SPRITE_HIT (1, x,y)
а функция SPRITE_HIT() принимает имя спрайта в виде строки, а не числа. Функции не совершают автоматического конвертирования числа в строку в отличие от команд, где можно написать SPRITE 1 BEGIN и цифра 1 будет автоматически переконвертирована в строку "1".
У спрайта имя может быть любое, например SPRITE "up arrow" BEGIN.
IF SPRITE_HIT (1, x,y)
а функция SPRITE_HIT() принимает имя спрайта в виде строки, а не числа. Функции не совершают автоматического конвертирования числа в строку в отличие от команд, где можно написать SPRITE 1 BEGIN и цифра 1 будет автоматически переконвертирована в строку "1".
У спрайта имя может быть любое, например SPRITE "up arrow" BEGIN.
Re: Нажатие на спрайт - что ему не нравится
Ага, благодарю, сейчас попробую Мне вообще тяжело в этом плане после пхп. Я то == поставлю, то THEN забуду
Re: Нажатие на спрайт - что ему не нравится
Теперь с поворотами завис. Уже часа полтора сижу. Короче объект двигается туда сюда, тут все отлично. Но нужно, чтобы он поворачивался в соответствующую сторону. Я получаю его текущий угол - GET SPRITE "1" ANGLE current_angle. Но дальше мысль как-то не идет. По идее там, где происходит передвижение нужно дописать изменение угла - SPRITE n$ AT x,y SCALE s ANGLE a FLIP k, но как рассчитать на какую величину - тут я что-то теряюсь совсем.
- Фант
- 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: Нажатие на спрайт - что ему не нравится
поворот чего? Спрайта?
.....flip... это зеркальное отображение спрайта
.....flip... это зеркальное отображение спрайта
- Фант
- 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: Нажатие на спрайт - что ему не нравится
Если поворот только в 4 стороны, то здесь просто.
создавайте переменную для угла к примеру: sprite 1 at x,y angle ANG
при необходимомти повернуть спрайт добавляйте или уменьшайте 90 градусов: ANG+=90 или ANG-=90
создавайте переменную для угла к примеру: sprite 1 at x,y angle ANG
при необходимомти повернуть спрайт добавляйте или уменьшайте 90 градусов: ANG+=90 или ANG-=90
Re: Нажатие на спрайт - что ему не нравится
Тфу. Все, разобрался. Я думал, что ANgle поворачивает спрайт исходя из текущего угла. Т.е. если он повернут на 90 градусов, то поворачивает еще на 90 итого 180. Но оказалось, что поворот идет исходя из начального положения, то есть от нуля. Блин, а я долбался так долго Все работает.
- Фант
- 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: Нажатие на спрайт - что ему не нравится
Есть команда которая вычисляет угол спрайта. Можно использовать ее для выпполнения сложных поворотов
GET SPRITE N$ ANGLE X
GET SPRITE N$ ANGLE X
- Фант
- 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: Нажатие на спрайт - что ему не нравится
надеюсь с этим Вы разобрались?
OPTION ANGLE DEGREES
OPTION ANGLE RADIANS
заставляет все тригонометрические функции считать свои аргументы в градусах/радианах. Остальные функции и команды BASIC, которые используют углы в качестве параметров, также затрагиваются этими командами. По умолчанию считается в радианах.
Для расчета в градусах в начале кода надо задать OPTION ANGLE DEGREES
OPTION ANGLE DEGREES
OPTION ANGLE RADIANS
заставляет все тригонометрические функции считать свои аргументы в градусах/радианах. Остальные функции и команды BASIC, которые используют углы в качестве параметров, также затрагиваются этими командами. По умолчанию считается в радианах.
Для расчета в градусах в начале кода надо задать OPTION ANGLE DEGREES