OVH Cloud OVH Cloud

J2ME - MIDlet - Pb de keyRepeatedabscent...

1 réponse
Avatar
Adrien Carré
Bonjour :)

A ceux qui pourront m'aider je ne vais pas apprendre que certain telephone
ne supporte pas keyRepeated.

Souhaitant fait un ping-pong (on commence simple :) ) je suis vite arrivé au
problème que les raquettes doivent bouger rapidement sans que l'utilisateur
ai a appuyer 20* sur la touche "haut" ou "bas".
J'ai decouvert keyRepeated et qu'il n'était pas dispo sur le Nokia 6800 que
je possède ni sur l'emulateur de base de toute facon.

En cherchant j'ai trouvé un moyen de contourner le problème, faire un objet
thread qui est eveillé quand la touche est appuyé et qui ne se "rendors" pas
tant que la key a pas été released.
La solution est allechante mais est incroyablement inefficace de par sa
lenteur! La raquette bouge plus rapidement quand je m'acharne sur le bouton
que quand je le laisse appuyé.

Puisque j'ai déjà vu tourner des jeux (dont 1 jeu de ping-pong) à vitesse
normal sur mon 6800 je suppose qu'il y a un autre moyen ou que je l'emploi
très mal.

Donc si des personnes ont une autre solution ou ont essayé avec succès cette
solution...

++

1 réponse

Avatar
Anthony Goubard
Bonjour,

Si ca rame, c'est peut-être que ton thread utilise trop de CPU.
Il faut certainement que tu fasses un wait(100) (100ms étant un example
essai aussi d'autres valeurs) avant de retester le keyRelease.

public void run() {
while(keyPressed) {
wait(100); // pense à catcher l'exception s'il y a
}
}

Anthony
Adrien Carré a écrit dans le message
<3fc28924$0$28454$...
Bonjour :)

A ceux qui pourront m'aider je ne vais pas apprendre que certain telephone
ne supporte pas keyRepeated.

Souhaitant fait un ping-pong (on commence simple :) ) je suis vite arrivé
au

problème que les raquettes doivent bouger rapidement sans que l'utilisateur
ai a appuyer 20* sur la touche "haut" ou "bas".
J'ai decouvert keyRepeated et qu'il n'était pas dispo sur le Nokia 6800 que
je possède ni sur l'emulateur de base de toute facon.

En cherchant j'ai trouvé un moyen de contourner le problème, faire un objet
thread qui est eveillé quand la touche est appuyé et qui ne se "rendors"
pas

tant que la key a pas été released.
La solution est allechante mais est incroyablement inefficace de par sa
lenteur! La raquette bouge plus rapidement quand je m'acharne sur le bouton
que quand je le laisse appuyé.

Puisque j'ai déjà vu tourner des jeux (dont 1 jeu de ping-pong) à vitesse
normal sur mon 6800 je suppose qu'il y a un autre moyen ou que je l'emploi
très mal.

Donc si des personnes ont une autre solution ou ont essayé avec succès
cette

solution...

++