AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -50%
-50% Baskets Nike Air Huarache Runner
Voir le deal
69.99 €

 

 Problème de gravité en online

Aller en bas 
2 participants
AuteurMessage
notiz85
Utilisateur confirmé: Rang *****
notiz85


Messages : 2004
Localisation : Vendée
Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...

Problème de gravité en online Empty
MessageSujet: Problème de gravité en online   Problème de gravité en online EmptySam 30 Déc 2006 - 19:23

C'est remoi gnii
Voila maintenant que j'ai résou mon problème pour la gravité en GML,
je voudrais l'appliquer en online... Sa pas de problème voici mes codes :

Code:

// DROITE :
x = mplay_data_read(5);

if global.ident = 1
{
if (keyboard_check(vk_right))
{
if place_free(x+argument0,y)
{
x+=argument0;
}
mplay_data_write(5,x);
}
}

Code:

// GAUCHE :
x = mplay_data_read(5);

if global.ident = 1
{
if (keyboard_check(vk_left))
{
if place_free(x-argument0,y)
{
x-=argument0;
}
mplay_data_write(5,x);
}
}

Code:

// HAUT :
vspeed=mplay_data_read(7);

if global.ident = 1
{
if (keyboard_check(vk_up))
{
if !place_free(x,y+1)
{
vspeed=argument0;
}
mplay_data_write(7,vspeed);
}
}

Code:

// SI COLLISION AVEC LE 'SOL' // par exemple
Et la je sais pas trop si je mets le code GML avec tous pour que se soit
online, mplay_data_read&write ou si on met juste les actions D&D par défaut (faites pour) ?
Car j'ai essayé avec les deux mais sa ne marche pas !
La collision de mon perso avec un sol se fait aussi s'il rentre en collision
avec la partie du bas du sol !!!

Note : tous est dans l'Event Step sinon les deux actions D&D pour la collision
avec le sol sont dans Event Collision 'block' // le nom du mur

Et une petite screen au cas ou...
Problème de gravité en online Onlineplateformelk3

Voila si quelqu'un c'est comment résoudre mon problème
ange :p_svp: ange

:p_merci:
@NOTIZ@

_________________
Problème de gravité en online 577128485
Revenir en haut Aller en bas
http://gmnotiz.fr.nf/
daminetreg
Administrateur
daminetreg


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

Problème de gravité en online Empty
MessageSujet: Re: Problème de gravité en online   Problème de gravité en online EmptySam 30 Déc 2006 - 22:56

Plutôt que de mettre tes codes dans des évènements tels que: droite, gauche ou haut, met les dans step.
Ici il y a un code fonctionnel:
https://cbna.forumactif.com/viewtopic.forum?t=3464&highlight=

C'est celui que je donne, je l'ai un peu modifié ici:
Code:
//Script de maintenance du joueur 1

//Gestion Gravité
gravity_direction = 270;
if place_free(x,y+1) gravity=0.35;
if not place_free(x,y+1) gravity=0;
if vspeed>18 vspeed=18;
/////Début gestion et écriture du multi/////
//Déplacements
if global.ident = 1
    {
    if (keyboard_check(vk_left)) {x -= 6}
    if (keyboard_check(vk_right)) {x +=6}
    if (keyboard_check(vk_up)) {if not place_free(x,y+1) vspeed = -12;}
        //Ecriture
        mplay_data_write(5,x);
        mplay_data_write(6,y);
        mplay_data_write(7,vspeed);
        mplay_data_write(8,gravity);
    }

//Lecture
x = mplay_data_read(5);
y = mplay_data_read(6);
vspeed=mplay_data_read(7);
gravity=mplay_data_read(8);
(Lecture & écriture de gravity est en fait inutile, ce me semble, je ne sais pas pourquoi je l'avais mis)

Si tu gères toutes tes modifs & lectures dans step, tout le reste tu peux le mettre en actions normales. Dans collision with obj_sol, tu n'as qu'à mettre ceci:
Code:
if (vspeed > 0 && not place_free(x,y+vspeed)) move_contact(270);
    vspeed = 0;

Voili voilou. happy1 Mais dans ton cas, tu es nécessairement contraint à user d'un code dans step, parce que la gravité agit en permanence pas seulement sur l'agissement du joueur, donc il faut que la position x et y ainsi que la vitesse etc. soit lue en permanence.
Lorsque tu fais du vue de dessus tu peux te permettre à ne faire des updates que dans les event des touches, mais ici tu es contraint à tout faire passer par step, et puis c'est beaucoup plus sûr. happy1

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
Problème de gravité en online U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
notiz85
Utilisateur confirmé: Rang *****
notiz85


Messages : 2004
Localisation : Vendée
Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...

Problème de gravité en online Empty
MessageSujet: Re: Problème de gravité en online   Problème de gravité en online EmptyDim 31 Déc 2006 - 11:04

A tu as du croire que :
// DROITE
et
// GAUCHE
ou
// HAUT

était l'Event Keyboard '...' ?
Car sinon non, je sais très bien qu'il faut mettre la gravité dans l'Event Step
et le reste aussi... Et sa je le fais très bien gnii
Sinon merci pour le deuxième code mais pourquoi : ?
Citation :
if (vspeed>0 && !place_free(x,y+vspeed))
{
move_contact(270);
vspeed=0;
}

y+vspeed : Normalement ce n'est pas : y+1 ???

move_contact(270); : Ce n'est pas : move_contact_solid(direction,12); ? Quel est la différence ?

Ou alors on indique 270 pour la direction de la gravité et se serai donc sa
qui ferai que le perso reste accrocher au block pas en dessous ?
La gravité serai un coup normale et un autre coup vers le haut ou quelque
chose comme sa ?

PS: je peux pas tester pour le moment car je suis sur le portable triste

_________________
Problème de gravité en online 577128485
Revenir en haut Aller en bas
http://gmnotiz.fr.nf/
notiz85
Utilisateur confirmé: Rang *****
notiz85


Messages : 2004
Localisation : Vendée
Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...

Problème de gravité en online Empty
MessageSujet: Re: Problème de gravité en online   Problème de gravité en online EmptyDim 31 Déc 2006 - 11:57

❓
J'ai tester le deuxième code mais mon perso reste toujours coincer :gniah:

Donc il y a mon perso.

Code:
// Dans l'Event Step :
if place_free(x,y+1)
{
gravity_direction=270;
gravity=0.5;
}
else
{
gravity_direction=270;
gravity=0;
}

if vspeed>12
{
vspeed=12;
}

// Touche Droite
x = mplay_data_read(5);

if global.ident = 1
{
if (keyboard_check(vk_right))
{
if place_free(x+argument0,y)
{
x+=argument0;
}
mplay_data_write(5,x);
}
}

// Touche Gauche
x = mplay_data_read(5);

if global.ident = 1
{
if (keyboard_check(vk_left))
{
if place_free(x-argument0,y)
{
x-=argument0;
}
mplay_data_write(5,x);
}
}

// Touche Haut
vspeed=mplay_data_read(7);

if global.ident = 1
{
if (keyboard_check(vk_up))
{
if !place_free(x,y+1)
{
vspeed=argument0;
}
mplay_data_write(7,vspeed);
}
}

Code:
// Dans l'Event Collision avec block
if vspeed>0 && !place_free(x,y+vspeed)
{
move_contact(270);
vspeed=0;
}

Du coup je vois pas du tout le problème snif
Car il y a bien la gravité (donc pas en online) dans l'Event Step
et quand avec les touches pour sauter et se diriger...

ange :p_svp: ange

:p_merci:
@NOTIZ@

_________________
Problème de gravité en online 577128485
Revenir en haut Aller en bas
http://gmnotiz.fr.nf/
daminetreg
Administrateur
daminetreg


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

Problème de gravité en online Empty
MessageSujet: Re: Problème de gravité en online   Problème de gravité en online EmptyDim 31 Déc 2006 - 15:26

move_contact(270); est logique étant donné que ça n'arrêtte le perso que lorsqu'il arrive de haut en bas, qui est la gravity_direction. Et c'est une ancienne fonction qui revient au même que les nouvelles.

Grâce à y+vspeed tu es sûr de prévoir correctement l'arrêt, alors qu'avec y+1 lorsqu'il y a de forte vitesses la collision ne se fait pas toujours terriblement.

Quant à ce code:
Code:
// Dans l'Event Collision avec block
if vspeed>0 && !place_free(x,y+vspeed)
{
move_contact(270);
vspeed=0;
}
Je ne l'ai pas écris comme ça, mais bien comme ceci:
Code:
if vspeed>0 && !place_free(x,y+vspeed) move_contact(270);

vspeed=0;

C'est à dire que s'execute ceci: "move_contact(270);" si "vspeed>0 && !place_free(x,y+vspeed) " puis de toutes manières que "vspeed>0 && !place_free(x,y+vspeed)" soit validée ou non: vspeed est mis à 0.
C'est une sorte de solution de dernier recours, mais on peut effectivement s'en passer.

Si tu utilisais mon code ça fonctionnerait, mais peu importe, car je l'ai testé. :nezrouge:
Enfin bref, le problème dans le tiens vient simplement du fait que tu n'update pas la valeur y, vspeed ou y tout seul ne suffisent pas, j'ai déjà essayé il faut les deux en même temsp! gnii

Donc voilà, ce serait bien aussi que tu fasses les lectures de slots en fin de code et toutes ensembles, tu peux également regrouper toutes les écritures dans un seul global.ident, c'est plus joli et plus rapide. gnii


EDIT/ Argh! J'essayai de corriger un problème que tu as résolu, toi en fait ton prob vient du fait que tes gars se "collent" au plafond, je vois pas trop pour quoi sur le coup, peux tu m'envoyer le gm6? ange

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
Problème de gravité en online U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
notiz85
Utilisateur confirmé: Rang *****
notiz85


Messages : 2004
Localisation : Vendée
Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...

Problème de gravité en online Empty
MessageSujet: Re: Problème de gravité en online   Problème de gravité en online EmptyDim 31 Déc 2006 - 17:53

daminetreg a écrit:
color=red]EDIT/[/color] Argh! J'essayai de corriger un problème que tu as résolu, toi en fait ton prob vient du fait que tes gars se "collent" au plafond, je vois pas trop pour quoi sur le coup, peux tu m'envoyer le gm6? ange

D'accord je t'envoi le gm6 par MP super

_________________
Problème de gravité en online 577128485
Revenir en haut Aller en bas
http://gmnotiz.fr.nf/
Contenu sponsorisé





Problème de gravité en online Empty
MessageSujet: Re: Problème de gravité en online   Problème de gravité en online Empty

Revenir en haut Aller en bas
 
Problème de gravité en online
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème de gravité en multijoueur online
» probleme de gravite
» problème de gravité
» Problème Gravité/Collision
» [résolu] problème gravité

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: