| 
				
				Однократное нажатие клавиши
				 | 
 | 
| Edison6 | Дата: Пятница, 18 Января 2013, 18:58 | Сообщение # 1 |  
 
TRUE Programmer 
Сейчас нет на сайте 
 
 | Как в libGDX сделать однократное нажатие клавиши в Slick2D там был метод а тут как?
  Берил сбрей усы
 |  
| 
 | 
 |    | 
| jackbv | Дата: Пятница, 18 Января 2013, 19:33 | Сообщение # 2 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | пишем в инициализации:   Код    Gdx.input.setInputProcessor(new Control());      
   Создаём класс Control, наследника InputProcessor:   Код  
   public class Control implements InputProcessor { 
         @Override         public boolean keyDown(int keycode) { 
             // Тут обрабатывается нажатие клавиши 
             return true;         } 
         @Override         public boolean keyUp(int keycode) { 
             // Тут обрабатывается поднятие клавиши 
             return true;         } 
         @Override         public boolean keyTyped(char character) {...} 
         @Override         public boolean touchDown(int screenX, int screenY, int pointer, int button) {...} 
         @Override         public boolean touchUp(int screenX, int screenY, int pointer, int button) {...} 
         @Override         public boolean touchDragged(int screenX, int screenY, int pointer) {...} 
         @Override         public boolean mouseMoved(int screenX, int screenY) {...} 
         @Override         public boolean scrolled(int amount) {...}   } 
      
   Вот другое решение:   Код  
   boolean isDown;    boolean executed; 
   public void render(float delta) { 
           if (Gdx.input.isKeyPressed(Input.Keys.[ЛЮБАЯ КЛАВИША])) {               isDown = true;           } else {               isDown = false;               executed = false;           } 
           if (isDown && !executed) {               // Обрабатываем нажатие клавиши 
               executed = true;           } 
   } 
      
   Вот и всё магия! 
   Советую всегда создавать класс Control(или называй как хочешь), там всё удобней.
  - Java   - PHP, JavaScript   - HTML/CSS   DeadlySquare   Run or Die   Super SQUARE
 
 Сообщение отредактировал jackbv - Пятница, 18 Января 2013, 19:46  |  
| 
 | 
 |    | 
| Edison6 | Дата: Пятница, 18 Января 2013, 20:18 | Сообщение # 3 |  
 
TRUE Programmer 
Сейчас нет на сайте 
 
 | Я не совсем понял как сделать однократное нажатие с помощью класса Control
  Берил сбрей усы
 |  
| 
 | 
 |    | 
| jackbv | Дата: Пятница, 18 Января 2013, 22:57 | Сообщение # 4 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | класс Control должен выполнять интерфейс InputProcessor. Он должен содержать все функции указанные в интерфейсе. За что отвечает каждая функция понятно из названия (touch - это нажатие экрана пальцем - для тачскрина или мышки - для Desktop). В прошлом сообщений есть пример рабочего класса, который я сам использую и пример регистрации класса Control как слушателя. Подробней расписать не могу, сказывается отсутствие педагогического образования. Если всё равно есть вопросы будь добр погуглить, надеюсь знание английского имеется. 
   Удачи!  
  - Java   - PHP, JavaScript   - HTML/CSS   DeadlySquare   Run or Die   Super SQUARE
 |  
| 
 | 
 |    | 
| Edison6 | Дата: Суббота, 19 Января 2013, 16:58 | Сообщение # 5 |  
 
TRUE Programmer 
Сейчас нет на сайте 
 
 | А редактор частиц кто нибудь знает как запустить из gdx-tools? Добавлено (19.01.2013, 16:58) --------------------------------------------- Пытался сделать единый класс для управления    Код package Utils;   import com.badlogic.gdx.Gdx;   import com.badlogic.gdx.Input;   import com.badlogic.gdx.InputProcessor;   import com.total_gdx.MyGame; 
   public class Controls implements InputProcessor   {    public boolean key[] = new boolean[255];    public boolean keyPressed(int keycode)    {     return Gdx.input.isKeyPressed(keycode);    }    public boolean keyHit(int keyCode)    {     return key[keyCode];    }    @Override    public boolean keyDown(int keycode)    {     key[keycode] = true;     return false;    } 
    @Override    public boolean keyUp(int keycode)     {     key[keycode] = false;     return false;    } 
    @Override    public boolean keyTyped(char character)    { 
     return false;    } 
    @Override    public boolean touchDown(int screenX, int screenY, int pointer, int button)    { 
     return false;    } 
    @Override    public boolean touchUp(int screenX, int screenY, int pointer, int button)    { 
     return false;    } 
    @Override    public boolean touchDragged(int screenX, int screenY, int pointer)     { 
     return false;    } 
    @Override    public boolean mouseMoved(int screenX, int screenY)    { 
     return false;    } 
    @Override    public boolean scrolled(int amount)    { 
     return false;    } 
   }        как то не удалось
  Берил сбрей усы
 |  
| 
 | 
 |    | 
| jackbv | Дата: Суббота, 19 Января 2013, 19:36 | Сообщение # 6 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | Ты зарегистрировал слушателя? 
   Этот код должен работать:   Код  
   public class Control implements InputProcessor {  
          public boolean key[] = new boolean[255]; 
          @Override           public boolean keyDown(int keycode) {  
              key[keycode] = true;  
              return true;           }  
          @Override           public boolean keyUp(int keycode) {  
              key[keycode] = false;  
              return true;           }  
          @Override           public boolean keyTyped(char character) {...}  
          @Override           public boolean touchDown(int screenX, int screenY, int pointer, int button) {...}  
          @Override           public boolean touchUp(int screenX, int screenY, int pointer, int button) {...}  
          @Override           public boolean touchDragged(int screenX, int screenY, int pointer) {...}  
          @Override           public boolean mouseMoved(int screenX, int screenY) {...}  
          @Override           public boolean scrolled(int amount) {...}    } 
     
  - Java   - PHP, JavaScript   - HTML/CSS   DeadlySquare   Run or Die   Super SQUARE
 |  
| 
 | 
 |    |