FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Aujourd'hui à 19:12

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 16:47

» track_bar circulaire
par Klaus Aujourd'hui à 13:54

» API Windows
par Klaus Aujourd'hui à 3:21

» Cartes de voeux, menus, etc.
par JL35 Hier à 17:48

» Mah-Jong européen new-look
par jjn4 Hier à 15:48

» a l'aide klaus
par Minibug Hier à 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Hier à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Petite aide ponctuelle

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Petite aide ponctuelle   Ven 14 Juin 2013 - 9:53

Mince, je voulais avancer un peu mon article avant d'aller au boulot (dans quelques secondes) et je butte, mon sprite ne bouge pas et je ne comprends pas pourquoi (c'est sans doute tout bête mais je ne vois pas ce qui cloche)

Je voudrais bouger un peu le sprite pour le tuto1, mais il reste toujours à la même place ...

Code:
' Tutorial pour créer un Pacman
' Source n°1 : Piloter le Pacman à l'écran

  DIM I  : ' variable temporaire (compteur pour la boucle)
  DIM K% : ' Coefficient pour la démo de déplacement
  DIM MESSAGE$ : ' variable chaine pour y stocker les messages
  DIM X%, Y%  : ' variable mémorisant les coordonnées du pacman

  DIM BORDS_V%,BORDS_H% : BORDS_V% = 38 : BORDS_H% = 16 : ' Taille des bords de la fenêtre

' On créé 4 variables qui définiront les limites de déplacement de notre sprite
  DIM Min_X%, Min_Y% : Min_X% = 0 : Min_Y%=0
  DIM Max_X%, Max_Y% : Max_X% = WIDTH(0) : Max_Y% = HEIGHT(0)
  MESSAGE$ = "Les dimensions de la fenêtre principale sont : (" + STR$(Min_X%) + ";" + STR$(Min_Y%) + ")"
  MESSAGE$ = MESSAGE$ + " ; (" + STR$(Max_X%) + ";" + STR$(Max_Y%) + ")"
  MESSAGE MESSAGE$

' On créé un compteur d'objets qui sera incrémenté par la procedure _OBJ
  DIM Num_Obj% : Num_Obj% = 0 : ' Au départ, il n'y a que la fenêtre principale

' On créé un monde 2D et on lui affecte un numéro
  DIM Num_Scene2D% : INC_OBJ() : Num_Scene2D% = Num_Obj%
  SCENE2D Num_Scene2D% : WIDTH Num_Scene2D%,WIDTH(0)- BORDS_H% :  HEIGHT Num_Scene2D%,HEIGHT(0)- BORDS_V%
' Si l'on voulait charger une image de fond, on écrirait: FILE_LOAD Num_Scene2D%,"NomImage"

' On créé un compteur de sprites qui sera incrémenté par N_SPRITE
  DIM Num_Sprite% : Num_Sprite% = 0 : ' Au départ, il n'y a pas de sprite
 
' On créé un sprite pour notre Pacman
  DIM Num_Pacman%:N_SPRITE(): Num_Pacman% = Num_Sprite%

' On place le sprite au centre de l'écran et on le charge avec l'image
  X% = Max_X%/2 : Y% = Max_Y%/2
  SPRITE_POSITION Num_Pacman%,X%,Y%
  FILE_LOAD Num_Pacman%,"Source1_Pacman.BMP"

' On calcul le Coefficent de déplacement (choix arbitraire)
  IF Max_X% < Max_Y% THEN K% = 0.01 * Max_X% : ELSE : K% = 0.02 * Max_Y%

  FOR I=-2 TO 2 step 0.05
      X% = X% + cos(I)*K% : Y% = Y% + sin(I)*K%
      caption 0,X%
      SPRITE_POSITION Num_Pacman%,X%,Y%
      WAIT 200
  NEXT I

 END : ' Fin du programme principal


 ' ------------------------------------------------
 ' PROCEDURES
 ' ------------------------------------------------
 
 ' INC_OBJ incrémente le nombre d'objets Num_Obj% créés
 SUB INC_OBJ()
  Num_Obj% = Num_Obj%+1
 END_SUB
 
 ' N_SPRITE incrémente le nombre d'objets Num_Sprite% créés
 SUB N_SPRITE()
  Num_Sprite% = Num_Sprite% + 1
  SPRITE Num_Sprite%
 END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 13:02

Personne n'a d'idée sur ce problème ?
C'est sans doute moi qui fait une petite erreur comme ça fait longtemps que je n'ai pas utilisé les sprites, mais je ne vois pas laquelle.

Bon puisque je n'ais pas de réponse je lance un concours pour vous motiver. Le premier qui trouve gagne ma sincère gratitude !!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 542
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 13:07

Bonjour jicehel
je suis le premier a repondre mais je n ai jamais utilise de sprites
bon courage
mindstorm
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 13:14

Je ne peux pas chercher ici au boulot (je dois travailler quand même), mais j'ai cherché ce matin avant de partir et je n'ai pas eu d'éclair de génie. Pourtant le code me parrait très simple, donc l'erreur doit vraiment être toute bête...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 14 Juin 2013 - 14:23

Je crois qu' à force de vouloir être clair ton code est devenu très flou...Very Happy
Je ne vois pas ce qui cloche et pire je ne le comprends pas...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 14:28

Pour moi c'est encore pire car je n'arrive pas à reproduire l'exemple fournit par Jack dans SPRITE (Manuel de référence)

@Bignono,
HELP!

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 14:41

Est-ce que les fonctions du sprite fonctionnent encore dans la version actuelle.
Pourrait-il s'agir d'un bug ? Je ferais des tests basics ce soir si vous ne trouvez pas.

@Ygeronimi: Bon, sinon ça m'ennuit que tu ne comprennes pas ce source Ygeronimi. Normalement, c'est le plus simple, mais il fera parti d'un article qui décrit les fonctions et à quoi elles servent.
Ce premier source sert à montrer :
- comment connaitre la dimension d'une fenêtre et la redimensionner
- comment créer un Scene_2D et le paramètrer (pour pouvoir utiliser les sprites)
- comment créer un sprite, le charger et le faire bouger (dans le premier exemple, il n'y a pas d'autres fonction donc on le fait bouger selon une courbe bidon )

Et c'est tout. Le but est déjà de bien expliquer ça (dans l'article) et de l'illustrer par ce petit code avant d'ajouter la gestion du clavier, de la planche de sprite et le changement d'aspect de sprite en fonction de la direction où il va

Ca c'est le programme de ce que j'ai prévu pour la première partie de l'article sur la création d'un Pacman et en principe c'est censé être clair. Du coup, je me demande si je ne me fourvois pas.

Dans le code affiché, il y a l'affichage de X en haut, mais c'est juste ce dont je me servais pour essayer de debugger et comprendre si je faisais une erreur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 14 Juin 2013 - 14:57

Chez moi je n'ai qu' un scene 2d noir le sprite n' apparaît même pas...scratch
Le problème pour comprendre vient de la multiplication de tes variables, "trop de variables tue la variable".
De ce que j' ai compris, tu veux un scene 2d avec un sprite qui fasse un petit mouvement dans une direction.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 15:01

Ne doit-il pas y avoir un fond (texture) au SCENE-2D ?
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 15:16

@ ygeronimi :  Pour que le sprite apparaisse ygeronimi, tu dois créer une petite image que tu appelles "Source1_Pacman.BMP" (Tu peux faire un carré de couleur ou mettre un autre petit fichier BMP et le renommer en "Source1_Pacman.BMP", le fichier sera fournit avec le source (les fichiers car il y en aura un autre pour le source n°2)

Le sprite s'affiche bien au centre de l'ecan. Le problème semble vraiment se produire dans la boucle (donc seulement 2 variables X et Y dont tu peux afficher les valeur dans la barre de titre par exemple) et le SPRITE_POSITION Num_Pacman%,X%,Y% n'a pas l'air de fonctionner alors que je l'utilise avant la boucle et qu'il positionne bien le sprite au centre de l'écran comme je lui demande. Exclamation

C'est pour ça que je ne comprends pas. Mais encore une fois actuellement, je ne sais pas si j'ai fais une grosse ereur de logique ou s'il y a un bug dans SPRITE_POSITION (qui semble fonctionner puisque la première fois il me bouge bien le sprite)  ShockedQuestionExclamationQuestionShocked
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 15:45

Code:
' Définition des attributs de la fenêtre principale (hauteur-largeur)
Height 0,400
width 0,500

' Création d'un scene 2d
scene2d 1
' définition des attributs du scene2d
' positionnement dans la fenêtre
top 1,0
Left 1,0
' dimensions hauteur-lageur
height 1,height(0)-38
width 1,width(0)-16

' création du sprite
sprite 1

' chargement d'une image dans le sprite
sprite_file_load 1,"carre.bmp"

' définition de la position sur la hauteur
  dim y : y=(height(1)-30)/2
' définition de la position sur la largeur
  dim x : x=(width(1)-30)/2
 
' positionnement du sprite dans le scene2d
sprite_position 1,x,y



' appel de la procédure de mouvement (déplacement de 50px vers votre droite )
deplace_droite()

' fin
end

' procédure
Sub deplace_droite()
  dim_local x%,p%
 
' récupération de la position en x placé dans p%
  p%=sprite_x_position(1)

' boucle de déplacement pixel par pixel
  for x%= 1 to 50
    p%=p%+1 : ' le sprite se déplace de 1 pixel à chaque tour de la boucle
    sprite_x_position 1,p%
    wait 250
  next x%
 
 
End_Sub

Essayes donc çà
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 16:05

En effet ça marche, bravo Ygeronimi. 

Le problème vient donc bien de mon programme. Je chercherais ce soir car je ne vois toujours pas pourquoi ça ne marche pas. En tout cas, ce n'est pas un bug de l'instruction sprite_position puisque en l'utilisant dans ta boucle de déplacement, cela fonctionne.

Quand même, si quelqu'un trouve l'erreur que j'ai faite, je suis preneur.
Si on ne trouve pas, je repartirais du programme d'Ygeronimi en modifiant petit à petit pour identifier l'origine du problème, mais en attendant, je ne suis plus bloqué.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 16:12

Ce code marche et n’a pas besoin de commentaires !
Plutôt si, un petit commentaire tout de même : modifier le chemin qui mène à Rome en ligne 5 !

Code:
dim x,y,i,pi
pi = acos(-1)
scene2d 1: full_space 0 : full_space 1
sprite 1
sprite_file_load 1,"C:\Documents and Settings\micro\Bureau\Test_Image\1.g.bmp"

' deplacement du sprite sur une courbe SINUS
 caption 0,"mouvement sur une courbe SINUS"
  FOR I= 0  TO 14*pi step pi/100
      x = i*30 : y = 200*(1+sin(i))
      SPRITE_POSITION 1,x,y : WAIT 10
  NEXT I
' Déplacement du sprite sur un cercle
caption 0,"Mouvement sur un cercle"
 for i = 0 to 10*pi step pi/100
    x = 200*sin(i) : y = 200*cos(i)
    sprite_position 1, 500+x,300+y : wait 10
 next i
 ' Déplacement du sprite sur un ellipse
caption 0,"Mouvement sur un ellipse"
 for i = 0 to 10*pi step pi/100
    x = 400*sin(i) : y = 250*cos(i)
    sprite_position 1, 500+x,300+y : wait 10
 next i

' Déplacement sur une spirale
caption 0,"Mouvement sur une spirale"
for i = 0 to 10*pi+pi/2 step pi/100
    x = i*10*sin(i) : y = i*10*cos(i)
    sprite_position 1, 500+x,300+y : wait 10
next i

caption 0,"That's All Folks"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 14 Juin 2013 - 16:39

Trouvé !!!!

    Combien tu donnes ?!! lol!lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 14 Juin 2013 - 16:43

Aller j' te la fais gratis !

Cela est dû à un comportement que j' avais déjà signalé.
chaque fois que tu charges une image, le sprite reprend sa place initiale.
Dans ton code, tu charges l' image du sprite après le positionnement.

charge l'image puis place ton sprite.

en plus tu fais file_load numpacman%,"....bmp"
au lieu de sprite_file_load
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 17:29

Gagné Ygeronimi !!
Tu as le droit à toute ma considération (une fois de plus)
C'est ça mon erreur, j'avais oublié que pour les sprites, il fallait utiliser SPRITE_FILE_LOAD.
En rajoutant "SPRITE_" devant dans le source initialement posté, ça marche nickel.

Comme quoi faire des tutos pour aider les autres, ça n'aide pas que les autres .... Very Happy

Merci Ygeronimi
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 19:09

Une fois de plus, ça prouve que le savoir ne vaut rien s’il n’est pas partagé !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Petite aide ponctuelle   Ven 14 Juin 2013 - 19:25

C'est clair Papydall en plus c'est très logique qu'il faille utiliser le SPRITE_ devant puisque les numéros d'objets et le numéros de sprite sont indépendants. Mais bon depuis le temps que je n'avais plus utilisé les sprites, j'avais oublié...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Petite aide ponctuelle   

Revenir en haut Aller en bas
 
Petite aide ponctuelle
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Petite vidéo
» besion d'aide language html lecteur de musique !! (Résolu)
» Aide TC Gold en français
» [résolu]Message d'erreur ... Besoin d'aide !
» Petite séduction

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos projets-
Sauter vers: