FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
question sur les sprites Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
question sur les sprites Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
question sur les sprites Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
question sur les sprites Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
question sur les sprites Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
question sur les sprites Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
question sur les sprites Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
question sur les sprites Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
question sur les sprites Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
question sur les sprites Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
question sur les sprites Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
question sur les sprites Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
question sur les sprites Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
question sur les sprites Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
question sur les sprites Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 question sur les sprites

Aller en bas 
3 participants
AuteurMessage
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

question sur les sprites Empty
MessageSujet: question sur les sprites   question sur les sprites EmptyMar 31 Jan 2012 - 10:54

Bonjour!

J'ai une question sur le gestion des sprites qui m'embête.

Pour faire apparaitre 'de loin' un vaisseau, je charge un image dans un élément sprite et puis je réduit sa taille (p.ex. taille 0.1, soit 10%), pour après le grandir, p.ex. je le grandis 10 fois par 120% (voir code ci-dessous).

Code:

dim x
scene2d 1
file_load 1,"background.bmp"
full_space 1
sprite 2
sprite_file_load 2,"ship.bmp"
sprite_scale 2, 0.1,0.1
sprite_position 2, 240, 240
for x= 1 to 12
 sprite_position 2, 240, 240
 sprite_scale 2, 1.2,1.2
 wait 1
next x
end

Le problème c'est que quand je réduit la taille de départ (10%), le sprite perds sa qualité, c-a-d, le BMP chargé dans le sprite est irréversiblement réduit en taille: le sprite ne contient plus que 10% d'info du BMP hors que je m'attendrais que le BMP resteraient intacte dans la mémoire et le sprite affiché est affiché comme image réduite.
Mais ceci n'est pas le cas, donc, si je fait grandir le sprite pas à pas pour le faire 'rapprocher' jusqu'a ce qu'il a sa taille normale, l'image devient super-moche, car la qualité est tout perdu et on ne voit que des carrés qui s'approchent.

J'ai essayé de toujours charger le BMP a nouveau dans le sprite a chaque pas (pour regagner toutes les infos), mais a chaque pas de la grandissement (de 10% jusqu'a environ 100%), ça fait apparaitre le sprite en haut de l'écran a gauche parce qu'il perd sa position et aussi il reprends sa taille normale a chaque nouveau chargement du sprite. Donc je dois toujours re-déplacer le sprite et re-réduire sa taille jusqu'a ce qe le boucle arrive a la taille finale de 100%, mais a chaque pas ça le fait apparaitre 2 fois sur l'écran: 1 fois pendant le rechargement du BMP en haut et a gauche de l'écran (même si je le déplace immédiatement) et puis après le déplacement il apparait là ou il faut. J'ai essayé sprite_hide puis sprite_show, mais ça le fait scintiller encore plus.

Est-ce qu'il y a une meilleure manière pour réaliser ce que j'essaie de faire, ou c'est un bug?

Ce qui serait bien, c'est que:
- le sprite garde toutes les infos du bmp en mémoire, même après reduction (sprite_scale);
- que le sprite, dès chargé avec une nouvelle image (ou la même) garde quand-même sa position et ces mesures
- ceci est aussi important pour simuler une figure qui se ballade: le sprite doit changer tout le temps une nouvelle image pour simuler le mouvement et il est donc essentiel que le sprite garde sa position et mesure sans scintiller
- il y a une manière pour préciser la taille du sprite en pixels et pas en pourcentage (plus pratique et plus exacte qu'accumuler des changement en pourcent).

Merci d'avance,

Lode

PS: les images utilisés importent peu; ils viennent tout simplement de google dans cette fase ci, je ferai le graphisme moi-mème après

background.bmp = http://cvms.canfield.k12.oh.us/web/clips/PHOTOS/SPACE/STARS.BMP
ship.bmp = http://digdeep.youthedmusic.com.au/wp-content/uploads/2009/05/spaceship.bmp
(reduit jusqu'a largeur de 200 px, le maximum pour un sprite)
Revenir en haut Aller en bas
http://lode.weebly.com
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyMar 31 Jan 2012 - 11:39

Bonjour,

Il y a une manière, c'est de charger successivement plusieurs petites images de ton sprite pour faire l'animation, au lieu de lui réduire la taille.

Un logiciel comme irfan vew te fera ça les doigts dans le nez comme on dit.
Tu peux réduire une image en pourcentages ou en valeur, en gardant le rapport longueur/largeur ou en ne le gardant pas (case à cocher).

Tu ouvre une image avec, tu va sur le menu image et là sur "resize/resample"


Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyMar 31 Jan 2012 - 12:11

Bonjour, exdragon!
Oauis, j'utilise irfanview souvent.
Quand-même, ça m'oblige a faire une dixaine d'images pour faire apparaitre 1 seul objet. Et le problème reste, qu'a chaque chargement d'image, le sprite est réinitialisé: la position est a nouveau haut+gauche et ça provoque de la scintillement.
Mais peut-être pour resoudre ceci, il suffit de définir autant de sprites que d'images pour cet objet? C'est un sacré détour, mais bon, ça marche _peut-être_ pour faire apparaitre le vaisseau sans trop de scintillement (a voir!), parce que le nouveau cache l'autre a chaque fois, mais pour simuler du mouvement comme qq'un qui se ballade, sa complique vachement plus les choses qui pourraient être simples.
Bon, je vais continuer a experimenter Wink
Merci pour la suggestion! Bonne journée!
Revenir en haut Aller en bas
http://lode.weebly.com
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyMar 31 Jan 2012 - 12:18

Tu dis qu'en chargeant une image dans le sprite ça positionne celui-ci en haut et gauche du scene2D ?

Bizarre comme fonctionnement...
La logique voudrait qu'il reste à sa place XY.

Je vais essayer de tester pour voir, cet aprem.

Sinon en attendant, essaie de voir si tu ne peux pas le repositionner au moment dés que tu as chargé son image.

Citation :
ça m'oblige a faire une dixaine d'images pour faire apparaitre 1 seul objet
Tu veux faire une animation, et ça comporte forcément plusieurs images Wink
De plus le changement d'images est préférable dans ton cas au changement de taille du sprite.

Pour les animations avec les sprites je n'ai pas encore essayé, j'ai juste fait le programme de vaisseaux que tu avais vu mais son image ne changeait pas.
Je compte essayer bientôt, mais Bon Jack avait dit que Panoramic n'était pas fait pour ça spécialement alors que peut-être il y a un bug je ne sais pas, il faut voir et tester.

EDIT :
Je suis en train d'essayer les sprites animés.

Tu devrais essayer 2D_image_copy au lieu de Sprite_file_load.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyJeu 2 Fév 2012 - 19:42

Sinon, pour réduire le scintillement, je fais souvant HIDE de la SCENE2D avant toute modif, puis SHOW après les modifs. C'est à peine perceptible, mais on ne voit plus afficher les différentes étapes intermédiaires. C'est nettement meilleur.

Je n'ai pas essayé, mais tu peux aussi tenter INACTIVE ...modifs...ACTIVE.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyJeu 2 Fév 2012 - 22:59

Bonjour!
J'ai aussi essayé SHOW-HIDE, mais pour un mouvement un peu vite et des calculs a faire en même temps, ça le fait pas. Bon, j'attends un upgrade pour continuer a jouer avec les sprite Wink
Merci quand-même!
Revenir en haut Aller en bas
http://lode.weebly.com
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyJeu 2 Fév 2012 - 23:03

Merci Jack !!!

Moi aussi j'ai essayé tout ce qu'il est possible, j'ai fait un simili "double-buffer", les "hide/show", les "inactive", rien à faire.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyVen 3 Fév 2012 - 0:45

J'ai fait des essais aussi. Ce doit être un bug: la commande SPRITE_SCALE efface le contenu du SPRITE (tout est redéfini en noir, donc invisible sur la SCENE2D. Après un SPRITE_SCALE, il faut refaire un SPRITE_IMAGE_LOAD ou un SPRITE_FILE_LOAD pour revoir le SPRITE à l'écran ! Et en plus, on constate qu'effectivement, la position du SPRITE a également été modifiée et (0,0), ce qui provoque ce scintillement insupportable.

Si l'on ne fait pas de SPRITE_SCALE, on peut déplacer un SPRITE dans la SCENE2D sane scintillement, en faisant un WAIT de quelques millisecondes ou dizaines de millisecondes entre chaque déplacement pas pas de 1, 2 ou 3 pixels.

Le problème est bien causé par SPRITE_SCALE. Je pense que Jack devrait se pencher sur ce problème.

Mise en évidence du bug:
Code:
dim i%

width 0,700
image 1 : file_load 1,"essai.bmp"
scene2d 2 : top 2,10 : left 2,10
width 2,400 : height 2,400
file_load 2,"fond.bmp"
picture 3 : top 3,10 : left 3,440
width 3,200 : height 3,300
2d_target_is 3 : 2d_image_paste 1,0,0

sprite_target_is 2
sprite 1
sprite_image_load 1,1 : ' ici, le SPRITE apparait
for i%=1 to 75
' ligne suivante pour adapter la taille du SPRITE
'  sprite_scale 1,i%*(1/75),i%*(1/75)  : ' on va du plus petit au plus grand
  sprite_position 1,2*i%,2*i%
  sprite_show 1
' si on met la ligne suivante en commentaire,
' on ne voit plus le SPRITE si on utilise la ligne 19 !
'  sprite_image_load 1,1
  wait 30
next i%

Tel que le programme est fourni, il déplace le SPRITE sans scintillement. Si l'on enlève l'apostrophe devant la ligne 18, on ne voit plus le SPRITE du tout, alors qu'il est chargé en ligne 14. Il faut réactiver la ligne 22 pour recharger chaque fois le SPRITE, et là, on voit ce fameux scintillement, et une apparition fugitive du SPRITE en position (0,0).

Les images utilisées sont:
fond.bmp = un fond jaune uni de 400x400 pixels
essai.bmp = un papillon stylisé sur fond noir de 200x200 pixels

Ceci met en évidence les DEUX problèmes de la commande SPRITE_SCALE:
1. le contenu actuel du SPRITE est remplacé par du noir
2. la position du SPRITE est ramenée à (0,0)

Je pense que Jack devrait se pencher sur le problème.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyVen 3 Fév 2012 - 4:09

J'ai déjà fait un déplacement de vaisseaux si tu te souviens, sans scintillements et avec fluidité, mais c'est parce que je ne faisais pas d'animation d'image à l'intérieur du sprite (changement d'apparence), comme par exemple un personnage qui marche, ou un vaisseau dont on verrait le moteur souffler, ou encore un hélico avec son hélice qui tourne.
Le problème est là, dés qu'on change les images, et ce n'est pas seulement le scale qui est en cause, c'est l'arrivée d'une image sur le sprite.

Ici tu ne verras pas le scene2D scintiller, car il n'y a pas de changements d'images.
Teste avec un perso qui marche tu verras.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites EmptyVen 3 Fév 2012 - 9:08

C'est bien ce que j'ai décrit dans mon post. Enlever l'apostrophe devant la ligne 22 montre le scintillement car le SPRITE repasse en (0,0), et enlever l'apostrophe devant la ligne 17 en laissant celui devant la ligne 22 montre le problème de SCALE avec l'effacement du SPRITE. C'est pourquoi je parle de bug en en appelle à Jack !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





question sur les sprites Empty
MessageSujet: Re: question sur les sprites   question sur les sprites Empty

Revenir en haut Aller en bas
 
question sur les sprites
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dimensions des sprites
» Sprites
» Copier des sprites
» Changer le Z-order des sprites
» défilement des sprites

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: