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.
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Un exemple de gestion d'un sprite vaisseau avec panoramic 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

 

 Un exemple de gestion d'un sprite vaisseau avec panoramic

Aller en bas 
AuteurMessage
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Un exemple de gestion d'un sprite vaisseau avec panoramic Empty
MessageSujet: Un exemple de gestion d'un sprite vaisseau avec panoramic   Un exemple de gestion d'un sprite vaisseau avec panoramic EmptySam 13 Nov 2010 - 3:57

C'est la premiere fois que je fais un programme avec panoramic alors autant que je le teste pour quelque chose qui me plait, comme l'espace et les vaisseaux Wink
Voici donc un exemple de ce que j'ai pu sortir, je suis débutant en panoramic alors s'il y a des améliorations dans la façon d'écrire le code je suis preneur Wink
Si je l'ai commenté autant c'est juste pour servir d'exemple aux vrais débutants qui découvrent la programmation.


Code:

' Exemple de gestion d'un vaisseau
' Cet exemple s'affiche en 800 x 600, agrandissez la fenetre pour bien le voir si besoin.
' Touches de déplacement clavier pour jouer et espace pour quitter.
REM Cest mon premier test de panoramic ;)

'  --------- définition du nom des routines de gestion du déplacement ---------
label gauche
label droite
label bas
label haut

' ------- déclaration des variables de déplacement du vaisseau ---------
Dim x,y

' Positionnement du vaisseau au centre d'écran (800 x 600)
x=400
y=300

' Création de la scene 2D où va s'afficher le vaisseau
scene2D 1

' Dimentionnement de la scène à 800x600 pixels
width 1,800
height 1,600

' Chargement de l'image de fond (un espace étoilé)
file_load 1,"stars.bmp" : rem image de fond espace étoilé

' agrandissement de mon image de fond qui était plus petite.
stretch_on 1

' Création du vaisseau numéro 1
sprite 1

' Chargement de l'image du vaisseau
sprite_file_load 1,"vaisseau_d.bmp"

' Début de la boucle de gestion des touches du clavier.
' La boucle se terminera dés que la touche ESC (echap) sera pressée (scancode 27)
while scancode<>27
if scancode=37 then gosub gauche : rem fleche gauche
if scancode=39 then gosub droite : rem fleche droite
if scancode=40 then gosub bas : rem fleche bas
if scancode=38 then gosub haut : rem fleche haut

' Mise à jour de la position du vaisseau
sprite_x_position 1,x
sprite_y_position 1,y

' Fin de la boucle de gestion des touches.
end_while

' fin du programme, effacement en mémoire.
terminate
end

' Routine qui modifie la position X vers la gauche du vaisseau.
' Charge aussi l'image du vaisseau le représentant dirigé vers la gauche.
gauche:
sprite_file_load 1,"vaisseau_g.bmp" : rem image vaisseau vers la gauche
x=x-1

' On s'assure que la position X reste dans le cadre.
if x<0 then x=0

' Fin de la routine, les autres ne sont pas commentée, c'est même chose.
return

droite:
sprite_file_load 1,"vaisseau_d.bmp" : rem image vaisseau vers la droite
x=x+1
if x>768 then x=768
return

bas:
y=y+1
if y>568 then y=568
return

haut:
y=y-1
if y<0 then y=0
return

Pour les images du vaisseau, vue de gauche et vue de droite, un petit coup du logiciel "paint" de windows et vous ferez deux petites images en 32x32 pixels (quelques traits, juste pour tester) il faut que le fond de l'image soit noir, donc dessinez le vaisseau avec une couleur de contour différente du noir.
Il faut que les images soient dans le dossier de panoramic (pour l'exemple de mon code).

Vous remarquerez que l'animation scintille, lors de l'execution du programme, c'est normal, c'est à cause du chargement des images, pour éviter cela il faut compiler le code sous forme d'application, afin que les images fassent partie intégrante du programme.
C'est dans le menu : Fichier/Application(exe)
Puis double-cliquez sur le programme qui a été compilé (dans le dossier de panoramic)

Pour plus de fun, rien n'empeche que les images du vaisseau soient en 3D (vues en 2D) extraites du net.

EDIT :
J'ai remplacé la touche espace par la touche Echap (esc) qui est bien plus pratique pour quitter le jeu, espace va servir au tir prochainement.
(J'avais mis espace juste pour tester le prog)

EDIT 2: Remplacement des REM par l'appostrophe (plus pratique).
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Un exemple de gestion d'un sprite vaisseau avec panoramic Empty
MessageSujet: Re: Un exemple de gestion d'un sprite vaisseau avec panoramic   Un exemple de gestion d'un sprite vaisseau avec panoramic EmptySam 13 Nov 2010 - 21:07

Nouvelle version avec un timer à la place du while, le résultat est une progression du vaisseau plus logique, le vaisseau va très lentement si la vitesse est de 1 contrairement au code précédent avec le while où son allure était trop rapide.

EDIT :
- La vitesse variable à été ajoutée
- Le traversement (ça se dit ?) d'écran a été ajouté (vaisseau apparaît de l'autre coté)
- La téléportation a été ajoutée (touche c minuscule)
- le tir a été ajouté (touche t minuscule)

Code:
' Exemple de gestion d'un vaisseau
' Cet exemple s'affiche en 800 x 600, agrandissez la fenetre pour bien le voir si besoin.

' Déplacements : Flèches clavier (haut,bas,gauche,droite)
' Tir laser : touche t minuscule
' Téléportation (cloack) : touche c minuscule
' Vitesse 1 : Touche & (voir au dessus du A)
' Vitesse 2 : Touche é
' Vitesse 3 : Touche "
' Quitter : Touche ESC (echap)

REM Cest mon premier test de panoramic ;)

Dim x,y
Dim laser_x,laser_y
Dim i
Dim dir$
Dim vitesse

x=400
y=300
vitesse=1

label cree_vaisseau
label gauche
label droite
label bas
label haut
label laser
label teleporte
label tests
label affiche

scene2D 1
width 1,800
height 1,600
file_load 1,"stars.bmp" : rem image de fond espace étoilé
stretch_on 1

gosub cree_vaisseau

sprite 2
sprite_file_load 2,"laser.bmp"
sprite_hide 2

dir$="droite"

timer 2
timer_interval 2,1
on_timer 2, affiche
end

affiche:
sprite_x_position 1,x
sprite_y_position 1,y
if dir$="droite"
laser_x=x+32
laser_y=y+16
end_if
if dir$="gauche"
laser_x=x-56
laser_y=y+16
end_if
sprite_position 2,laser_x,laser_y
if scancode<>27 then gosub tests : else : terminate
return

tests:
if scancode=37 then gosub gauche : rem fleche gauche
if scancode=39 then gosub droite : rem fleche droite
if scancode=40 then gosub bas : rem fleche bas
if scancode=38 then gosub haut : rem fleche haut
if scancode=32 then gosub laser : else : sprite_hide 2 :rem tir laser
if scancode=67 then gosub teleporte : rem téléportation du vaisseau
if scancode=49 then vitesse=1
if scancode=50 then vitesse=5
if scancode=51 then vitesse=10
return

gauche:
sprite_file_load 1,"vaisseau_g.bmp" : rem image vaisseau vers la gauche
x=x-vitesse
if x<0 then x=768
dir$="gauche"
return

droite:
sprite_file_load 1,"vaisseau_d.bmp" : rem image vaisseau vers la droite
x=x+vitesse
if x>800 then x=0
dir$="droite"
return

bas:
y=y+vitesse
if y>600 then y=0
return

haut:
y=y-vitesse
if y<0 then y=568
return

laser:
sprite_position 2,laser_x,laser_y
sprite_show 2
return

teleporte:
sprite_hide 2
for i=0 to 9
sprite_scale 1,0.5,0.5
wait 20
next i
sprite_delete 1
gosub cree_vaisseau
x=int(rnd(600))
y=int(rnd(500))
sprite_position 1,x,y
return

cree_vaisseau:
sprite 1
sprite_file_load 1,"vaisseau_d.bmp"
return


Dernière édition par dragonno le Sam 13 Nov 2010 - 22:47, édité 2 fois
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Un exemple de gestion d'un sprite vaisseau avec panoramic Empty
MessageSujet: Re: Un exemple de gestion d'un sprite vaisseau avec panoramic   Un exemple de gestion d'un sprite vaisseau avec panoramic EmptySam 13 Nov 2010 - 22:32

Mise à jour du code Wink

Voilà, je vais l'arreter là pour le moment, vu qu'il n'est pas possible de jouer à deux sur le même clavier (gestion multi-touches absente)
j'ajouterais peut-être des ennemis si j'ai le temps.

On peut déjà s'en inspirer pour développer son propre jeu panoramic dés que cela sera possible : gestion des collision par pixels et par rectangle, jeu multijoueur hotseat ou réseau.

Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Un exemple de gestion d'un sprite vaisseau avec panoramic Empty
MessageSujet: Re: Un exemple de gestion d'un sprite vaisseau avec panoramic   Un exemple de gestion d'un sprite vaisseau avec panoramic EmptyVen 19 Nov 2010 - 0:16

Est-ce que quelqu'un a essayé la dernière version ?
j'aimerais bien un petit retour sur la chose.
Revenir en haut Aller en bas
Contenu sponsorisé





Un exemple de gestion d'un sprite vaisseau avec panoramic Empty
MessageSujet: Re: Un exemple de gestion d'un sprite vaisseau avec panoramic   Un exemple de gestion d'un sprite vaisseau avec panoramic Empty

Revenir en haut Aller en bas
 
Un exemple de gestion d'un sprite vaisseau avec panoramic
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Exemple de gestion des onglets en Panoramic pur
» Un exemple de génération de mélodie avec les fonctions MIDI
» Bug avec la couleur transparente (noir) d'un sprite ?
» Générer et tirer un SPRITE avec la souris
» Outils de récupération et gestion des mots clés Panoramic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: