Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Générer et tirer un SPRITE avec la souris Ven 3 Fév 2012 - 0:51 | |
| J'ai fait une petite maquette pour montrer la possibilité de créer un SPRITE en cliquant sur une zone déterminée d'un SCENE2D et déplacer ce SPRITE avec la souris jusqu'à l'endroit vouu, où on le libère par ECHAP. On peut recommencer l'opération. Deux zones dans le SCENE2D: un "terrain" (rectangle de gauche) et une "palette" (rectangle de droite) dont seule la moitié supérieure est active. Un clic sur partie active fait apparaître un SPRITE bleu qui reste collé à la souris. On peut le déplacer et le "lâcher" à l'endroit voulu. - Code:
-
' mouse_left_up et SPRITE ' ' ce programme réagit sur un clic gauche dans la ' moitié haute du rectangle de roite en affichant ' un sprite bleu qui reste collé au curseur. ' on peut le placer où on veut, et on le dépose par ' la touche ECHAP. L'opération peut être répétée à ' volonté. Ceci est un moyen de "tirer" un modèle ' d'une palette d'outils (le rectangle de droite) ' vers un terrain de jeu (le rectangle de gauche). ' La "palette" dans ce cas contient deux zones: ' la moitié supérieure générant un sprite bleu, et ' la moitié inférieure n'étant pas affectée.
label click
dim i%, x%, y%, ns%
width 0,700 : height 0,500 scene2d 1 : top 1,10 : left 1,10 width 1,600 : height 1,400 on_click 1,click
picture 2 : hide 2 : width 2,200 : height 2,200 color 2,255,200,200 image 3 2d_target_is 2 2d_image_copy 3,0,0,width(2),height(2)
sprite 1 sprite_image_load 1,3 sprite 2 sprite_image_load 2,3 sprite_x_position 2,200 sprite 3 sprite_image_load 3,3 sprite_y_position 3,200 sprite 4 sprite_image_load 4,3 sprite_x_position 4,200 sprite_y_position 4,200 color 2,255,100,100 2d_image_copy 3,0,0,width(2),height(2) sprite 5 sprite_image_load 5,3 sprite_x_position 5,400 sprite_y_position 5,0 sprite 6 sprite_image_load 6,3 sprite_x_position 6,400 sprite_y_position 6,200 color 2,0,0,255 2d_image_copy 3,0,0,50,50 ns% = 10
end
click: x% = mouse_x_left_up(1) y% = mouse_y_left_up(1) for i%=1 to 6 if x%>sprite_x_position(i%) if x%<sprite_x_position(i%)+200-1 if y%>sprite_y_position(i%) if y%<sprite_y_position(i%)+200-1 if i%=5 ns% = ns% + 1 sprite ns% sprite_image_load ns%,3 sprite_x_position ns%,x%-5 sprite_y_position ns%,y%-5 ' while mouse_left_up(1)=1 while scancode<>27 x% = mouse_x_position(1) y% = mouse_y_position(1) sprite_x_position ns%,x%-5 sprite_y_position ns%,y%-5 wait 20 end_while exit_for end_if end_if end_if end_if end_if next i% return
| |
|
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Générer et tirer un SPRITE avec la souris Ven 3 Fév 2012 - 3:52 | |
| Salut Salut, intéressant, au niveau du code. Lol tous ces IF ça fait peur^^ (à moi). Je pense que tu voulais montrer que l'on peut faire animer un sprite sans scintillements ? C'est vrai que ton code montre ça, mais ce n'est pas utilisable dans un jeu. Le carré bleu met 3 s pour rejoindre le curseur de la souris. C'est très lent, une animation a besoin de voir ses images changer très rapidement. D'autre part, tu utilises des couleurs unies, ce n'est pas des images qui changent pour faire une véritable animation, comme un personnage qui bouge par exemple, essaie, tu verras que ce n'est pas applicable avec Panoramic. Infos sur le résultat : Si je laisse le curseur au-dessus de la zone rouge (à droite) et que je presse ESC, un nouveau carré bleu apparaît et vient rejoindre le curseur, tant que je reste pressé, les carrés s'accumulent dans la zone rouge. Je suis content que tu aie essayé au moins, de montrer qu'une animation est possible, c'est sympa | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Générer et tirer un SPRITE avec la souris Ven 3 Fév 2012 - 9:00 | |
| Pour le problème du scintillement, je l'ai traité dans un autre post. Ce modeste exemple voulait simplement montrer comment rirer un SPRITE généré à partir du clic sur une case d'une palette, vers un endroit du terrain de jeu et l'y déposer. Je n'ai pas géré: - la limitation du terrain de jeu - une grille magnétique pour la dépose - le test si une case est déjà occupée - le dessin de la palette Je fait que tous les SPRITE soient identiques par contre semble logique car ils sont tous issus de la même case de la palette. Donc, juste l'aspect générer-tirer-déposer.
Par contre, je ne vois pas tes 3 secondes. Après le clic sur la palette, le SPRITE apparait sous le curseur. On peut ensuite déplacer le curseur, même rapidement, et le SPRITE reste collé sous le curseur. Il ne s'en détache pas. | |
|
lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Générer et tirer un SPRITE avec la souris Ven 3 Fév 2012 - 9:18 | |
| Merci, c'est très intéressant comme code. C'est une bonne exemple de comment faire un sprite sans fichier BMP externe; et en même temps une bonne exemple d'image qu'on déplace avec la souris. Merci beaucoup! Lode | |
|
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Générer et tirer un SPRITE avec la souris Ven 3 Fév 2012 - 18:11 | |
| Bizarre, c'est mon PC qui fait ça alors....
Quand je clique, le carré bleu part du coin 00 de l'écran et vient vers la souris mais en plusieurs étapes, il part d'abord dans une direction, il s’arrête une seconde, puis il va vers le click.
Le trajet total dure entre 2 et 3 s, variable.
Sinon l'empilement sur la zone d'empilement de droite je n'ai même plus besoin de cliquer, il suffit que je reste la touche ESC pressée avec le curseur souris au-dessus de la zone de stockage.
Sinon je pense aussi que c'est une bonne façon de faire apparaître un carré de couleur (que j'appellerais sprite s'il avait une image) sans utiliser de BMP. Il n'y a que deux façons : soit le dessin par pixels, soit le dessin par tracé puis flood.
| |
|
Contenu sponsorisé
| Sujet: Re: Générer et tirer un SPRITE avec la souris | |
| |
|