AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-29%
Le deal à ne pas rater :
PC portable Gamer ERAZER DEPUTY P60 – 15,6” FHD 144Hz – i7-12è ...
999.99 € 1399.99 €
Voir le deal

 

 [PB Collisions] TopDown

Aller en bas 
2 participants
AuteurMessage
RegelePisicilor
Pas mal
RegelePisicilor


Messages : 34
Projet Actuel : Du shoot, du shoot et encore du shoot!

Action plateformer typé arcade sur écran fixe, dans lequel le joueur doit éliminer, room après room, chaque ennemi qui se présente à lui!

[PB Collisions] TopDown Empty
MessageSujet: [PB Collisions] TopDown   [PB Collisions] TopDown EmptyDim 10 Juil 2016 - 13:06

Bonjour à tous,

j'ai un problème en apparence plutôt simple à résoudre mais sur lequel je me tire un peu les cheveux.

Je bosse sur un jeu en topdown, dans lequel je voudrais évidemment que le personnage ne passe pas à travers les murs ou les objets aux alentours.

J'ai tapé ce code ci:

J'ai deux objets, un personnage, ainsi qu'un objet qui fait office d'obstacle censé stopper la progression du joueur lorsque que celui-ci rentre en contact avec un mur.

Code:

// Dans Create

moveSpeed = 12;
moveStop = 0;

//Dans Step

haut = keyboard_check (vk_up);
bas =  keyboard_check (vk_down);
droite =  keyboard_check (vk_right);
gauche =  keyboard_check (vk_left);


if haut {
    y -= moveSpeed ;

};

if bas {
    y += moveSpeed ;

};

if droite {
    x += moveSpeed ;

};

if gauche {

    x -= moveSpeed ;

};


if droite {

  if place_meeting (x-1, y, obj_Obstacle) {

    x += moveStop;

      }
}


if gauche {

  if place_meeting (x+1, y, obj_Obstacle) {

    x -= moveStop;
      }

}

if haut {

  if place_meeting (x, y+1, obj_Obstacle) {

    x -= moveStop;

 }
}

if bas {

  if place_meeting (x, y-1, obj_Obstacle) {

    x += moveStop;
    }

}

Une idée sur ce qu'il me faudrait modifier?

Merci d'avance!

RG
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[PB Collisions] TopDown Empty
MessageSujet: Re: [PB Collisions] TopDown   [PB Collisions] TopDown EmptyDim 10 Juil 2016 - 13:50

Tu fais les choses a l'envers, on vérifie qu'il n'y ai pas collision avant le déplacement, pas après.

_________________
[PB Collisions] TopDown Runningpotato1[PB Collisions] TopDown TvF6GED [PB Collisions] TopDown MdetltS
Revenir en haut Aller en bas
RegelePisicilor
Pas mal
RegelePisicilor


Messages : 34
Projet Actuel : Du shoot, du shoot et encore du shoot!

Action plateformer typé arcade sur écran fixe, dans lequel le joueur doit éliminer, room après room, chaque ennemi qui se présente à lui!

[PB Collisions] TopDown Empty
MessageSujet: Re: [PB Collisions] TopDown   [PB Collisions] TopDown EmptyDim 10 Juil 2016 - 14:52

Merci pour ta réponse, je vois ce que tu veux dire.

Du coup j'ai fait la chose suivante:

Code:


if place_meeting (x, y+1, obj_Obstacle)  {
if haut {
    y -= moveStop ;
            }
    y -= moveSpeed;

};

if place_meeting (x, y-1, obj_Obstacle)  {
if bas {
    y += moveStop ;
            }
    y += moveSpeed;

};

if place_meeting (x+1, y, obj_Obstacle)  {
if droite {
    x += moveStop ;
            }
    x += moveSpeed;

};

if place_meeting (x-1, y, obj_Obstacle)  {
if gauche {
    x -= moveStop ;
            }
    x -= moveSpeed;

};

Là par contre mon personnage ne bouge plus du tout. J'ai compris la logique et il me semblait pourtant avoir bien procéder.

Tel que je lis mon code, "je regarde s'il y a quelque chose au dessus, si j'appuie su haut alors la vitesse tomber à zéro, s'il n'y a rien, la vitesse de déplacement est de x".

Du coup je vois pas trop ou se situe l'erreur...
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[PB Collisions] TopDown Empty
MessageSujet: Re: [PB Collisions] TopDown   [PB Collisions] TopDown EmptyDim 10 Juil 2016 - 15:15

Bah la déjà t'as confondu les signes pour haut et bas x)

_________________
[PB Collisions] TopDown Runningpotato1[PB Collisions] TopDown TvF6GED [PB Collisions] TopDown MdetltS
Revenir en haut Aller en bas
RegelePisicilor
Pas mal
RegelePisicilor


Messages : 34
Projet Actuel : Du shoot, du shoot et encore du shoot!

Action plateformer typé arcade sur écran fixe, dans lequel le joueur doit éliminer, room après room, chaque ennemi qui se présente à lui!

[PB Collisions] TopDown Empty
MessageSujet: Re: [PB Collisions] TopDown   [PB Collisions] TopDown EmptyDim 10 Juil 2016 - 15:42

J'ai vu ça juste après également!

Malheureusement le problème persiste, pas de mouvement du personnage...

Code:


if place_meeting (x, y+1, obj_Obstacle) {
if haut {
    y += moveStop ;
            }
    y += moveSpeed;
};

if place_meeting (x, y-1, obj_Obstacle)  {
if bas {
    y -= moveStop ;
            }
    y -= moveSpeed;

};

if place_meeting (x+1, y, obj_Obstacle)  {
if droite {
    x += moveStop ;
            }
    x += moveSpeed;

};

if place_meeting (x-1, y, obj_Obstacle)  {
if gauche {
    x -= moveStop ;
            }
    x -= moveSpeed;

};
                       
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[PB Collisions] TopDown Empty
MessageSujet: Re: [PB Collisions] TopDown   [PB Collisions] TopDown EmptyDim 10 Juil 2016 - 16:35

T'as oublié la négation de ta condition aussi.

if(!place_meeting (x, y+1, obj_Obstacle))

ce qui veut dire if not place_meeting ...

_________________
[PB Collisions] TopDown Runningpotato1[PB Collisions] TopDown TvF6GED [PB Collisions] TopDown MdetltS
Revenir en haut Aller en bas
RegelePisicilor
Pas mal
RegelePisicilor


Messages : 34
Projet Actuel : Du shoot, du shoot et encore du shoot!

Action plateformer typé arcade sur écran fixe, dans lequel le joueur doit éliminer, room après room, chaque ennemi qui se présente à lui!

[PB Collisions] TopDown Empty
MessageSujet: Re: [PB Collisions] TopDown   [PB Collisions] TopDown EmptyDim 10 Juil 2016 - 18:13

Parfait, merci beaucoup!
Revenir en haut Aller en bas
Contenu sponsorisé





[PB Collisions] TopDown Empty
MessageSujet: Re: [PB Collisions] TopDown   [PB Collisions] TopDown Empty

Revenir en haut Aller en bas
 
[PB Collisions] TopDown
Revenir en haut 
Page 1 sur 1

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: