Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | Spritons | |
| | Auteur | Message |
---|
Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: Spritons Jeu 31 Oct 2013 - 10:18 | |
| Bonjour à tous !
J'ai décidé de retravailler un vieux programme de déplacement de tank en 2D et pour cela je m'intéresse aux sprites. Or je constate qu'à ma connaissance, il n'existe pas de mot-clé pour donner les dimensions effectives d'un sprite... Je m'explique : en principe le sprite peut faire jusqu'à 200 px de long ou de large... est-ce à dire qu'il prend les dimensions de l'image chargée dans le sprite ? Ceci n'est effectivement pas gênant pour bouger un sprite, puisqu'on connaît sa position, mais si je veux fabriquer un utilitaire qui fabrique 8 à 16 images bien centrées d'un rectangle d'une couleur donnée (en réutilisant ce qui a servi à apprendre à dessiner un tank sans utiliser de sprite), c'est un bon début et bien plus commode que de s'user les yeux sur PAINT... et j'ai besoin de savoir gérer les dimensions, puisque par exemple SPRITE 20 : WIDTH 20,64 me renvoie un message d'erreur.
Quelqu'un peut-il éclairer ma lanterne ?
Bonne journée
| |
| | | Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: Re Jeu 31 Oct 2013 - 10:39 | |
| C'est encore moi ! J'en profite pour signaler un truc bizarre : - Code:
-
color 0,255,255,255 dim x1,x2,y1,y2 x1=116:y1=x1:x2=64+x1:y2=x2 ' print x1,y1,x2,y2 2d_pen_color 242,133,8 2d_line x1,y1,x2,y2 2d_rectangle x1,y1,x2,y2 Chez moi, si je retire la remarque de la ligne PRINT alors PANORAMIC reconnaît le FORM et affiche un carré... sinon, pas ! | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 10:45 | |
| Actuellement, cela n'existe pas. Tu peux poster une demande dans la section "Vos souhaits...". Si Jack y voit in intérêt, il peut le faire lorsqu'il aura un peu de temps. Pour l'heure, il faut procéder de façon indirecte. Je m'explique. Tu connais la taille initiale: 200x200 pixels. Puis, tu as les commandes SPRITE_X_SCALE, SPRITE_Y_SCALE et SPRITE_SCALE pour appliquer un coefficient sur une des deux dimensions ou les deux à la fois. Il te suffit alors de gérer une variable pour chaque sprite et chaque dimension, initialisée à 200, à laquelle tu appliques le même coefficient, et tu connais la taille à chaque instant donné. Exemple: - Code:
-
dim tailles_des_sprites(200,1) : ' 200 sprites, 2e indice: 0=taille X, 1=taille Y ... tailles_des_sprites(17,0) = 200 : ' taille X du sprite 17 tailles_des_sprites(17,1) = 200 : ' taille Y du sprite 17 ... SPRITE_SCALE 17,2,0.5 : étirer le sprite 17 2 fois en largeur et comprimer à la moitié de sa hauteur tailles_des_sprites(17,0) = tailles_des_sprites(17,0) *2 tailles_des_sprites(17,1) = tailles_des_sprites(17,1) *0.5
J'espère que cela te donnera une piste. | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 10:47 | |
| Ton exemple avec PRINT ressemble fortement à un bug ! | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 10:52 | |
| Si tu fais comme ça: - Code:
-
color 0,255,255,255 dim x1,x2,y1,y2 x1=116:y1=x1:x2=64+x1:y2=x2 ' print x1,y1,x2,y2 2d_pen_color 242,133,8 2d_line x1,y1,x2,y2 display 2d_rectangle x1,y1,x2,y2 display le rectangle s'affiche. Par contre, on n'a toujours pas le trait. Note importante: Je déconseille fortement de faire des PRINT ou 2D_xxx directement sur la form 0 ! En effet, rien de tout cela n'est persistant ! Dès qu'une fenêtre quelconque vient se positionner par-dessus, le dessin ou l'impression est perdu.[b]Solution: Crée un picture, mets-le en FULL_SPACE, déclare PRINT_TARGET_IS et 2D_TARGET_IS sur ce picture, puis fais tes dessins - tout marchera bien. | |
| | | Invité Invité
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 11:19 | |
| Bonjour, Je ne suis pas certain qu'il y est un bug sur le premier exemple On peut coloriser la form, mais il n'est pas dit qu'elle est le support d'un dessin. Maintenant on dessin une ligne, puis un rectangle. Ors le rectangle rempli l'espace, donc la ligne dessous est effacée. Voici le code qui fonctionne, et avec un picture: - Code:
-
color 0,255,255,255 dim x1,x2,y1,y2 x1=116:y1=x1:x2=64+x1:y2=x2 ' print x1,y1,x2,y2 picture 1:full_space 1 : 2d_target_is 1 2d_pen_color 242,133,8 2d_pen_width 10 :' rajouté pour bien voir 2d_line x1,y1,x2,y2 wait 1000
2d_rectangle x1,y1,x2,y2 Si on regarde 2d_fill_color, il est bien dit qu'il s'agit du remplissage de figure comme cercle et rectangle. Maintenant, il y a certainement une erreur avec 2d_target_is , car là il est bien dit que le target est sur 0, et que cette commande doit-être form ou picture. Peut-être que là maintenant on peut parler de bug. A Jack de préciser. |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 11:28 | |
| Que la ligne soit effacée par le rectangle qui suit - ok. Normal. Mais que le rectangle ne s'affichait pas sans la commande PRINT - là, ce n'est pas normal ! Il y a à l'évidence un problème de timing. En ajoutant la commande DISPLAY, le rectangle s'affiche. Visiblement, la fin du programme bloquait la finalisation de l'affichage, alors que le process est toujours actif dans Windows. C'est là que ce n'est pas normal.
Ceci dit, je répète: surtout ne pas utiliser PRINT et 2D_xxx sur la form 0, mais uniquement dans un PICTURE ! | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 12:28 | |
| Voilà la façon correcte d'afficher ces dessins: - Code:
-
picture 1 print_target_is 1 2d_target_is 1 full_space 1 top 1,100 : left 1,100 color 0,255,255,255 dim x1,x2,y1,y2 x1=116:y1=x1:x2=64+x1:y2=x2 ' print x1,y1,x2,y2 2d_pen_color 242,133,8 2d_rectangle x1,y1,x2,y2 2d_line x1,y1,x2,y2
Plus besoin de PRINT ni de DISPLAY. L'image est persistante, même après recouvrement de la fenêtre par une autre. | |
| | | Invité Invité
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 14:28 | |
| Oui Klaus. Lorsque je dis que ce n'est peut-être pas un bug, c'est que je me dis qu'il y a peut-être une erreur dans l'utilisation de 2d_target_is pour une form. Pourquoi pour une fenêtre? Un objet de dessin c'est un picture. Je me dis que surement au départ Jack voulais pouvoir mettre un fond de couleur, et après il a développé picture.
Finalement 2d_circle par exemple se place sur un objet pour lequel 2d_target_is est placé, et il est dit dans le manuel: 2d_circle que par défaut 2d_target_is est 0 au départ. Donc faire du traçage sur la form 0 est voulu, et alors on peut dire qu'il y a BUG. Cela dit, form n'est pas un bon endroit pour faire du dessin, d'autant que file_load ne concerne pas la form 0. Là cela aurait été plus intéressant de pouvoir mettre une image dans la form (et qu'elle tienne, mais si picture est un remplacement). (moi pas parlé français correct à ce que je vois, mais pas le temps)
Bon je retourne à mes travaux. |
| | | Jack Admin
Nombre de messages : 2386 Date d'inscription : 28/05/2007
| Sujet: Re: Spritons Jeu 31 Oct 2013 - 17:36 | |
| - Code:
-
color 0,255,255,255 dim x1,x2,y1,y2 x1=116:y1=x1:x2=64+x1:y2=x2 ' print x1,y1,x2,y2 2d_pen_color 242,133,8 2d_line x1,y1,x2,y2 2d_rectangle x1,y1,x2,y2 Le fait que rien ne se dessine si le PRINT n'est pas exécuté, et qu'il y a un dessin quand le PRINT est exécuté n'est pas normal. On peut dire que c'est bel et bien un bug... .. mais pas un bug de PNORAMIC, un bug de Windows ... En effet, Windows n'effectue pas les commandes graphiques dans l'ordre où on lui demande. Le malin, il les empile, et traite d'abord les plus rapides. Les plus lentes, comme remplir un FORM avec une couleur s'effectuent bien plus tard. Il donne ainsi une impression de rapidité à l'utilisateur... Cela a été mainte fois signalé, au point que je l'ai mis dans les conseils dès 2007 ... Regarde dans l'Editeur : Aide / Conseils / paragraphe 3.2 : - Citation :
- 3.2 - il est conseillé de faire une pause après la coloration d'un FORM :
rem mettre le fond en couleur blanche color 0,255,255,255 : display Essaye: - Code:
-
color 0,255,255,255:display dim x1,x2,y1,y2 x1=116:y1=x1:x2=64+x1:y2=x2 ' print x1,y1,x2,y2 2d_pen_color 242,133,8 2d_line x1,y1,x2,y2 2d_rectangle x1,y1,x2,y2 Je pense que je vais finir par inclure le DISPLAY dans le COLOR, il n'y aura plus de remarques là-dessus. | |
| | | Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: Re Sam 2 Nov 2013 - 19:43 | |
| Merci pour ces dernières remarques, c'est vrai qu'un grand distrait comme moi n'avait jamais jeté un œil à tous ces conseils ! Bonne soirée. | |
| | | Jack Admin
Nombre de messages : 2386 Date d'inscription : 28/05/2007
| Sujet: Re: Spritons Jeu 7 Nov 2013 - 16:47 | |
| Bien que le problème signalé ne vienne pas de PANORAMIC, j'ai modifié COLOR pour forcer Windows à colorer l'objet avant de passer à l'instruction suivante. Dans la prochaine version, il ne sera plus nécessaire de faire DISPLAY après un COLOR. | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Spritons Jeu 7 Nov 2013 - 18:03 | |
| | |
| | | Klaus
Nombre de messages : 12301 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Spritons Jeu 7 Nov 2013 - 19:34 | |
| Très bien ! Panoramic en sera plus simple à utiliser ! | |
| | | Contenu sponsorisé
| Sujet: Re: Spritons | |
| |
| | | | Spritons | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |