AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

 

 [MI-RESOLU] Probleme

Aller en bas 
4 participants
AuteurMessage
Adrix
Pas mal
Adrix


Messages : 35
Localisation :

[MI-RESOLU] Probleme Empty
MessageSujet: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 13:37

Bonjour à tous et bonne année !! noel noel

Je viens de me remettre récemment à utiliser GameMaker (v7 Pro) pour créer un jeu comme le mod Zombies! de Cod BO en 2D (vue de dessus)...
J'ai voulu mettre un viseur simple, comme on ne voit pas grand chose en vue de dessus, un viseur qui varie de vert , lorsque l'on vise un allié (mode 2J), jaune lorsqu'il n'y a rien devant soi (ni zombie, ni allié), et rouge lorsqu'il y a un zombie devant soi...

Bon jusque là, ca a l'air simple...

Mon problème vient du viseur : il varie bien en jaune et vert mais pas en rouge ! Question
Voilà le code que j'ai inscrit dans Event - Create du viseur :
Code:
ii = "n"
ii étant la variable "d'état" du viseur : n = neutre ; a = allié ; e = ennemi

Dans Event - Step :
Code:
x=mouse_x
y=mouse_y
if collision_line(j1.x,j1.y,lengthdir_x(j1.w1_range,j1.direction),lengthdir_y(j1.w1_range,j1.direction),j2,true,true) then
{
    ii ="a"
}
else
if collision_line(j1.x,j1.y,lengthdir_x(j1.w1_range,j1.direction),lengthdir_y(j1.w1_range,j1.direction),zombie,true,true) then
{
    ii ="e"
}
else
{
    ii="n"
}

;

"j2" est un object ainsi que "zombie" et "j1"
"w1_range" et la distance que peux parcourir une balle tirée par l'arme (ici 960 pixels)

puis (par D&D , flem sweat )
Code:

if ii equal to "e" then
{
Change sprite to "ennemy" (viseur rouge)
}
if ii equal to "a" then
{
Change sprite to "ally" (viseur vert)
}
else
{
Change sprite to "neutre" (viseur jaune)
}
 
et voila ce que j'obtient :

Spoiler:
Spoiler:
Spoiler:

Là , j'utilise la fenêtre "Debug Information"
Spoiler:

Je trouve quand même cela un peu etrange... triste2

j'ai fouillé par tout et je suis sur à 100% qu'il n'y a aucune faute de frappe et aucun autre "zombie" ou "j2"!

Voilà... j'espere que vous trouverez une solution car moi j'en peux plus! mort2
Merci d'avance!! gnii

PS: les graphismes sont tirés de CS2D cd

_________________
tord tord tord tord tord tord tord tord tord ViVe Le CbNa tord tord tord tord tord tord tord tord tord


Dernière édition par Adrix le Jeu 30 Déc 2010 - 21:13, édité 1 fois
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
red-error


Messages : 1015
Projet Actuel : [MI-RESOLU] Probleme Bas-machoire2000

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 14:21

if ii equal to "e" then
{
Change sprite to "ennemy" (viseur rouge)
}
else
if ii equal to "a" then
{
Change sprite to "ally" (viseur vert)
}
else
{
Change sprite to "neutre" (viseur jaune)
}

Le viseur rouge se trouvait tout seul devant, et les tests après lui se faisaient toujours. Very Happy
Revenir en haut Aller en bas
Adrix
Pas mal
Adrix


Messages : 35
Localisation :

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 14:38

Je ne pense pas que le probleme vient de là mais je peux toujours essayer...

EDIT : non, il ne fonctionne toujours pas...
Mais à l'image n°4, j'ai utiliser le debug et la variable ne se change pas en "e"...

Sinon merci pour cette réponse rapide tord

_________________
tord tord tord tord tord tord tord tord tord ViVe Le CbNa tord tord tord tord tord tord tord tord tord
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 17:30

Non je confirme ce que dit red-error
Si tu laisse ton code tel qu'il est actuellement, il est normal que le viseur soit vert ou jaune (il ne peut etre rouge)

Pour les collision, pourquoi tu utilise pas collision-circle ?

_________________
[MI-RESOLU] Probleme Pochette[MI-RESOLU] Probleme Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 18:29

pointer vers un objet au pixel près :
https://cbna.forumactif.com/t9641-gml-laser_length

Trouver l'id de la nième instance d'un (ou plusieurs) objet, par rapport (dans cet exemple) à la position du hero; hero.x,hero.y :

Code:
global.liste=ds_priority_create()
with(ennemi)
{
ds_priority_add(global.liste,id,point_distance(x,y,hero.x,hero.y))
}
with(allie)
{
ds_priority_add(global.liste,id,point_distance(x,y,hero.x,hero.y))
}

le_plus_proche=ds_priority_find_min(global.liste)
ds_priority_destroy(liste)

dans le_plus_proche tu as l'id de l'objet le plus proche, que ce soit un ennemi ou un allié
C'est pas adapté dans ce cas là, mais c'est surtout un exemple de comment utiliser les listes de priorités, c'est super pratique!


Lol, je sais, je cite que mes exemples, mais c'est les seuls que je connais par cœur :p

_________________
[MI-RESOLU] Probleme Control-commentTous les icones de gm utilisables sur le cbna ICI  [MI-RESOLU] Probleme Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Adrix
Pas mal
Adrix


Messages : 35
Localisation :

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 19:21

Merci! j'avais essayé une autre methode mais j'ai retesté celle-ci et ca marche gnii
Sinon j'ai remarqué un truc : lorsque je vise qqun (zombie ou allie) a l'horizontale, il faut visé vers la moitié inferieure du sprite...
Est-ce qu'il faudrait utiliser ta méthode pour pointer au pixel près ?

Sinon merci, j'ai résolu mon pb!!

et je comptais utiliser la priorité plus tard ! tord

_________________
tord tord tord tord tord tord tord tord tord ViVe Le CbNa tord tord tord tord tord tord tord tord tord
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 20:56

en fait, le coup du laser sert plutôt à trouver , sur une ligne droite, à quel pixel la collision se passe.
Donc en théorie, ça marche sur l'intégrale du sprite.

Oh, et si jamais (je continue à citer mes propres documents, lol), sur le site ( www.lecbna.org ), section tutorial, il y en a un sur les collisions, tu trouveras peut être quelquechose d'utile dedans...

[EDIT] En fait, pour le coup de détecter tout le sprite, ça dépend du mask de l'objet : s'il est égal au sprite, pas de soucis, sinon... ben on peux rien faire, c'est le mask de l'objet qui définit la forme "physique" de l'objet.

_________________
[MI-RESOLU] Probleme Control-commentTous les icones de gm utilisables sur le cbna ICI  [MI-RESOLU] Probleme Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Adrix
Pas mal
Adrix


Messages : 35
Localisation :

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyJeu 30 Déc 2010 - 21:11

j'ai mis un mask carré recouvrant tout le sprite (carré 32*32) et ca ne résout rien...
J'ai remarqué que l'orientation du personnage jouait de "l'endroit " où il fallait viser...

poutant seules les variables "w1_range" (distance) et "direction" sont importées du Joueur...

_________________
tord tord tord tord tord tord tord tord tord ViVe Le CbNa tord tord tord tord tord tord tord tord tord
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyVen 31 Déc 2010 - 1:08

les collision_line partent bien du MILIEU du joueur?

Ah, et dans la même fonction, le deuxieme set de coordonnées, t'as pas oublié de rajouter les coordonnées de départ? un lengthdir suffit pas!


bref :

collision_line(j1.x,j1.y,j1.x+lengthdir_x(j1.w1_range,j1.direction),j1.y+lengthdir_y(j1.w1_range,j1.direction),j2,true,true)

et comme dit, vérifie aussi que j1.x, j1.y est bien le milieu de ton joueur

_________________
[MI-RESOLU] Probleme Control-commentTous les icones de gm utilisables sur le cbna ICI  [MI-RESOLU] Probleme Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Adrix
Pas mal
Adrix


Messages : 35
Localisation :

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyVen 31 Déc 2010 - 10:09

C'était la première fois que j'utilisait cette fonction , je ne savait pas trop quels arguments donner...sinon ca fonctionne à peu près, mais il est vrai que les coordonnées ne partent pas du milieu du sprite, peut-on régler ceci par une fonction sans modifier le point d'origine du sprite ?

Ca m'enbeterait de mettre des lengthdir un peu partout... sweat

PS: C'est tôt 1h

_________________
tord tord tord tord tord tord tord tord tord ViVe Le CbNa tord tord tord tord tord tord tord tord tord
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyVen 31 Déc 2010 - 10:27

si l'origine de ton sprite est en 0,0,
tu rajoute sprite_get_width(sprite_index)/2 à x
et rajoutes sprite_get_height(sprite_index)/2 à y

la fonction collision_line nécessite le point de depart et le point d'arrivée, dans le même système de coordonnées : si tu met juste le lengthdir en deuxième, c'est les coordonnées relatives au prmier point :p

_________________
[MI-RESOLU] Probleme Control-commentTous les icones de gm utilisables sur le cbna ICI  [MI-RESOLU] Probleme Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Adrix
Pas mal
Adrix


Messages : 35
Localisation :

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyVen 31 Déc 2010 - 10:40

merci mais je ne comprend pas très bien...

je met sprite_get_width comme ca ? j1.sprite_get_width(spr_j1_a1)/2 au lieu de x1 et x2 (en gardant le lengthdir bien sûr)

Et mon sprite n' a pas 0,0 en origine, mais ca change quand même rien au code...


_________________
tord tord tord tord tord tord tord tord tord ViVe Le CbNa tord tord tord tord tord tord tord tord tord
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyVen 31 Déc 2010 - 11:13

centre de ton sprite :
x-sprite_get_xoffset(sprite_index)+sprite_get_width(sprite_index)/2
y-sprite_get_yoffset(sprite_index)+sprite_get_height(sprite_index)/2

bref, c'est là où tu le place, MOINS l'offset du sprite(pour revenir comme si l'origine etait en 0,0 ), PLUS la moitie de la taille, pour aller au milieu, pardi!

faut le marquer tel quel, si le sprite affiché est le sprite défini pour l'objet. (sprite_index est la variable qui correspond à ce sprite)
ça, c'est pour un bon point de départ pour ta ligne, bien au centre du sprite affiché !

pour le deuxième point, tu veux les coordonnées d'un point à la distance "l" avec un angle "ang" par rapport au point précédent (qu'on appellera x1,y1, c'est plus court)
le deuxième point sera donc :

x1+lengthdir_x(l,ang)
y1+lengthdir_y(l,ang)

_________________
[MI-RESOLU] Probleme Control-commentTous les icones de gm utilisables sur le cbna ICI  [MI-RESOLU] Probleme Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Adrix
Pas mal
Adrix


Messages : 35
Localisation :

[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme EmptyVen 31 Déc 2010 - 17:14

j 'ai modifié et ca marche merci !
gnii gnii gnii gnii gnii

_________________
tord tord tord tord tord tord tord tord tord ViVe Le CbNa tord tord tord tord tord tord tord tord tord
Revenir en haut Aller en bas
Contenu sponsorisé





[MI-RESOLU] Probleme Empty
MessageSujet: Re: [MI-RESOLU] Probleme   [MI-RESOLU] Probleme Empty

Revenir en haut Aller en bas
 
[MI-RESOLU] Probleme
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» problème avec gravité [résolu] - problème avec mouvements
» problème IA [Résolu]
» [résolu] Problème d'I.A.
» Problème Son [Résolu]
» problème background_replace_alpha [Résolu]

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: