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.
PANGINE2D Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
PANGINE2D Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

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

» Décompilation
PANGINE2D Emptypar JL35 Mar 12 Nov 2024 - 19:57

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

» traitement d'une feuille excel
PANGINE2D Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
PANGINE2D Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
PANGINE2D Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
PANGINE2D Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
PANGINE2D Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
PANGINE2D Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
PANGINE2D Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
PANGINE2D Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
PANGINE2D Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
PANGINE2D 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 :
SSD interne Crucial BX500 2,5″ SATA – 500 ...
Voir le deal
29.99 €

 

 PANGINE2D

Aller en bas 
+3
Jack
Jicehel
Jean Claude
7 participants
Aller à la page : 1, 2, 3, 4, 5  Suivant
AuteurMessage
Jean Claude

Jean Claude


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

PANGINE2D Empty
MessageSujet: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 13:29

Bonjour à tous,

J'ai commencé à fabriquer un code aves PANGINE2G et je dois dire que c'est un peu galère.
L'éditeur ne déclenche aucun message d'erreur, il faut donc être très vigilant dans l'écriture du code.
si le SCENE2D n’apparaît pas c'est qu'il y a une erreur.
La coloration syntaxique n'est pas implémentée pour tous les mots-clés.
Je comprend qu'il est inutile pour le moment d'améliorer l'éditeur, surtout si je suis le seul à m'en servir et qu'il n'est pas certain que je continue.

Mais je n'ai pas encore déclaré forfait, car tous les mots-clés du PDF fonctionnent parfaitement.


@Jack,

Je n'ai pas réussi à faire déplacer un SPRITE en utilisant SCANCODE.
Je voudrais pouvoir déplacer un sprite sans bouger l'image de fond.
Pourrais-tu donner un exemple ?

voir ce code qui ne marche pas
Code:
' image du fond
caption " X "
file_load "image/espace.bmp"
width 800:height 800
dim nt%,x%,y%
label start,fin :' on_click start
' création d'un prite animé
SPRITE_ANIMATED 1
SPRITE_ANIMATED_FILE_LOAD 1,1,9,"image/vaisseau.bmp"
sprite_position 1,380,700

rotate(1,2,9)

' input nt%
gosub start



end
rem ============================================================================

start:
  while scancode=38
      y%=y%-1
      sprite_position 1,380,y%
  end_while
return

sub rotate(nsp%,choix%,nbanim%)
    ' 1 => HAUT/DROITE ' 2 => HAUT ' 3 => HAUT/GAUCHE ' 4 => GAUCHE
    ' 5 => BAS/GAUCHE  ' 6 => BAS  ' 7 => BAS/DROITE  ' 8 => DROITE
    sprite_animated_frames nsp%,choix%,nbanim%
end_sub


fin:
terminate
return

A+

PS: Si tu as besoin des images fait le moi savoir


Dernière édition par Jean Claude le Mar 16 Juin 2015 - 7:29, édité 1 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 14:13

Si tu n'as pas de réponse, je regarderais ça ce soir après mangé (Je mange presque aussitôt après être rentré chez moi le soir  Wink ) mais je pense que le problème est dans la structure de ton programme.

En principe on fait plutôt une procédure événementielle pour détecter l'appuie sur une touche ou on utilise un timer et on regarde si une touche est enfoncée.

Là, ton système est particulier tu as une boucle qui tourne tant que le scancode = une valeur (38)

En principe on utiliserait plutot par exemple dans la fin de ton programme (à la place de) :
Code:
 input nt%
gosub start

Code:

' ****************************** COMMANDES CLAVIER **************************
dim esc,cesc : cesc=27 : ' * TOUCHE "ESC"  ==> MET FIN AU PROGRAMME:... 27  *
dim tfg,ctfg : ctfg=37 : ' * FLÈCHE GAUCHE ==> DEPLACER À GAUCHE:...... 37  *
dim tfd,ctfd : ctfd=39 : ' * FLÈCHE DROITE ==> DEPLACER À DROITE:...... 39  *
 ***************************************************************************

...

' On détecte le changement d'état des touches
on_key_down 0,t1
timer t_principal : timer_interval t_principal,temps% : on_timer t_principal, boucle_principale

end

t1:
  if key_down_code=cesc then esc=1
  if key_down_code=ctfg then tfg=1
  if key_down_code=ctfd then tfd=1
return



boucle_principale:

timer_off t_principal
set_focus 0
if esc = 1 then gosub quitte
if tfg = 1 then y%=y%-1
if tfg = 1 then y%=y%+1
 
sprite_position 1,380,y%
timer_on t_principal
return

Tu dois gérer le laché de touche. Soit tu oblige l'utilisateur a relacher et réappuyer pour se déplacer à gauche ou a droite, soit tu gère le key_up pour vérifier si la touche est toujours enfoncée.

Voilà, je te donne le principe rapidos sans tester par ce qu'ici je ne peux pas mais ça doit te mettre sur la voie
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 15:19

Dis moi si tu y arrives avec ce principe et si tu n'y arrives pas, poste moi tes images et je te ferais le code complet pour diriger ton sprite ce soir.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 15:57

Merci Jicehel,

c'est bien gosub start, qui pose problème. J'ai remplacé par on_key_down, start et c'est reparti.
De plus input at% est apparemment incontournable avant end.

Bon j'y retourne. Very Happy

A+


Dernière édition par Jean Claude le Lun 15 Juin 2015 - 18:27, édité 1 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 16:45

Tiens moi au courant si tu bloques ou s'il y a un truc que tu ne comprends pas.
Ca c'est un domaine ou je ne me débrouille pas trop mal Wink
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 18:25

Voici le résultat de ma première journée avec PANGINE2D

vous trouverez sur mon Webdav à l'intérieur du dossier JEU_EN_2D, => ESSAI_PANGINE.zip.
faite tourner nouveau1.bas avec l'editeur qui est dans le zip

J' ai un problème de scintillement, si quelqu'un à une idée, je suis preneur.

Pour le moment, ça va pas trop mal....

A+
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 21:16

Ton problème de scintillement vient du fait qu'à chaque fois que l'utilisateur appuie sur une touche de direction (flèche), tu recharges le fichier contenant l'image du Sprite, même s'il n'y a pas de changement de direction.
Il ne faut recharger le fichier qu'en cas de changement de direction, ou encore mieux, tu charges une fois pour toutes 4 Sprites (de 1 à 4) et tu ne rends visible que le Sprite qui se déplace, et tu rends invisible les 3 autres.
Je n'ai pas essayé, mais cela m'étonnerait que tu aies encore du scintillement, celui ci étant du à une perte de temps à aller rechercher un fichier et à le recharger.
Faire un jeu vidéo n'est pas si facile. Courage, je suis attentif à ce que tu fais et je peux t'aider.

_________________
PANGINE2D Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

PANGINE2D Empty
MessageSujet: re   PANGINE2D EmptyLun 15 Juin 2015 - 23:02

Là, Jean Claude, tu me bluffes !
cheers
Continues, j' ai hâte de voir la suite.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 23:02

Moi, je ne comprends pas avec ton code j'ai un comportement bizarre. Si je clique sur la fenêtre, ça ferme le programme et d'autre part, (ce n'est pas lié à ton programme mais mon scan_code reste toujours à 255 alors que le key_down_code change bien. Je suis sous Windows 8 avec écran tactile. Ca a peut être un rapport.
Ce n'est pas la première fois que je constate ce dysfonctionnement et je suis souvent obligé de modifier les programmes pour les faire fonctionner.
Pour moi ton programme ne marche pas mais ce n'est pas lié à ton programme mais à quelque chose dans ma config que Panoramic ou Windows a du mal à gérer.
Je vous écris une version du programme qui fonctionne pour moi, mais j'aimerais que d'autres testent le programme et me disent s'ils ont le même problème de scancode qui reste à 255

Même si c'est juste pour moi, si ça marche bien pour toi aussi, veux tu bien continuer avec les KEY_DOWN_CODE plutôt que les scancode ? (Ca m'évite d'avoir à modifier Wink )
Code:
' image du fond
caption " X "
' width 800:height 800
dim at%,x%,y%,vit%,a_v%
label start,fin
' on_click fin
' création d'un sprite simple
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8

sprite_position 7,380,700
a_v% = 7 : SPRITE_SHOW 7
y%=700 : x%=380 : vit%=8
file_load "image/espace.bmp"

on_key_down 0,start

END
rem ============================================================================
start:
 if KEY_DOWN_CODE=97 then move(1)
 if KEY_DOWN_CODE=40 or KEY_DOWN_CODE=98 then move(2)
 if KEY_DOWN_CODE=99 then move(3)
 if KEY_DOWN_CODE=37 or KEY_DOWN_CODE=100 then move(4)
 if KEY_DOWN_CODE=39 or KEY_DOWN_CODE=102 then move(5)
 if KEY_DOWN_CODE=103 then move(6)
 if KEY_DOWN_CODE=38 or KEY_DOWN_CODE=104 then move(7)
 if KEY_DOWN_CODE=105 then move(8)
 if KEY_DOWN_CODE=27 then gosub fin
 if KEY_DOWN_CODE=32 then tir()
return

tir()

end_sub

sub move(nsp%)

    if nsp%=1 then x%=x%-vit% : y%=y%+vit%
    if nsp%=2 then y%=y%+vit%
    if nsp%=3 then x%=x%+vit% : y%=y%+vit%
    if nsp%=4 then x%=x%-vit%
    if nsp%=5 then x%=x%+vit%
    if nsp%=6 then x%=x%-vit% : y%=y%-vit%
    if nsp%=7 then y%=y%-vit%
    if nsp%=8 then x%=x%+vit% : y%=y%-vit%
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
    sprite_position nsp%,x%,y%
end_sub



fin:
terminate
return
Revenir en haut Aller en bas
Invité
Invité




PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyLun 15 Juin 2015 - 23:20

Pour ce qui concerne le scancode, j'ai eu le problème une ou deux fois.
Finalement j'ai relancé la machine, et le problème a disparu.

Il doit y avoir quelque chose qui s’esquinte avec le temps, mais mystère ...!
Revenir en haut Aller en bas
papydall

papydall


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 0:52

Hello Jean Claude

Pour participer  j’ai modifié un peu le code :
Remplacement de la série de IF par CASE.
Et codage du mode « Enroule » :  si le sprite sort de la zone , il réapparait de l'autre côté
Ça donne ce code

Code:

rem ============================================================================
caption " X "
dim at%,x%,y%,vit%,a_v%
label start

' création d'un sprite simple
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8

sprite_position 7,380,700
a_v% = 7 : SPRITE_SHOW 7
y% = 700 : x% = 380 : vit% = 8
file_load "image/espace.bmp"

on_key_down 0,start

END
rem ============================================================================
' Touches du panneau numérique
start:
 if KEY_DOWN_CODE = 97 then move(1)                         : ' 1 End
 if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then move(2)   : ' 2 Bas
 if KEY_DOWN_CODE = 99 then move(3)                         : ' 3 PgDn
 if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then move(4)  : ' 4 gauche
 if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then move(5)  : ' 6 droite
 if KEY_DOWN_CODE = 103 then move(6)                        : ' 7 Home
 if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7)  : ' 8 haut
 if KEY_DOWN_CODE = 105 then move(8)                        : ' 9 PgUp
 if KEY_DOWN_CODE = 27 then terminate                       : ' Echap
 if KEY_DOWN_CODE = 32 then tir()                           : ' space
return
rem ============================================================================
SUB tir()
' A compléter
end_sub
rem ============================================================================
sub move(nsp%)
    select nsp%
        case 1 : x% = x% - vit% : y% = y% + vit%
        case 2 : y% = y% + vit%
        case 3 : x% = x% + vit% : y% = y% + vit%
        case 4 : x% = x% - vit%
        case 5 : x% = x% + vit%
        case 6 : x% = x% - vit% : y% = y% - vit%
        case 7 : y% = y% - vit%
        case 8 : x% = x% + vit% : y% = y% - vit%
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
end_sub
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 1:13

Et il y a aussi le mode limité aux bords, bien sûr
Code:
rem ============================================================================
caption " X "
dim at%,x%,y%,vit%,a_v%, taille%
label start

' création d'un sprite simple
SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8

y% = 700 : x% = 380 : vit% = 8 : a_v% = 7  : taille% = 64
sprite_position a_v%,x%, y%  : SPRITE_SHOW a_v%

file_load "image/espace.bmp"

on_key_down 0,start

END
rem ============================================================================
' Touches du panneau numérique
start:
 if KEY_DOWN_CODE = 97 then move(1)                         : ' 1 End
 if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then move(2)   : ' 2 Bas
 if KEY_DOWN_CODE = 99 then move(3)                         : ' 3 PgDn
 if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then move(4)  : ' 4 gauche
 if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then move(5)  : ' 6 droite
 if KEY_DOWN_CODE = 103 then move(6)                        : ' 7 Home
 if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7)  : ' 8 haut
 if KEY_DOWN_CODE = 105 then move(8)                        : ' 9 PgUp
 if KEY_DOWN_CODE = 27 then terminate                       : ' Echap
 if KEY_DOWN_CODE = 32 then tir()                           : ' space
return
rem ============================================================================
SUB tir()
' A compléter
end_sub
rem ============================================================================
sub move(nsp%)
    select nsp%
        case 1 : x% = x% - vit% : y% = y% + vit%
        case 2 : y% = y% + vit%
        case 3 : x% = x% + vit% : y% = y% + vit%
        case 4 : x% = x% - vit%
        case 5 : x% = x% + vit%
        case 6 : x% = x% - vit% : y% = y% - vit%
        case 7 : y% = y% - vit%
        case 8 : x% = x% + vit% : y% = y% - vit%
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
'    if x% < 0  then x% = screen_x
'    if x% > screen_x then x% = 0
'    if y% < 0 then y% = screen_y
'    if y% > screen_y then y% = 0
    
' Le mode LIMITES : si le sprite arrive au bord de l'écran, il se bloque
    if x% < (0-10)  then x% = 0 - 10
    if x% > ( screen_x - taille% - 10)  then x% = screen_x - taille% - 10
    if y% < (0-10) then y% = 0 - 10
    if y% > (screen_y - taille% -20) then y% = screen_y - taille%  - 20
    sprite_position nsp%,x%,y%
end_sub
rem ============================================================================



Dernière édition par Jicehel le Mar 16 Juin 2015 - 8:08, édité 1 fois
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

PANGINE2D Empty
MessageSujet: re   PANGINE2D EmptyMar 16 Juin 2015 - 1:44

J' aime bien la vs de Papydall,
elle peut permettre de changer de niveau en changeant le fond...
Revenir en haut Aller en bas
papydall

papydall


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 2:47

J’ai codé la SUB Tir()
Ça permet de tirer une balle dans l'une des 8 directions du sprite par la touche ESPACE.
Pour cela, on a besoin d’un sprite balle.
Comme je n’en ai pas, j’ai utilisé cette balle comme sprite (juste pour le test) et ça marche

PANGINE2D Balle210 < ---- Click-droit puis Enregistrer l'image sous balle.bmp

Code:

rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"
dim at%,x%,y%,vit%,a_v%
dim pi : pi = acos(-1)
dim d  : d = pi/2  : ' direction (c'est le cap) de départ du sprite (vers le haut)
label start

SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8

SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' une balle

sprite_position 7,380,700
a_v% = 7 : SPRITE_SHOW 7
y% = 700 : x% = 380 : vit% = 8
'  sprite_position 9,x%,y%
file_load "image/espace.bmp"

on_key_down 0,start

END
rem ============================================================================
' Touches du panneau numérique
start:
 if KEY_DOWN_CODE = 97 then move(1)                         : ' 1 End
 if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then move(2)   : ' 2 Bas
 if KEY_DOWN_CODE = 99 then move(3)                         : ' 3 PgDn
 if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then move(4)  : ' 4 gauche
 if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then move(5)  : ' 6 droite
 if KEY_DOWN_CODE = 103 then move(6)                        : ' 7 Home
 if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7)  : ' 8 haut
 if KEY_DOWN_CODE = 105 then move(8)                        : ' 9 PgUp
 if KEY_DOWN_CODE = 27 then terminate                       : ' Echap
 if KEY_DOWN_CODE = 32 then tir()                           : ' space
return
rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
    dim_local i
    sprite_show 9
    for i = 1 to screen_x step 25  : ' step à modifier pour gérer la vitesse du tir
        sprite_position 9,x%+i*cos(d),y%-i*sin(d) : ' Mouvement de la balle du tir
    next i
    sprite_hide 9
END_SUB
rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit% : y% = y% + vit%  : d = 5*pi/4
        case 2 : y% = y% + vit%                   : d = 3*pi/2
        case 3 : x% = x% + vit% : y% = y% + vit%  : d = 7*pi/4
        case 4 : x% = x% - vit%                   : d = pi
        case 5 : x% = x% + vit%                   : d = 0
        case 6 : x% = x% - vit% : y% = y% - vit%  : d = 3*pi/4
        case 7 : y% = y% - vit%                   : d = pi/2
        case 8 : x% = x% + vit% : y% = y% - vit%  : d = pi/4
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================


Ça commence à devenir intéressant  cheers


Dernière édition par papydall le Mar 16 Juin 2015 - 3:14, édité 3 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

PANGINE2D Empty
MessageSujet: re   PANGINE2D EmptyMar 16 Juin 2015 - 3:01

@ Papydall,

pour les tirs vers la droite et le bas, il faudrait modifier
le point de départ de la balle.
Elle part de derrière l' avion/vaisseau... Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

PANGINE2D Empty
MessageSujet: re   PANGINE2D EmptyMar 16 Juin 2015 - 3:04

Avec ces fonctions et les sub de klaus, il doit être possible de refaire
un super pack-man...
lol!
Revenir en haut Aller en bas
papydall

papydall


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 3:37

ygeronimi a écrit:
@ Papydall,

pour les tirs vers la droite et le bas, il faudrait modifier
le point de départ de la balle.
Elle part de derrière l' avion/vaisseau...  

Tout à fait et ce n’est pas dur de le faire.
Mon intention était de gérer les directions des tirs.
Peut-être quelque chose comme ceci :

Code:

rem ============================================================================
caption "Utilisez les touches du panneau numérique (1,2,3,4,6,7,8,9) ** SPACE pour tirer ** ESC pour sortir"
dim at%,x%,y%,vit%,a_v%
dim pi : pi = acos(-1)
dim d  : d = pi/2  : ' direction (c'est le cap) de départ du sprite (vers le haut)
dim dx,dy : dx = 25 : dy = 0
label start

SPRITE 1 : SPRITE_FILE_LOAD 1,"image/VBG.bmp" : SPRITE_HIDE 1
SPRITE 2 : SPRITE_FILE_LOAD 2,"image/VB.bmp"  : SPRITE_HIDE 2
SPRITE 3 : SPRITE_FILE_LOAD 3,"image/VBD.bmp" : SPRITE_HIDE 3
SPRITE 4 : SPRITE_FILE_LOAD 4,"image/VG.bmp"  : SPRITE_HIDE 4
SPRITE 5 : SPRITE_FILE_LOAD 5,"image/VD.bmp"  : SPRITE_HIDE 5
SPRITE 6 : SPRITE_FILE_LOAD 6,"image/VHG.bmp" : SPRITE_HIDE 6
SPRITE 7 : SPRITE_FILE_LOAD 7,"image/VH.bmp"  : SPRITE_HIDE 7
SPRITE 8 : SPRITE_FILE_LOAD 8,"image/VHD.bmp" : SPRITE_HIDE 8

SPRITE 9 : SPRITE_FILE_LOAD 9,"image/balle.bmp" : SPRITE_HIDE 9  : ' une balle

sprite_position 7,380,700
a_v% = 7 : SPRITE_SHOW 7
y% = 700 : x% = 380 : vit% = 8
'  sprite_position 9,x%,y%
file_load "image/espace.bmp"

on_key_down 0,start

END
rem ============================================================================
' Touches du panneau numérique
start:
 if KEY_DOWN_CODE = 97 then move(1)                         : ' 1 End
 if KEY_DOWN_CODE = 40 or KEY_DOWN_CODE = 98 then move(2)   : ' 2 Bas
 if KEY_DOWN_CODE = 99 then move(3)                         : ' 3 PgDn
 if KEY_DOWN_CODE = 37 or KEY_DOWN_CODE = 100 then move(4)  : ' 4 gauche
 if KEY_DOWN_CODE = 39 or KEY_DOWN_CODE = 102 then move(5)  : ' 6 droite
 if KEY_DOWN_CODE = 103 then move(6)                        : ' 7 Home
 if KEY_DOWN_CODE = 38 or KEY_DOWN_CODE = 104 then move(7)  : ' 8 haut
 if KEY_DOWN_CODE = 105 then move(8)                        : ' 9 PgUp
 if KEY_DOWN_CODE = 27 then terminate                       : ' Echap
 if KEY_DOWN_CODE = 32 then tir()                           : ' space
return
rem ============================================================================
' Tirer une balle dans l'une des 8 directions possibles du sprite
SUB tir()
    dim_local i
    sprite_show 9
    for i = 10 to screen_x step 50  : ' step à modifier pour gérer la vitesse du tir
        sprite_position 09,x%+dx+i*cos(d),y%+dy-i*sin(d) : ' Mouvement de la balle du tir
    next i
    sprite_hide 9
END_SUB
rem ============================================================================
' d est la direction (le cap) que prendra le sprite
SUB move(nsp%)
    select nsp%
        case 1 : x% = x% - vit% : y% = y% + vit%  : d = 5*pi/4 : dx = 25 : dy = 30
        case 2 : y% = y% + vit%                   : d = 3*pi/2 : dx = 25 : dy = 30
        case 3 : x% = x% + vit% : y% = y% + vit%  : d = 7*pi/4 : dx = 25 : dy = 30
        case 4 : x% = x% - vit%                   : d = pi     : dx = 0  : dy = 30
        case 5 : x% = x% + vit%                   : d = 0      : dx = 25 : dy = 30
        case 6 : x% = x% - vit% : y% = y% - vit%  : d = 3*pi/4 : dx = 0  : dy = 0
        case 7 : y% = y% - vit%                   : d = pi/2   : dx = 25 : dy = 0
        case 8 : x% = x% + vit% : y% = y% - vit%  : d = pi/4   : dx = 25 : dy = 30
    end_select
    if nsp% <> a_v% then sprite_hide a_v% : a_v% = nsp%  : sprite_show nsp%
' Le mode ENROULE : si le sprite sort de la zone , il réapparait de l'autre côté
    if x% < 0  then x% = screen_x
    if x% > screen_x then x% = 0
    if y% < 0 then y% = screen_y
    if y% > screen_y then y% = 0
    sprite_position nsp%,x%,y%
END_SUB
rem ============================================================================

Laissons la part de notre ami Jean Claude.
Lui, il n’aime pas trop le travail mâché ! Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 7:50

Bonjour à tous, je découvre vos réponses à l'instant.
Hé bé, ça réagit dans les chaumières... Very Happy

Je n'ai essayé aucun de vos codes pour le moment, ce que je vais faire dans l'heure qui vient.

Papydall a écrit:
Laissons la part de notre ami Jean Claude.
Lui, il n’aime pas trop le travail mâché !

C'est à la fois vrai et faux: J'ai besoin d'écrire moi-même le code pour assimiler, mais un coup de main est souvent le bienvenue pour éviter un découragement.

Jack a écrit:
Faire un jeu vidéo n'est pas si facile....

A qui le dis-tu ! Very Happy
Je n'en ai pas fait beaucoup, et un seul en 2D. Merci pour tes conseils et encouragements.


Bon, je vais regarder vos copies, messieurs, j'espère en tirer des enseignements.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 8:12

Maintenant que tu as pris en main l'animation, tu devrais commencer à implémenter la gestion des sprites version Klaus (tout ou partie) pour te faciliter la vie au niveau des détections de collisions entre les sprites entre autre entre les tirs et les objets (Asteroids, autres vaisseaux ou autre cibles de ton choix).
De toute façon tu as du monde derrière toi pour t'aider dans la création de ton jeu... Smile
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 9:54

Ho que non Jicehel !
Si j'explore PANGINE2D, c'est justement pour voir si l'on peut s'en passer. Comme Klaus l'a justement signalé, la bête est un peu lourde.  PANGINE2D présente l'avantage d'avoir des fonctions d'animations de sprite et je préfère attendre de voir si Jack a l'intention de gérer les collisions.
Néanmoins, les SUB(s) de Klaus vont me servir pour m'en inspirer.

Par contre je n’oublierai pas de vous solliciter vous tous et Jack. Very Happy

@Papydall,
J'ai repris ton code (avec le tir) comme base car c'est propre et ça fonctionne très bien cheers
J'ai centré le sprite "balle" sur le vaisseau comme point de départ du tir et retardé son apparition pour que ça parte de l'avant du vaisseau.
J'ai été contraint d'utiliser OFF_KEY_DOWN 0 pendant la boucle du tir, sinon si on change la direction du vaisseau avant que le tir soit terminé la "balle" change de direction. Et surtout pour éviter que si on fait un deuxième tir avant la fin de la boucle, le jeu ne s'arrête.

Au début je n'était pas parti sur un jeu (c'était des essais), mais vu la tournure des événements, ça en prend le chemin.

En fin d'après-midi je mettrai à jour sur le Webdav.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 10:19

Oui mais tu peux t'en inspirer à ta sauce pour gérer les sprites (la hauteur, la largeur)
Si tu te fais une procédure de détection de collision, tu pourra avancer et tu remplaceras plus tard quand Jack l'aura mis en place
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 14:24

Je viens de remplacer le zip ESSAI_PANGINE2D sur mon Webdav.

Pour simplifier, je l'ai déposé en première page (plus besoin d'aller le chercher dans jeu_en 2d)

Le sujet c'est essai6.bas.
J'ai ajouté un astéroïde qui dérive dans l'espace (Un sprite animé)
Le but sera bien entendu de le détruire, quand je m'y attaquerai.

Il y a une chose sur laquelle je bloque, quand on fait un tir, l'astéroïde n'avance plus pendant la durée du tir.

Au passage essayez essai2.bas, c'est un essai sur le scrolling.

Sinon, prochaine étape => la collision entre le missile et l'astéroïde et/ou avec le vaisseau.

@Ygeronimi,
Peux-tu m'expédier d'urgence une boite de Paracétamol". drunken drunken drunken

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 14:43

Je n'ai pas regardé ton code pour les raisons que j'ai déjà exposé mais je te donne la méthode pour un jeu.
Tout ton jeu dois se baser sur un principe de tours / cycles

Tu te dis qu'à chaque tour, tu va prendre en compte tes différents éléments ou incrémenter un compteur pour les éléments qui ne bougent ou agissent qu'au bout d'un certain nombre de tours/cycles.

Tu as donc besoin d'un timer principal qui va rythmer ton jeu.

A chaque tour, le timer appellera ta boucle principale dans laquelle tu verras si l'utilisateur a appuyé sur une touche pour faire avancer le vaisseau. Tu regarderas s'il a déclenché un nouveau tir et tu fera avancer les tirs déjà effectués en testant si éventuellement ils rentre en collision avec ton astéroïde et tu fera se déplacer ton astéroïde. Si le vaisseau bouge 2 fois moins vite que les tirs et si l’astéroïde bouge 4 fois moins vite, tu utilise des compteurs que tu incrémente d'un à chaque tour et que tu remets à 0 quand ils ont atteint ou dépasser la valeur maximale que tu auras fixé

Là tu auras l'ossature de ton jeu.
Revenir en haut Aller en bas
papydall

papydall


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

PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D EmptyMar 16 Juin 2015 - 16:46

Jean Claude a écrit:
@Ygeronimi,
Peux-tu m'expédier d'urgence une boite de Paracétamol".        

Tu n’en a pas besoin !
Tu as ygeronimi en personne, pourquoi veux-tu son paracétamol ?
Klaus, Jicehel, Ygeronimi, JL35, Cosmos70, Nardo26, Pascal1000, Minibug, Papydall , et tous les autres peuvent t’être plus bénéfiques que le Paracétamol.

Ils peuvent apporter mieux que le Doliprane, non ?
Alors demande au secours (tu n’en a même pas besoin de crier), et tu te verras entourer des belles âmes !

PANGINE2D Cool_011
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

PANGINE2D Empty
MessageSujet: re   PANGINE2D EmptyMar 16 Juin 2015 - 17:40

@ Papydall,

Sur ce coup là, je préfère lui envoyer un carton de paracétamol.
Il lui sera plus utile que ma personne...
lol!

Ceci dit d' autres sont plus spécialistes des jeux et pourront certainement l' aider.
Revenir en haut Aller en bas
Contenu sponsorisé





PANGINE2D Empty
MessageSujet: Re: PANGINE2D   PANGINE2D Empty

Revenir en haut Aller en bas
 
PANGINE2D
Revenir en haut 
Page 1 sur 5Aller à la page : 1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» PANGINE2D alpha 3 du 21 juin 2015
» Je cherche PANGINE2D
» Question à Jack sur PANGINE2D
» Chasseur d'astéroïdes (PANGINE2D)
» PANGINE2D alpha 2 du 19 juin 2015

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