AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 Erreur de logique, j'ai dja pété trois piles

Aller en bas 
4 participants
AuteurMessage
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 15:32

Bonjour tout le monde,
Faites pas gaffe au titre, mais bon, voilà, j'ai eu l'idée de faire une barre sous gm pour remplacer la barre de la fenêtre (celle avec le titre et les trois boutons :oui: ). Pour le déplacement, après un check pour voir si la souris est au bon endroit, je fais :
Code:
window_set_position(display_mouse_get_x()-mouse_x,display_mouse_get_y()-mouse_y);
or, ça ne marche (évidemment pas), la fenêtre ne bouge pas. J'ai essayé de décaler la récup de position avec le déplacement de 10 ms mais rien, rien, rien beh
quelqu'un sais pourquoi ça ne marche pas ? merci.
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
onilink_
Modérateur
onilink_


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

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 15:39

? tu veux que la fenetre suive la souris ?
window_set_position(display_mouse_get_x(),display_mouse_get_y())
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 15:56

Non parce que window_set_position fait référence au pixel 0,0 de la fenêtre. Or, moi, je veut reproduire la barre supérieure de la fenêtre, et on suppose que l'utilisateur clique n'importe où sur cette barre, d'où l'utilité de calculer la position de la fenêtre en fonction de la position de la souris dans celle-ci.
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
onilink_
Modérateur
onilink_


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

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 16:04

en tout cas ton code window_set_position(display_mouse_get_x()-mouse_x,display_mouse_get_y()-mouse_y); ne fait que recuperer la position de la fenetre donc normal que ça marche pas.
Apres j'ai pas trop reflechi au probleme mais GM ne gere pas les evenements hors de la fenetre non ? Donc si tu clique sur la barre superieure je sais pas si y a moyen de faire quelque chose...
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
red-error


Messages : 1015
Projet Actuel : Erreur de logique, j'ai dja pété trois piles Bas-machoire2000

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 16:28

Ben tu veux pas le déplacer selon la position de la souris, mais selon la position où la souris a cliqué non ?
Clique :
mx=mouse_x; my=mouse_y;


window_set_position(display_mouse_get_x()-mx,display_mouse_get_y()-my);

(Le problème c'est que mouse button se fait avant mouse pressed alors utilise une variable ou teste dans step dans l'ordre. )
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 18:56

non c'est pas ce que je veux faire.
Vous voyez la barre au dessus de votre fenêtre, avec le titre de la fenêtre et les boutons; ben en mode fenêtre on peut laisser le curseur appuyé dessus et la déplacer librement. Je veux obtenir ce résultat.
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
onilink_
Modérateur
onilink_


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

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 19:22

ouai mais dans la fenetre c'est ça ? si c'est juste ça c'est tout con en tt cas
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 20:41

Citation :

Imperatif : a mettre dans l'objet 'fenetre'

create :
xwin=30 //abscisse de la fenetre
ywin=30 //ordonnée de la fenetre
wwin=240 //largeur de la fenetre
hwin=240 //longueur de la fenetre
mbmove=0

draw :

if mouse_rect(xwin,ywin,xwin+wwin,ywin-16)
{
if mouse_check_button_pressed(mb_left)
{
mx1=mouse_x
my1=mouse_y
mbmove=1
}
}
if mouse_check_button(mb_left) && mbmove=1
{
mx2=mouse_x
my2=mouse_y
xwin-=mx1-mx2
ywin-=my1-my2
mx1=mouse_x
my1=mouse_y
}
if mouse_check_button_released(mb_left)
{
mbmove=0
}

script :
mouse_rect(x1,y1,x2,y2) :
var x1,y1,x2,y2;
/*
arg0 = mouse_x min
arg1 = mouse_y min
arg2 = mouse_x max
arg3 = mouse_y max
*/
x1=min(argument0,argument2)
y1=min(argument1,argument3)
x2=max(argument0,argument2)
y2=max(argument1,argument3)

if mouse_x>x1 && mouse_y>y1 && mouse_x<x2 && mouse_y<y2 return 1 else return 0;

je pense que c'est ce que tu voulais rouge
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 21:03

euh où tu déplaces la fenêtre là dedans ?
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
red-error
Utilisateur confirmé: Rang ****
red-error


Messages : 1015
Projet Actuel : Erreur de logique, j'ai dja pété trois piles Bas-machoire2000

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 21:24

Mass a écrit:
non c'est pas ce que je veux faire.
Vous voyez la barre au dessus de votre fenêtre, avec le titre de la fenêtre et les boutons; ben en mode fenêtre on peut laisser le curseur appuyé dessus et la déplacer librement. Je veux obtenir ce résultat.

Et moi je te dis que mon code fonctionne farpaitement pour ça. :gniah:

(C'es bizarre come les gens veulent pas me croire quand je réponds...)

"Drag'n'Drop please"
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 22:01

oui :
quand la souris est placé entre x1,x2 et y1,y2 (mouse_rect) et que tu a appuyer sur mb_left, la variable de mise en mouvement est activé (mb_move) et les premieres variables de difference ont la valeur de l'abscisse et d'ordonné de la souris
ensuite, il prend les deuxiemes variables de difference ont la valeur de l'abscisse et d'ordonné de la souris et il fait la difference entre la premiere et la deuxieme valeur et l'ajoute a l'abscisse et d'ordonné de ta fenetre (il repete ca TANT QUE mb_left est pressé).
enfin, des que tu relache le bouton, il desactive la variable de mise en mouvement.
voila, je vais te faire un exemple si tu ne vois pas comment faire.

edit : attention, ceci est pour deplace un objet en forme de fenetre, sinon renplace :
xwin=mx1-mx2
ywin=my1-my2
par :

window_set_position(window_get_x()-(mx1-mx2),window_get_y()-(my1-my2));

voila l'exemple : Download exdeplacer.gmk

PS : j'ai essayer de faire ce que tu a dis red-error, mais ca ne marche pas, je l'ai mis dans mon exemple, regarde par toi meme.
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
red-error
Utilisateur confirmé: Rang ****
red-error


Messages : 1015
Projet Actuel : Erreur de logique, j'ai dja pété trois piles Bas-machoire2000

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMar 15 Juin 2010 - 22:55

Ben c'est du pareil au même, j'ai la même chose dans mon GMK posté plus haut (dans trois event mais moins de code), un mouse pressed, un mouse released, et une variable.
Mais j'ai seulement deux variables pour retenir le mouse_x/y, alors que tu en as... quatre ?

En fait toi ta position est relative à la dernière position de l'écran (tu y ajoute la vitesse de la souris si je comprends bien)
donc deux variables position de la souris (addition de vecteurs)
alors que la mienne se base juste sur le premier clique pour savoir de combien la souris a bougé en tout selon les deux positions
(et donc seulement une variable position, un vecteur).



En tout cas là si Mass n'a pas de réponse dans la masse... :gniah:


Par contre on peut pas faire plus court en enlevant la variable de test on dirait, même en les mettant tous les deux dans step check_button se fait avant check_pressed, bizarre. ^^
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles EmptyMer 16 Juin 2010 - 0:55

red-error a écrit:
Ben c'est du pareil au même, j'ai la même chose dans mon GMK posté plus haut (dans trois event mais moins de code), un mouse pressed, un mouse released, et une variable.
Mais j'ai seulement deux variables pour retenir le mouse_x/y, alors que tu en as... quatre ?
c'est normal, j'ai pris ca dans mon proget de fenetre (du GUI-Multitache), c'est pour ca que au debut j'ai precisé que ce que j'ai fais etait destiné a un objet
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Contenu sponsorisé





Erreur de logique, j'ai dja pété trois piles Empty
MessageSujet: Re: Erreur de logique, j'ai dja pété trois piles   Erreur de logique, j'ai dja pété trois piles Empty

Revenir en haut Aller en bas
 
Erreur de logique, j'ai dja pété trois piles
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 11 je péte le compteur !
» Parlez de ce que vous voulez (Partie 5)
» Trois petites questions
» Aide code + logique
» L'Hebergeur gratuit qui pète tout!

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: