| Problème de code | |
|
|
Auteur | Message |
---|
sagix Utilisateur confirmé: Rang **
Messages : 498 Localisation : Essonne
| Sujet: Problème de code Ven 21 Avr 2006 - 19:45 | |
| Voilà j'ai écrit ce code, mais quand j'appuis sur left rien de se passe sans doute car le code pour right après qui le bloque - Code:
-
if keyboard_key=0 { D=point_direction(x,y,mouse_x,mouse_y) speed=0 }
if keyboard_check_direct(vk_up) { if keyboard_check_direct(vk_left) { direction=D+45 speed=4 } else { direction=D speed=4 } if keyboard_check_direct(vk_right) { direction=D-45 speed=4 } else { direction=D speed=4 } }
|
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: Problème de code Ven 21 Avr 2006 - 20:07 | |
| Je ne sais pas ce que tu veux faire avec ça mais en tous cas, il change de direction lorsque tu pressses et sur up et sur right ou et sur up et sur left, enfin d'après ce que je vois, je n'ai pas essayé. |
|
| |
sagix Utilisateur confirmé: Rang **
Messages : 498 Localisation : Essonne
| Sujet: Re: Problème de code Ven 21 Avr 2006 - 20:43 | |
| en fait ce n'est qu'une partie du code car il va dans les 4 directions celon l'emplacement de la souris et bloc la direction lorsqu'on se déplace, et j'aurais foulu qu'il se déplacer aussi sur les diagonales donc au final sur 8 direction. Voila la .gm6 si tu veux voir 01.gm6 - 0.01MB |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: Problème de code Ven 21 Avr 2006 - 20:50 | |
| |
|
| |
sagix Utilisateur confirmé: Rang **
Messages : 498 Localisation : Essonne
| Sujet: Re: Problème de code Ven 21 Avr 2006 - 22:10 | |
| Merci ca ma permis de voir ou ça ne marchait pas et aussi de simplifier mon code, en fait il ne fallait pas mettre le " direct " |
|
| |
gogo_swiffer Banni(e)
Messages : 3668 Localisation : America/Canada/Quebec/Mont-Laurier Projet Actuel : rien changer parce que tout est sous contrôle
| Sujet: Re: Problème de code Ven 21 Avr 2006 - 22:19 | |
| bha un truc facile (exemple)...:
image_angle = direction if keyboard_check(vk_up) = true { if keyboard_check(vk_left) = true { direction = 45 } else { direction = 90 } }
: O. |
|
| |
sagix Utilisateur confirmé: Rang **
Messages : 498 Localisation : Essonne
| Sujet: Re: Problème de code Ven 21 Avr 2006 - 22:48 | |
| Voila un petit problème qui en fait n'en est pas un, car j'ai écris un code pour que la vitesse varie en fonction de la souris mais ca me fait un code super long donc je me demandais s'il n'y avait pas moyen de faire plus court ^^ je vous mets le .gm6 si vous voulez voir ce que ça donne 01.gm6 - 0.01MB - Code:
-
image_angle=point_direction(x,y,mouse_x,mouse_y)
D=point_direction(x,y,mouse_x,mouse_y)
if D>45 && D<135 {P=0} if D>135 && D<225 {P=1} if D>225 && D<315 {P=2} if D>315 && D<360 or D<45 {P=3}
if keyboard_key=0 {speed=0}
if P=0 {
if (keyboard_check(vk_left)) {direction=180 speed=3}
if (keyboard_check(vk_right)) {direction=0 speed=3}
if (keyboard_check(vk_up)) {direction=90 speed=4}
if (keyboard_check(vk_down)) {direction=-90 speed=2}
if (keyboard_check(vk_up)&&keyboard_check(vk_left)) {direction=135 speed=4}
if (keyboard_check(vk_up)&&keyboard_check(vk_right)) {direction=45 speed=4}
if (keyboard_check(vk_down)&&keyboard_check(vk_left)) {direction=-135 speed=3}
if (keyboard_check(vk_down)&&keyboard_check(vk_right)) {direction=-45 speed=3}
}
if P=1 {
if (keyboard_check(vk_left)) {direction=180 speed=4}
if (keyboard_check(vk_right)) {direction=0 speed=2}
if (keyboard_check(vk_up)) {direction=90 speed=3}
if (keyboard_check(vk_down)) {direction=-90 speed=3}
if (keyboard_check(vk_up)&&keyboard_check(vk_left)) {direction=135 speed=4}
if (keyboard_check(vk_up)&&keyboard_check(vk_right)) {direction=45 speed=3}
if (keyboard_check(vk_down)&&keyboard_check(vk_left)) {direction=-135 speed=4}
if (keyboard_check(vk_down)&&keyboard_check(vk_right)) {direction=-45 speed=3}
}
if P=2 {
if (keyboard_check(vk_left)) {direction=180 speed=3}
if (keyboard_check(vk_right)) {direction=0 speed=3}
if (keyboard_check(vk_up)) {direction=90 speed=2}
if (keyboard_check(vk_down)) {direction=-90 speed=4}
if (keyboard_check(vk_up)&&keyboard_check(vk_left)) {direction=135 speed=3}
if (keyboard_check(vk_up)&&keyboard_check(vk_right)) {direction=45 speed=3}
if (keyboard_check(vk_down)&&keyboard_check(vk_left)) {direction=-135 speed=4}
if (keyboard_check(vk_down)&&keyboard_check(vk_right)) {direction=-45 speed=4}
}
if P=3 {
if (keyboard_check(vk_left)) {direction=180 speed=2}
if (keyboard_check(vk_right)) {direction=0 speed=4}
if (keyboard_check(vk_up)) {direction=90 speed=3}
if (keyboard_check(vk_down)) {direction=-90 speed=3}
if (keyboard_check(vk_up)&&keyboard_check(vk_left)) {direction=135 speed=3}
if (keyboard_check(vk_up)&&keyboard_check(vk_right)) {direction=45 speed=4}
if (keyboard_check(vk_down)&&keyboard_check(vk_left)) {direction=-135 speed=3}
if (keyboard_check(vk_down)&&keyboard_check(vk_right)) {direction=-45 speed=4}
} |
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Problème de code Sam 22 Avr 2006 - 0:05 | |
| - Code:
-
{ image_angle=point_direction(x,y,mouse_x,mouse_y); D=point_direction(x,y,mouse_x,mouse_y);
if D>45 && D<135 then { // vitesse pour les déplacements dans les directions speedy[0]=3; speedy[1]=3; speedy[2]=4; speedy[3]=2; // et dans les diagonales speedy[4]=4; speedy[5]=4; speedy[6]=3; speedy[7]=3; } if D>135 && D<225 then { // vitesse pour les déplacements dans les directions speedy[0]=4; speedy[1]=2; speedy[2]=3; speedy[3]=3; // et dans les diagonales speedy[4]=4; speedy[5]=3; speedy[6]=4; speedy[7]=3; } if D>225 && D<315 then { // vitesse pour les déplacements dans les directions speedy[0]=3; speedy[1]=3; speedy[2]=2; speedy[3]=4; // et dans les diagonales speedy[4]=3; speedy[5]=3; speedy[6]=4; speedy[7]=4; } if D>315 && D<360 or D<45 then { // vitesse pour les déplacements dans les directions speedy[0]=2; speedy[1]=4; speedy[2]=3; speedy[3]=3; // et dans les diagonales speedy[4]=3; speedy[5]=4; speedy[6]=3; speedy[7]=4; }
if keyboard_key=0 {speed=0}
// on se déplace ^^
if (keyboard_check(vk_left)) {direction=180 speed=speedy[0]}
if (keyboard_check(vk_right)) {direction=0 speed=speedy[1]}
if (keyboard_check(vk_up)) {direction=90 speed=speedy[2]}
if (keyboard_check(vk_down)) {direction=-90 speed=speedy[3]}
if (keyboard_check(vk_up)&&keyboard_check(vk_left)) {direction=135
speed=speedy[4]}
if (keyboard_check(vk_up)&&keyboard_check(vk_right)) {direction=45
speed=speedy[5]}
if (keyboard_check(vk_down)&&keyboard_check(vk_left)) {direction=-135
speed=speedy[6]}
if (keyboard_check(vk_down)&&keyboard_check(vk_right)) {direction=-45
speed=speedy[7]}
}
ca doit marcher ^^ mais de là dire que c'est plus rapide, ou plus simple ... EDIT : j'ai testé, ca marche ^^ |
|
| |
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: Problème de code Sam 22 Avr 2006 - 3:17 | |
| Déjà, les if else à la suite c'est moche : préférez la structure switch. Dans le cas de ton code, utilise une fonction intermédiaire, qui reprend les paramètres pour les touches directionnelles. |
|
| |
Contenu sponsorisé
| Sujet: Re: Problème de code | |
| |
|
| |
| Problème de code | |
|