Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (117)
games submitted by our members
Games in WIP (563)
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 920 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 »

Hello.

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)
ya=ya-8;
ballDir='u';

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

if (ya<178)
ya=ya+8;
ballDir='d';

repaint();
}//End IF


}//END METHOD

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

}//END METHOD

public void keyReleased(KeyEvent e){
int codeNum=e.getKeyCode();
}//END METHOD
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.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
public class WhatSoEver implements KeyListener
{
static int [] controls = new int[256];
[...]
if(controls[KeyEvent.VK_LEFT]==1)
//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  
 
 
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.

radar3301 (12 views)
2014-09-21 23:33:17

BurntPizza (30 views)
2014-09-21 02:42:18

BurntPizza (22 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (28 views)
2014-09-20 20:14:06

BurntPizza (33 views)
2014-09-19 03:14:18

Dwinin (48 views)
2014-09-12 09:08:26

Norakomi (74 views)
2014-09-10 13:57:51

TehJavaDev (103 views)
2014-09-10 06:39:09

Tekkerue (50 views)
2014-09-09 02:24:56
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!