Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (482)
Games in Android Showcase (110)
games submitted by our members
Games in WIP (550)
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 596 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:

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

Classes:
  • 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:
1  
2  
3  
4  
5  
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):
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
public boolean isKeyPressed(int keyCode) {
      switch(keyCode) {
      case KeyEvent.VK_SPACE:
         keyCode = Keyboard.KEY_SPACE;
         break;
      case KeyEvent.VK_LEFT:
         keyCode = Keyboard.KEY_LEFT;
         break;
      case KeyEvent.VK_RIGHT:
         keyCode = Keyboard.KEY_RIGHT;
         break;
      }
      return org.lwjgl.input.Keyboard.isKeyDown(keyCode);
   }


I know about Keyboard.next(), 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: 76
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.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

CopyableCougar4 (14 views)
2014-08-22 19:31:30

atombrot (28 views)
2014-08-19 09:29:53

Tekkerue (25 views)
2014-08-16 06:45:27

Tekkerue (23 views)
2014-08-16 06:22:17

Tekkerue (15 views)
2014-08-16 06:20:21

Tekkerue (22 views)
2014-08-16 06:12:11

Rayexar (61 views)
2014-08-11 02:49:23

BurntPizza (39 views)
2014-08-09 21:09:32

BurntPizza (31 views)
2014-08-08 02:01:56

Norakomi (37 views)
2014-08-06 19:49:38
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org 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‑gaming.org
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!