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
» PANORAMIC V 1
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Marc Aujourd'hui à 19:51

» Gestion d'un système client-serveur.
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Klaus Aujourd'hui à 16:52

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Froggy One Aujourd'hui à 11:16

» @Jack
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Un exemple de gestion d'un sprite vaisseau avec panoramic Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

 

 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
» Probleme avec selection de sprite sur une planche
» Bug avec la couleur transparente (noir) d'un sprite ?
» Générer et tirer un SPRITE avec la souris

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: