Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (683)
Games in Android Showcase (196)
games submitted by our members
Games in WIP (750)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Where Should I Poll For Input?  (Read 792 times)
0 Members and 1 Guest are viewing this topic.
Offline Time_Waave

Junior Newbie

« Posted 2011-12-07 01:42:15 »

Hi, this is my first time posting and I am relatively inexperienced with programming computer games.  I have been learning in part from cokeandcode's Space Invaders tutorials.  I have lesson 104 downloaded and I am attempting to build something from scratch using it as a guideline.  This tutorial and my program use LWJGL.

My question is:  What is the best way to implement polling?  Where should I put it?
The parts of my code which relate to my question are as follows:

  • GameWindow -- describes the game window; tells Game when to act using a Callback interface; the game loop runs here.

  • Game (implements Callback) -- the main hook; tells stuff what to do.
  • PlayerEntity (extends Entity) -- an entity I want to move when keys are pressed.

In the original source, cokeandcode implements the key polling in a very simple way:

Inside Game:
GameWindow window = getGameWindow();

boolean leftPressed = window.isKeyPressed(KeyEvent.VK_LEFT);
boolean rightPressed = window.isKeyPressed(KeyEvent.VK_RIGHT);
boolean firePressed = window.isKeyPressed(KeyEvent.VK_SPACE);

Inside LWJGLGameWindow (implements GameWindow):
public boolean isKeyPressed(int keyCode) {
      switch(keyCode) {
      case KeyEvent.VK_SPACE:
         keyCode = Keyboard.KEY_SPACE;
      case KeyEvent.VK_LEFT:
         keyCode = Keyboard.KEY_LEFT;
      case KeyEvent.VK_RIGHT:
         keyCode = Keyboard.KEY_RIGHT;
      return org.lwjgl.input.Keyboard.isKeyDown(keyCode);

I know about, and I would like to use that.  Should I put it in GameWindow or in Game?  Or should I forgo LWJGL input and create a key listener?
Offline kappa
« League of Dukes »

JGO Kernel

Medals: 107
Projects: 15


« Reply #1 - Posted 2011-12-07 09:58:33 »

I'd recommend you have a read of the LWJGL Basics Input Tutorial, it should give you a good idea on how to use input (Just read all 5 parts of the LWJGL Basics Tutorials for an overview of the LWJGL API).
Offline Time_Waave

Junior Newbie

« Reply #2 - Posted 2011-12-07 22:28:26 »

I read those, was just wondering where the best place in the code to implement the code.  I am guessing that it's not too important, so I came up with something I like.  Please tell me if there are any major problems with this:

  • Each time through game loop, poll for keys.
  • For every key event, add or remove the key's keycode from an ArrayList<Integer> (if the keycode is in the list, it implies that it is pressed)
  • If I want to check for a key, use function isKeyPressed(keyCode), which use ArrayList.contains() to see if the key is held down
Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

orrenravid (154 views)
2016-07-16 03:57:23

theagentd (222 views)
2016-07-11 14:28:54

Hydroque (305 views)
2016-07-06 05:56:57

Hydroque (455 views)
2016-07-03 08:52:54

GrandCastle (341 views)
2016-07-01 09:13:47

GrandCastle (333 views)
2016-07-01 09:09:45

CopyableCougar4 (387 views)
2016-06-25 16:56:52

Hydroque (370 views)
2016-06-22 02:17:53

SwampChicken (338 views)
2016-06-20 13:22:57

SwampChicken (289 views)
2016-06-20 13:22:49
Making a Dynamic Plugin System
by Hydroque
2016-06-25 00:13:25

Java Data structures
by BinaryMonkL
2016-06-13 21:22:09

Java Data structures
by BinaryMonkL
2016-06-13 21:20:42

FPS Camera Tutorial
by Hydroque
2016-05-22 05:40:58

Website offering 3D Models specifically for games for free
by vusman
2016-05-18 17:23:09

Website offering 3D Models specifically for games for free
by vusman
2016-05-09 08:50:56

Website offering 3D Models specifically for games for free
by vusman
2016-05-06 11:10:21

Website offering 3D Models specifically for games for free
by vusman
2016-04-29 12:56:17 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!