Развитие игровой вспышки
Текущее время: Вс ноя 19, 2017 10:47 am

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 140 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.
Автор Сообщение
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Вт июл 11, 2017 7:19 pm 
Не в сети

Зарегистрирован: Пт май 03, 2013 11:38 am
Сообщений: 174
starready писал(а):
В чем проблема?

Код:

back.addEventListener(TouchEvent.TOUCH_BEGIN, backstartf);
function backstartf(e: TouchEvent): void {
        back.y = e.stageY;
        back.addEventListener(TouchEvent.TOUCH_END, backendf);
        back.addEventListener(TouchEvent.TOUCH_MOVE, backmovef);
}
function backendf(e: TouchEvent): void {
       back.removeEventListener(TouchEvent.TOUCH_END, backendf);
       back.removeEventListener(TouchEvent.TOUCH_MOVE, backmovef);
}
function backmovef(e: TouchEvent): void {
   back.y = e.stageY;
}


Не проверял но может быть так заработает .


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Вт июл 11, 2017 7:27 pm 
Не в сети

Зарегистрирован: Вт окт 12, 2010 1:24 am
Сообщений: 1164
Откуда: Saint-Petersburg
Swer писал(а):
starready писал(а):
В чем проблема?

Код:

back.addEventListener(TouchEvent.TOUCH_BEGIN, backstartf);
function backstartf(e: TouchEvent): void {
        back.y = e.stageY;
        back.addEventListener(TouchEvent.TOUCH_END, backendf);
        back.addEventListener(TouchEvent.TOUCH_MOVE, backmovef);
}
function backendf(e: TouchEvent): void {
       back.removeEventListener(TouchEvent.TOUCH_END, backendf);
       back.removeEventListener(TouchEvent.TOUCH_MOVE, backmovef);
}
function backmovef(e: TouchEvent): void {
   back.y = e.stageY;
}


Не проверял но может быть так заработает .


Твой код почти заработал. Вот короче совместил твое с моим, и все заработало, действительно надо было слушатели удалить.

Код:
back.addEventListener(TouchEvent.TOUCH_BEGIN, backstartf);
function backstartf(e: TouchEvent): void {
      //  back.y = e.stageY;
   start_y = (e.stageY)
   startbacky=back.y
        back.addEventListener(TouchEvent.TOUCH_END, backendf);
        back.addEventListener(TouchEvent.TOUCH_MOVE, backmovef);
}
function backendf(e: TouchEvent): void {
       back.removeEventListener(TouchEvent.TOUCH_END, backendf);
       back.removeEventListener(TouchEvent.TOUCH_MOVE, backmovef);
}
function backmovef(e: TouchEvent): void {
  changery = (e.stageY)-start_y;
   back.y =startbacky + changery
   
}


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Вт июл 11, 2017 7:30 pm 
Не в сети

Зарегистрирован: Вт окт 12, 2010 1:24 am
Сообщений: 1164
Откуда: Saint-Petersburg
Еще вопрос, а как узнать висит ли какой-то слушатель на чем-то?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Вт июл 11, 2017 7:51 pm 
Не в сети

Зарегистрирован: Пт май 03, 2013 11:38 am
Сообщений: 174
Код:
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouse_down );
function mouse_down (e: MouseEvent): void {
        trace( stage.willTrigger( MouseEvent.MOUSE_DOWN ) );             // true
        trace( stage.willTrigger( MouseEvent.MOUSE_UP  ) );                 // false
        trace( stage.hasEventListener( MouseEvent.MOUSE_DOWN  ) );  // true
        trace( stage.hasEventListener( MouseEvent.MOUSE_UP  ) );        // false
}

Я знаю только эти два способа, но может есть и другие.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Вт июл 11, 2017 7:54 pm 
Не в сети

Зарегистрирован: Вт окт 12, 2010 1:24 am
Сообщений: 1164
Откуда: Saint-Petersburg
То что надо , сенкс.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Вт июл 11, 2017 10:01 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4844
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
starready писал(а):
Еще вопрос, а как узнать висит ли какой-то слушатель на чем-то?

hasEventListener используй. А вообще крайне странно, если ты не знаешь, что висит там что-то или нет :)
Можешь убивать слушатель даже если его нет, ошибки не будет


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Вт июл 11, 2017 10:14 pm 
Не в сети

Зарегистрирован: Вт окт 12, 2010 1:24 am
Сообщений: 1164
Откуда: Saint-Petersburg
Это просто к другому, на будущее... Спасиб


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Ср июл 12, 2017 2:12 am 
Не в сети

Зарегистрирован: Вт окт 12, 2010 1:24 am
Сообщений: 1164
Откуда: Saint-Petersburg
Столкнулся с проблемой.
У меня персонаж бегает влево вправо. На экране 2 тач кнопки для бега лево вправо. на них слушатели. И Слушатели на комп клавиатуре - лево право. Кнопка Лево на клавиатуре и кнопка тача лево ссылаются на одну и ту же функцию которая запускает анимацию перса, так же и для кнопок вправо.

Так вот когда управляю тачем все нормально
Код:
but.but_left.addEventListener(TouchEvent.TOUCH_BEGIN, but_go_leftf);
function but_go_leftf(e: TouchEvent): void {
   go_left_root()
}


А вот когда жму на клаве начинается проблема
Код:
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
function reportKeyDown(event:KeyboardEvent):void {
if(event.keyCode==37){
      
      go_left_root()
}
}


Код:
function go_left_root(){
   trace("left");
   if (candoany == 1) {
      goingl = -1;
      heroanimgoingl();
   }
}


Проблема заключается в том что зажав left на клаве, трейсы - (первый кадр -"left",задержка 3 секунды, и начинается трейс "left" каждый фрейм.
Я проверил и это срабатывает так же как, если бы я печатал текст на клавиатуре (зажав одну букву-кнопку).
То есть зажав лево, через 3 секунды начинает какбы срабатывать отпускание кнопки и сново нажатие в бесконечности.
При нажатии на тач кнопку - все работает как надо - единожды.
Что я делаю не так?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Ср июл 12, 2017 10:52 am 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4844
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
Все правильно, кроме 3х секунд. Так работает типичная клавиатура. А ещё на 4 из 5 клав ты не нажмёшь одновременно более 4х кнопок :lol:

Вешаешь два слушателя на down и up
Создаёшь словарь или переменную, смотря сколько кнопок просчитывает твоя игра.
Задаешь им false при инициализации
Дальше - просто. Вжал - написал true, отпустил - false
А состояния true/false слушаешь черешь Enter Frame

var isLeftDown : Boolean = false;
var isRightDown : Boolean = false;

function reportKeyDown(event:KeyboardEvent):void {
if(event.keyCode==37){
isLeftDown = true;
}
if (event.keyCode == 39){
isRightDown = true;
}
}

function reportKeyUp(event:KeyboardEvent):void {
if(event.keyCode==37){
isLeftDown = false;
}
if (event.keyCode == 39){
isRightDown = false;
}
}

function enterframe(event:Event){
if (isLeftDown){
go_left_root();
} else if (isRightDown){
go_right_root();
}
}


Как-то так.со словарем проще - меньше кода.
Я просто с телефона пишу :)


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Анимации и другое
СообщениеДобавлено: Ср июл 12, 2017 4:24 pm 
Не в сети

Зарегистрирован: Вт окт 12, 2010 1:24 am
Сообщений: 1164
Откуда: Saint-Petersburg
ага, понятно теперь, спасибо


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 140 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB