Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (784)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (858)
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  
  Smooth Key Events  (Read 1632 times)
0 Members and 1 Guest are viewing this topic.
Offline Epo

Senior Newbie

Projects: 1

Green Tea and swords

« Posted 2005-01-18 20:27:34 »


I am haveing trouble with doing my controls right for my game. The problem is that it is more of a logical error and I can not get it to work smoothly. Like when i push and hold on the up arrow, it will go up then stop for like half a seconed then continue going up. I am using keyEvents and do it like most tutorials show on the web, but this seems to not work well for me. I want it to go up and keep going up when i hold down my key and not stop for like half a seconed then continue normaly. I am not sure what I am doing wrong. I looked on the web for tutorials, but most of them are just the old keyUP and keyDown ones.

public void keyPressed(KeyEvent e){
int codeNum= e.getKeyCode();

if (codeNum==e.VK_UP){

if (ya>0)

}else if (codeNum==e.VK_DOWN){

if (ya<178)

}//End IF


public void keyTyped(KeyEvent e){
int codeNum= e.getKeyCode();


public void keyReleased(KeyEvent e){
int codeNum=e.getKeyCode();
Offline oNyx

JGO Coder

Medals: 2

pixels! :x

« Reply #1 - Posted 2005-01-18 21:25:06 »

You're doing it wrong.

On key down... set the flag to true (or 1)... on key up... set the flag to false (or 0).

In your main loop you just react accordingly to the values of those flags.

public class WhatSoEver implements KeyListener
static int [] controls = new int[256];
//do something
public void keyPressed(KeyEvent ke)
      controls[ke.getKeyCode()&0xff] = 1;
public void keyReleased(KeyEvent ke)
      controls[ke.getKeyCode()&0xff] = 0;
public void keyTyped(KeyEvent ke){}

That's it.

弾幕 ☆ @mahonnaiseblog
Offline woogley
« Reply #2 - Posted 2005-01-18 23:20:29 »

in case why you're wondering why you have to do it this way.. it's because of the system's keyboard-repeat setting. You'll notice the same delay for any key you press in, say, a word processing program. If there was no delay, you might hold the space key for half a second and end up with 10 spaces Tongue

the KeyEvent events are fired as fast as the keyboard-repeat rate is set to. So the boolean flag might keep getting set to the same value several times, but like oNyx is saying, you can check the flag in your loop any time you want.
Pages: [1]
  ignore  |  Print  

hadezbladez (1619 views)
2018-11-16 13:46:03

hadezbladez (633 views)
2018-11-16 13:41:33

hadezbladez (1609 views)
2018-11-16 13:35:35

hadezbladez (327 views)
2018-11-16 13:32:03

EgonOlsen (2671 views)
2018-06-10 19:43:48

EgonOlsen (2936 views)
2018-06-10 19:43:44

EgonOlsen (1638 views)
2018-06-10 19:43:20

DesertCoockie (2345 views)
2018-05-13 18:23:11

nelsongames (2250 views)
2018-04-24 18:15:36

nelsongames (2945 views)
2018-04-24 18:14:32
Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45

Deployment and Packaging
by philfrei
2018-08-20 02:33:38

Deployment and Packaging
by philfrei
2018-08-20 02:29:55

Deployment and Packaging
by philfrei
2018-08-19 23:56:20 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!