AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-40%
Le deal à ne pas rater :
(CDAV) Machine à pâtes Philips 7000 series HR2665/96 à 148,99€
148.88 € 249.99 €
Voir le deal

 

 Problème de code

Aller en bas 
5 participants
AuteurMessage
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Problème de code Empty
MessageSujet: Problème de code   Problème de code EmptyVen 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 snif

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
        }
}
Revenir en haut Aller en bas
http://sagix.free.fr/
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptyVen 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é.
Revenir en haut Aller en bas
http://lecbna.org/
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptyVen 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
Revenir en haut Aller en bas
http://sagix.free.fr/
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptyVen 21 Avr 2006 - 20:50

Tu veux qu'il aille dans 8 directions en fait?
Ben il y a un script donné pour cela:
https://cbna.forumactif.com/viewtopic.forum?t=1723
Revenir en haut Aller en bas
http://lecbna.org/
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptyVen 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 "
Revenir en haut Aller en bas
http://sagix.free.fr/
gogo_swiffer
Banni(e)
gogo_swiffer


Messages : 3668
Localisation : America/Canada/Quebec/Mont-Laurier
Projet Actuel : rien changer parce que tout est sous contrôle

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptyVen 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.
Revenir en haut Aller en bas
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptyVen 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}

}
Revenir en haut Aller en bas
http://sagix.free.fr/
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptySam 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 ^^
Revenir en haut Aller en bas
http://www.tdms.fr
Kryptos
Utilisateur confirmé: Rang ****
Kryptos


Messages : 1058
Localisation : très loin dans un univers étrange
Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.

Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code EmptySam 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.
Revenir en haut Aller en bas
http://s150319444.onlinehome.fr
Contenu sponsorisé





Problème de code Empty
MessageSujet: Re: Problème de code   Problème de code Empty

Revenir en haut Aller en bas
 
Problème de code
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Probleme code
» [Résolu]Problème GM code
» Probleme avec mon code
» Problème dans mon code
» Problème avec mon code

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: