| Déplacement d'un objet aussi fluide qu'un draw event[Résolu] | |
|
|
|
Auteur | Message |
---|
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 6:04 | |
| Bonjour, je suis nouveau sur le CBNA; je ferais mon topic de présentation quand je me lèverais dans plusieurs heures, car la je m'endors sur le clavier, et j'ai vraiment pas envie de faire une présentation a l'arrache. Ma question est : Comment faire pour qu'un objet reste au même endroit dans la vue ? j'utilise en step event : jump to position : view_xview [0] + xx view_yview [0] + yy mais ce n'est pas aussi fluide qu'un draw avec les même fonctions. Par exemple, des que la vue se déplace vers la droite, l'objet ne se déplace pas aussi bien que si il serait en draw. par exemple j'ai un HUD en draw, qui ne me pose aucun problème pour suivre la vue, hors dans cet Hud, j'ai 3 objets avec lesquels j'ai des events ( mouse enter, mouse press etc ) mais il ne suivent pas correctement le Hud qui est en draw... J'ai essayer en changer step par begin step, et par end step, mais même problème. J'ai vraiment besoin de les garder tel quel et de ne pas les mettre en draw. Merci de m'aider a réglé ce problème important. Et a dans quelques heures pour ma présentation de moi et de mon projet Bonn'nuit :noel2:
Dernière édition par Qual le Jeu 5 Aoû 2010 - 13:26, édité 1 fois |
|
| |
linkdu83 Petit bavard
Messages : 56 Localisation : Var Projet Actuel : Metroid Prime 2D
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 8:29 | |
| C'est très simple : Dans un l'évènement End Step, tu mets : x=view_xview+...; y=view_yview+...; |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 12:41 | |
| pour la fluidité totale le draw est la meilleur solution normalement... je vosi pas pourquoi tu veux pas y toucher d'ailleurs.
sinon tu fait bouger ton objet comme l'as dit link x=view_xview+... y=view_yview+...
et tu affiche pas ton objet aux coordonnées x;y mais aux coordonnées view_xview+...;view_yview+... |
|
| |
red-error Utilisateur confirmé: Rang ****
Messages : 1015 Projet Actuel :
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 14:58 | |
| Ou même mieux : tu met sa position à view_xview+...;view_yview+... dans le DRAW (qui se passe après end_step).
C'est ce que j'utilise personnellement si je veux garder le draw automatique de mon objet, mais avec un autre objet qui s'affiche juste avant, pour l'afficher pile poil à la bonne position. Sinon si tu peux drawer ton objet, la solution d'Onilink est plus simple. |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 17:31 | |
| Merci pour vos réponses, hélas mon problème n'est pas résolu. Pour mieux vous expliquer , voici le HUD - Spoiler:
La ou il y a les icônes de pistolets, ce sont la ou je dispose mes objets. C'est mon menu "buy" en gros. Au début on peut y acheter l'arme, et dés que l'arme est en possession, l'icone change pour être une icône de munitions de l'arme. ( et cet icone change en fonction des stocks d'argent m'enfin bref ) - Citation :
- x=view_xview+...;
y=view_yview+...; ca ne change rien au problème :/ lorsque la vue bouge, l'objet suit le mouvement, mais avec un espèce de retard très faible, mais lorsque la vue fait des mouvement rapide l'objet se décale, avant de revenir a la bonne position. - Citation :
- pour la fluidité totale le draw est la meilleur solution normalement... je vosi pas pourquoi tu veux pas y toucher d'ailleurs.
Car justement ce sont des objets a part entière, et pas juste un affichage. ils ont chacun leurs propores events, leurs variables etc :/ - Citation :
- Ou même mieux : tu met sa position à view_xview+...;view_yview+... dans le DRAW (qui se passe après end_step).
C'est ce que j'utilise personnellement si je veux garder le draw automatique de mon objet, mais avec un autre objet qui s'affiche juste avant, pour l'afficher pile poil à la bonne position. Oula, je crois que j'ai pas capté >.> si j'utilise x= view_x etc dans un draw event, sa ne marche pas.. ou alors tu me dit de dessiner le sprite en draw event, et d'utiliser un objet invisible qui restera devant pour faire ce que je veux ? ca risque d'être la misère, d'autant plus que l'objet invisible ne bougera pas correctement, donc ca ne résous pas le problème, ca le rend invisible xD ______________ |
|
| |
linkdu83 Petit bavard
Messages : 56 Localisation : Var Projet Actuel : Metroid Prime 2D
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 17:33 | |
| Tu es sûr d'avoir mis le code dans un End Step ? Normalement, c'est sûr que ça marche ... |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 17:35 | |
| bin oui, comme je dit, mon probleme n'est pas de faire en sorte que l'objet reste au même endroit dans la vue, n'importe ou dans la room, mais bien qu'il suit fluidement le mouvement. EDIT : voici un exemple en gmk, ou j'ai reconstituer le problème. Utilisez les touches fléchées pour déplacer le gros bloc et regardez le carré en haut a gauche comment il suit le mouvement. http://www.mediafire.com/?ja7478c0c2wvrr5sa résume trés bien mon problème :/
Dernière édition par Qual le Mer 4 Aoû 2010 - 17:47, édité 1 fois |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 17:36 | |
| citation : "Car justement ce sont des objets a part entière, et pas juste un affichage. ils ont chacun leurs propres events, leurs variables etc :/ "
Alors reprend ton HUD complètement c'est le mieux. Je vois pas en quoi des élément de l'affichage devraient avoir des event. Un HUD est en un seul objet. Je crois que tu fait parti de ceux qui on pas bien compris la notion objet.
Tu crée une fonction mouse_rectangle et si tu clique a une certaine position alors il va se passer tel ou tel truc, mais tout ça dans le draw de ton hud. Si t'y arrive vraiment pas envoie mon ta source par MP je te le ferais. |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 17:49 | |
| j'ai éditer mon message Bah, mon Hud est dans le même esprit que le Hud de Bast dans Metal Gun 2 . Il y a des icones cliquable et tout , sauf que lui la vue ne bouge pas :non2: Bon je vais faire les courses , je reviens. Peut etre que l'exemple que j'ai donné vous aidera a comprendre mieux le problème... |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 17:56 | |
| Sinon tu met ça dans le draw de chaqu'un de tes objets qui constituent ton HUD - Code:
-
draw_sprite(sprite_index, image_index, view_xview [0] + x, view_yview [0] + y) Mais je répète que tu est censé faire ton HUD en un seul objet, sinon c'est du nawak |
|
| |
linkdu83 Petit bavard
Messages : 56 Localisation : Var Projet Actuel : Metroid Prime 2D
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 18:12 | |
| Personnellement, mon HUD est composé de plusieurs objets : un qui gère la carte, l'énergie, etc ... Donc, je pense qu'il ne faut pas être obligé de faire un HUD en 1 objet ... |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 18:27 | |
| Utiliser trop d'objets pour rien, ça ne sert qu'a s'embrouiller. Surtout pour un HUD, c'est d'après mon expérience que je vous dit ça, et je pense en avoir tout de même assez pour donner des conseils. Codez simplement et proprement. Un petit test : combien d'objets auriez vous mis pour coder ce log : https://cbna.forumactif.com/projets-f11/entrainement-kanji-t9812.htm- Spoiler:
Ici il y a 4 objets : -un pour le menu (screen 1) -un pour la selection (screen 2) -un pour l'entrainement (screen 3) -et un pour les popups secretes lawl
|
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 18:28 | |
| mais comment je fait pour changer le sprite des que la souris passe sur l'objet ?
je doit utiliser des variables pour chaque instance differents de mon objet ?
( chaque icône a 4 états différents )
et je ne suis pas trés d'accord avec ta vision des HUD, m'enfin bon :p
et concernant ton système de Kanji, je n'aurai pas utiliser des objet non plus, mais c'est absolument pas comparable a ce que je veux faire de mon HUD ...
C'est simple, je voulais faire un menu d'achat, j'ai décider de l'intégré directement au HUD, au pire si c'"est le terme HUD qui te covient pas, trouvons un autre mot alors, mais un objet qui suit la vue fluidement , je ne suis pas le seul a avoir eu besoin de ca , non ? :/ |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 18:32 | |
| la fonction draw_sprite a 4 parametres : -Le sprite -L'image su sprite -Sa position x -Sa position y Donc tu comprendras bien que tu doit modifier c'est parametres en fonction que la souris est sur ton image ou non. Pour ça voici une fonction qui te dit si la souris est dans le réctangle de coordonnées (x1, y1) ( x2, y2) mouse_in(x1, y1, x2, y2) - Code:
-
return mouse_x >= argument0 && mouse_x <= argument2 && mouse_y >= argument1 && mouse_y <= argument3 |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 18:36 | |
| J'explique comment fonctionne mon objet :
Etat 1 : Pas assez d'argent pour acheter l'arme, lors d'un clic, un son de style " Locked " se fait entendre
Etat 2 : Assez d'argent pour acheter l'arme, lors d'un clic l'icone change en Etat 3, ou 4 en fonction de l'argent qu'il reste et un son de style " validé " se fait entendre
Etat 3 : Pas assez d'argent pour acheter les munitions,lors d'un clic, un son de style " Locked " se fait entendre
Etat 4 : Les mnitions sont ajouter a la variable munitions de l'arme correspondante.
Chaque état a sa propre image. |
|
| |
red-error Utilisateur confirmé: Rang ****
Messages : 1015 Projet Actuel :
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 20:13 | |
| En tout cas Ma réponse simplifie tout : Tu as un objet qui se Drawe Avant tes autres, et Dans son draw tu déplace les objets à leur position. Je te fait un schéma : Step Event End Step Event <si tu déplace ton objet ici, is sera décalé car La vue est dessinée juste après Draw event <par contre le draw event se passe après le dessin de la vue, donc ce sera placé à la bonne position Ceci si tu veux toujours utiliser plusieurs objets. Sinon si tu veux le faire bien avec un seul objet, tu utilises des tests de position de la souris... (mouse_x, mouse_y...). |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 20:32 | |
| et je fait comment pour géré les evenements de la souris sur le dessin ?
Mouse click, etc ? o_o |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 23:03 | |
| .... if(mouse_check_bouton_press(mb_left)) { if(mouse_in(x1, y1, x2, y2)) <instructions> } La base de tout - Qual a écrit:
- et concernant ton système de Kanji, je n'aurai pas utiliser des objet non plus, mais c'est absolument pas comparable a ce que je veux faire de mon HUD ...
Si, carrément même , y a certainement plus de sélections que dans ton "HUD" |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 23:31 | |
| Ok, je vais voir en essayant ceci. Merci bien. Mais autrement ya pas moyen de déplacé l'objet fluidement ? ( je pense au menu du style cité plutôt par link ) |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 23:36 | |
| Si y a moyen mais ce serais se compliquer la vie pour rien : Dans le step de l'objet qui se déplace tu incrémente les positions des objets qui compose ton HUD. |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 23:42 | |
| apparement il y a plus simple encore, lorsque qu'on utilise un draw, l'objet qui comprte le draw n'est pas visible, mais il est quand même présent, et donc peux gérer les mouse event d'une maniere classique. Il me suffit de faire en sorte quelque chose du type : if mouse click selectiondeagle = 1 if selecctiondeagle = 1 { } du moins il me semble, je vais tâter ca de suite |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 23:48 | |
| Fait ce que tu veux, mais composer ton hud de plusieurs objets ça fait plat de spaghettis. Et la solution que je te donnais avec la fonction mouse_in est très simple a mettre en œuvre, par contre faut essayer d'aller voir un peut plus loin que le bout de son nez. |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 23:52 | |
| bin je sais pas pourquoi tu as autant de haine contre les HUD comportants des objets...vraiment. :oue: Pour exemple je viens de regarder un des exemple fourni avec le pack gm6_Pack5 , le RTS ENGINE. Il utilise la méthode que je vient de citer, et le résultat est satisfaisant.
|
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Mer 4 Aoû 2010 - 23:58 | |
| Y a pas que le résultat qu'il faut regarder. Le but est de composer son jeu de la meilleur façon, et utiliser trop d'objets, c'est vraiment la meilleur façon de foutre un gros bordel pour abandonner son projet quand il seras bien avancé. C'est comme un gars qui fait du pixel art avec un maximum de couleurs, c'est n'importe quoi. Comme le dirais lolman faut prendre les bonnes habitudes le plus tot, et créer des objets a tout vas, c'est une très mauvaise chose crois moi. |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Jeu 5 Aoû 2010 - 0:01 | |
| C'est la raison pour laquelle je suis en train de mettre en place mon système d'achat d'arme en utilisant qu'un seul évènement draw pour mes 3 armes
en utilisant ce que tu ma dit avant
if(mouse_check_bouton_press(mb_left)) { if(mouse_in(x1, y1, x2, y2)) <instructions> }
Faut se mettre du point de vue débutant qui préfère se raccrocher encre un peu au D&D :oue: |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Jeu 5 Aoû 2010 - 0:12 | |
| Tu as prit la bonne initiative Hélas le chemin qui a l'air le moins tortueux n'est pas forcément le plus simple finalement. Tu t'imagine même pas le nombres de projets que j'ai abandonné a cause d'erreurs betes comme la trop grosse quantité d'objets inutiles, mais aussi pareil pour les sprites, les ressources, et le codage sale... |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Jeu 5 Aoû 2010 - 1:23 | |
| par contre il y a un problème dans ton code, ( je suis sur gm8, si sa change quelque chose )
mouse_check_button_pressed(button))
pour l'action d'appuyer et
if(mouse_check_button(button)) {
pour savoir si elle est enfoncée.
Par contre ton mouse_in ne fonctionne pas, et je ne trouve pas d'équivalent en gml.
J'ai trouvé ca sur le net :
if mouse_x>x and mouse_x < x+width and mouse_y > y and mouse_y < y+height { ... }
|
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Jeu 5 Aoû 2010 - 1:30 | |
| - onilink_ a écrit:
- Pour ça voici une fonction qui te dit si la souris est dans le réctangle de coordonnées (x1, y1) ( x2, y2)
mouse_in(x1, y1, x2, y2) - Code:
-
return mouse_x >= argument0 && mouse_x <= argument2 && mouse_y >= argument1 && mouse_y <= argument3 |
|
| |
Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Jeu 5 Aoû 2010 - 3:04 | |
| Je ne comprend pas comment utiliser cette fonction... Je sais que argument0, 1,2, 3 correspondent a x1, y1, X2, Y2 mais j'ai essayer et cela ne fonctionne pas, donc j'ai foiré quelque part :/ pourtant j'ai bien remplacé x1 x2, y1, y2 par les view_xview [0] + ... et view_yview [0] + ... Est ce que tu pourrait créer un gml tout simple, avec une zone ou des que l'on clique dessus, un simple show_message(""); apparait en utilisant ta fonction ? Merci beaucoup |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] Jeu 5 Aoû 2010 - 8:01 | |
| - Code:
-
if mouse_in(100,100,500,450) && mouse_check_button_released(mb_left) { show_message("tu as fait un clic gauche#entre (100,100) et (500,450)") } _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Contenu sponsorisé
| Sujet: Re: Déplacement d'un objet aussi fluide qu'un draw event[Résolu] | |
| |
|
| |
| Déplacement d'un objet aussi fluide qu'un draw event[Résolu] | |
|