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
» Calculatrice
par papydall Hier à 22:54

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Planétarium virtuel.
par Pedro Alvarez Mer 19 Sep 2018 - 9:28

» Demande pour Jack concernant PanExpress
par Marc Mar 18 Sep 2018 - 23:56

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Barbarian

Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Barbarian   Jeu 4 Avr 2013 - 0:57

Bon, j'ai commencé à en parler et j'ai bossé un peu dessus ce week-end et je viens de terminer les menu.
Je mets le source ici et je le rajoute sur mon Webdav

Attention, j'ai bien mis que je n'avais terminé que les menus. Je vais m'attaquer au jeu maintenant ...

Code:
' ********************************************************************
' * ----------------- --------------------------- ------------------ *
' * ---------------- --  Remake de "BARBARIAN"  -- ----------------- *
' * ----------------- --------------------------- ------------------ *                                                                *
' * ---------------- --  de Palace Software 1987 -- ---------------- *
' * ------------- --- --------------------------- --- -------------- *
' * ----------------  Made by Jicehel using Panoramic -------------- *
' * ------------- --- --------------------------- --- -------------- *
' * http://panoramic-language.pagesperso-orange.fr/French/index.html *
' * ------------- --- --------------------------- --- -------------- *
' ********************************************************************
dim esc,cesc : cesc=27 : ' * TOUCHE "ESC"  * ----------------------- *
dim tfg,ctfg : ctfg=37 : ' * FLÈCHE GAUCHE * ||||||||||||||||||||||| *
dim tfh,ctfh : ctfh=38 : ' * FLÈCHE HAUTE  * ||||||||||||||||||||||| *
dim tfd,ctfd : ctfd=39 : ' * FLÈCHE DROITE * ||||||||||||||||||||||| *
dim tfb,ctfb : ctfb=40 : ' * FLÈCHE BASSE  * ||||||||||||||||||||||| *
dim ztp,ztop : ztop=32 : ' *    BARRE    * ----------------------- *
' ********************************************************************

CAPTION 0,"Barbarian - Version Panoramic"

WIDTH 0,656:HEIGHT 0,520 : HIDE 0

DIM I%,X%,CPT%,LastSprite%,t%,POSITION%
DIM ASSIS%,MARCHE%,ATTENTE%,GENOU%
DIM OLD_SELECT,HANDLE%,res%
DIM D$ : D$ = "C:\Panoramic-Init\sources\Barbarian-jc\"
DIM musique%, sons%, scoreA, scoreB, langue$
DIM TimerActif

musique% = 1: sons%=1 : scoreA = 0 : scoreB = 0 : langue$ = "Français"

DIM P_SAUT%,P_DEBOUT%,P_ROULADE%,P_ASSIS%
P_SAUT%=1 : P_DEBOUT% = 2 : P_ROULADE% = 3 : P_ASSIS% = 4

LABEL t1,t2,ANIM1J,MENU2, CLIC_MENU, CLIC_OPTIONS, QUITTER, CLIC_RETOUR

FORM 3 : HIDE 3 : WIDTH 3,656:HEIGHT 3,520  :  HANDLE% =  HANDLE(3) : COLOR 3,0,0,0
DLL_ON D$+"KGF.dll" :  res% = DLL_call2("SetMinimizeMaximize",HANDLE%,0) : DLL_OFF

PICTURE 4 : PARENT 4,3 : WIDTH 4,640:HEIGHT 4,480 : FILE_LOAD 4,"gfx\level0.bmp"
SOUND 5
CONTAINER 7 : PARENT 7,3 : TOP 7,200 : LEFT 7,200 : COLOR 7,0,0,0 : HEIGHT 7,190 : WIDTH 7, 270
LIST 6 : PARENT 6,7 : TOP 6,-2 : LEFT 6,-2 : COLOR 6,0,0,0 : WIDTH 6, 280
INACTIVE 6


SCENE2D 1 : WIDTH 1,640:HEIGHT 1,480

FOR I% = 1 TO 11 : SPRITE I% : SPRITE_HIDE I% :  SPRITE_POSITION I%,20,300 : NEXT I%
I% = 1 : SPRITE_FILE_LOAD I%,"gfx\Assis1.bmp" : ASSIS% = I% : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Assis2.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Marche1.bmp" : MARCHE%=I% : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Marche2.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Marche3.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Attente1.bmp" : ATTENTE%=I% : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Attente2.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Attente3.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Genou1.bmp" : GENOU% = I% : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Genou2.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"gfx\Genou3.bmp" : I% = I%+1

t% = 80 : TIMER 2: TIMER_INTERVAL 2,t% : TIMER_OFF 2
MENU()

END

SUB MENU()
  2D_TARGET_IS 3 : ON_CLOSE 3,QUITTER
  TimerActif = 1
  CLEAR 6 : FONT_SIZE 6,18 : FONT_COLOR 6,255,255,255 : FONT_NAME 6,"Arial Bold"
  HEIGHT 6,200 : HEIGHT 7,190
  IF langue$ = "Anglais"
    ITEM_ADD 6,"0 - DEMO"
    ITEM_ADD 6,"1 - 1 PLAYER"
    ITEM_ADD 6,"2 - 2 PLAYERS"
    ITEM_ADD 6,"3 - OPTIONS"
    ITEM_ADD 6,"4 - CONTROLS"
    ITEM_ADD 6,"5 - STORY"
    ITEM_ADD 6,"6 - QUIT"
    CAPTION 3,"BARBARIAN - Main Menu"
  ELSE
    ITEM_ADD 6,"0 - DEMO"
    ITEM_ADD 6,"1 - 1 JOUEUR"
    ITEM_ADD 6,"2 - 2 JOUEURS"
    ITEM_ADD 6,"3 - OPTIONS"
    ITEM_ADD 6,"4 - CONTROLES"
    ITEM_ADD 6,"5 - HISTOIRE"
    ITEM_ADD 6,"6 - QUITTER"
    CAPTION 3,"BARBARIAN - Menu Principal"
  END_IF
  OLD_SELECT=-1
  IF musique% = 1 THEN FILE_LOAD 5,"sons\barbarian.mp3" : Play 5
  ON_TIMER 2,MENU2 : TIMER_ON 2
  ON_CLICK 7,CLIC_MENU
  SHOW 3
END_SUB

MENU2:
  IF OLD_SELECT > -1 THEN 2D_PEN_COLOR 0,0,0 : 2D_FILL_COLOR 0,0,0 : 2D_RECTANGLE 181,201+27*OLD_SELECT,189,27*(OLD_SELECT+1)+199
  IF MOUSE_Y_POSITION(7) > 0 AND MOUSE_Y_POSITION(7) < 187 AND MOUSE_X_POSITION(7) > 0 AND MOUSE_X_POSITION(7) < 180
    OLD_SELECT = INT(MOUSE_Y_POSITION(7)/27)
    2D_PEN_COLOR 255,0,0 : 2D_FILL_COLOR 255,0,0 : 2D_RECTANGLE 181,201+27*OLD_SELECT,189,27*(OLD_SELECT+1)+199
  END_IF
RETURN

CLIC_MENU:
  TIMER_OFF 2
  IF OLD_SELECT = 3 THEN OPTIONS()
  IF OLD_SELECT = 4
    IF OLD_SELECT > -1
      2D_PEN_COLOR 0,0,0 : 2D_FILL_COLOR 0,0,0
      2D_RECTANGLE 181,201+27*OLD_SELECT,189,27*(OLD_SELECT+1)+199: CONTROLES()
    END_IF
  END_IF
  IF OLD_SELECT = 5
    IF OLD_SELECT > -1
      2D_PEN_COLOR 0,0,0 : 2D_FILL_COLOR 0,0,0
      2D_RECTANGLE 181,201+27*OLD_SELECT,189,27*(OLD_SELECT+1)+199 :HISTOIRE()
    END_IF
  END_IF
  IF OLD_SELECT = 6 THEN GOSUB QUITTER
  IF TimerActif = 1 THEN TIMER_ON 2
RETURN

SUB AFF_OPTIONS()
  CLEAR 6 :    CAPTION 3,"BARBARIAN - Options"
  IF langue$ = "Anglais"

    IF musique%=1
        ITEM_ADD 6,"0 - MUSIC IS ON"
    ELSE
        ITEM_ADD 6,"0 - MUSIC IS OFF"
    END_IF
    IF sons%=1
        ITEM_ADD 6,"1 - SOUND IS ON"
    ELSE
        ITEM_ADD 6,"1 - SOUND IS OFF"
    END_IF
    IF langue$="Anglais"
        ITEM_ADD 6,"2 - LANGAGE: ENGLISH"
    ELSE
        ITEM_ADD 6,"2 - LANGUE: FRANCAIS"
    END_IF
    ITEM_ADD 6,""
    ITEM_ADD 6,    "    MAIN MENU"
  ELSE
    IF musique%=1
        ITEM_ADD 6,"0 - MUSIQUE ACTIVE"
    ELSE
        ITEM_ADD 6,"0 - MUSIQUE INACTIVE"
    END_IF
    IF sons%=1
        ITEM_ADD 6,"1 - SONS ACTIFS"
    ELSE
        ITEM_ADD 6,"1 - SONS INACTIFS"
    END_IF
    IF langue$="Anglais"
        ITEM_ADD 6,"2 - LANGAGE: ENGLISH"
    ELSE
        ITEM_ADD 6,"2 - LANGUE: FRANCAIS"
    END_IF
    ITEM_ADD 6,""
    ITEM_ADD 6,    "    MENU PRINCIPAL"
  END_IF
END_SUB

SUB OPTIONS()
  AFF_OPTIONS()
  OLD_SELECT=-1
  ON_TIMER 2,MENU2 : TIMER_ON 2
  ON_CLICK 7,CLIC_OPTIONS
END_SUB

CLIC_OPTIONS:
  TIMER_OFF 2
  CAPTION 3,OLD_SELECT
  IF OLD_SELECT = 0
    musique%=1-musique%
    IF musique%=1
      IF OBJECT_EXISTS(5)=0 THEN SOUND 5
      FILE_LOAD 5,"sons\barbarian.mp3" : Play 5
    ELSE
      DELETE 5
    END_IF
  END_IF
  IF OLD_SELECT = 1 THEN sons%=1-sons%
  IF OLD_SELECT = 2
    IF langue$="Anglais" THEN langue$="Français" : ELSE : langue$="Anglais"
  END_IF
  IF OLD_SELECT = 4
      MENU()
  ELSE
      AFF_OPTIONS()
      TIMER_ON 2
  END_IF
RETURN


SUB CONTROLES()
  TIMER_OFF 2 :  TimerActif = 0 : HIDE 7 : HIDE 4
  PICTURE 8  : PARENT 8,3  : LEFT  8,40  : TOP  8,60  : WIDTH  8,260: HEIGHT  8,190
  PICTURE 9  : PARENT 9,3  : LEFT  9,340 : TOP  9,60  : WIDTH  9,260: HEIGHT  9,190
  PICTURE 10 : PARENT 10,3 : LEFT 10,160 : TOP 10,310 : WIDTH 10,322: HEIGHT 10,82
  IF langue$ = "Français"
  CAPTION 3,"BARBARIAN - Contrôles"
  FILE_LOAD 8 ,"gfx\DeplacementsF.bmp"
  FILE_LOAD 9 ,"gfx\AttaquesF.bmp"
  FILE_LOAD 10,"gfx\ControlesF.bmp"
  ELSE
  CAPTION 3,"BARBARIAN - Controls"
  FILE_LOAD 8 ,"gfx\DeplacementsE.bmp"
  FILE_LOAD 9 ,"gfx\AttaquesE.bmp"
  FILE_LOAD 10,"gfx\ControlesE.bmp"
  END_IF
  ON_CLICK 3,CLIC_RETOUR : ON_CLICK 8,CLIC_RETOUR
  ON_CLICK 9,CLIC_RETOUR : ON_CLICK 10,CLIC_RETOUR
RETURN

CLIC_RETOUR:
  OLD_SELECT=-1 : TimerActif = 1
  OFF_CLICK 8 : OFF_CLICK 9 : OFF_CLICK 10
  IF OBJECT_EXISTS(8)=1 THEN DELETE 8 : DELETE 9 : DELETE 10
  SHOW 4 : SHOW 7 : OFF_CLICK 3
  MENU()
RETURN

SUB HISTOIRE()
TIMER_OFF 2 : TimerActif = 0
HEIGHT 6,280 : HEIGHT 7,275
CLEAR 6:FONT_SIZE 6,9 : FONT_COLOR 6,255,255,255 : FONT_NAME 6,"Arial"
IF langue$ = "Français"
  CAPTION 3,"BARBARIAN - Histoire de Barbarian"
  ITEM_ADD 6,"Le sorcier diabolique Drax convoite la princesse"
  ITEM_ADD 6,"Marianna et a juré de jeter un sort terrible"
  ITEM_ADD 6,"sur les habitants de la ville de Jewelled, si"
  ITEM_ADD 6,"elle ne lui ait pas livrée."
  ITEM_ADD 6,"Cependant, il a accepté que si un champion"
  ITEM_ADD 6,"capable de vaincre ses 7 redoutables gardiens"
  ITEM_ADD 6,"était trouvé, il rende sa liberté à la princesse."
  ITEM_ADD 6,"Tout semble perdu et les champions sont vaincus"
  ITEM_ADD 6,"les uns après les autres.
  ITEM_ADD 6,"C'est alors que des plaines incultes et oubliées"
  ITEM_ADD 6,"du Nord, arrive un barbare inconnu."
  ITEM_ADD 6,"Un guerrier puissant, qui manie l'épée avec une"
  ITEM_ADD 6,"dextérité fatale."
  ITEM_ADD 6,"Pourra t'il vaincre les forces des ténèbres et"
  ITEM_ADD 6,"libérer la princesse ?"
  ITEM_ADD 6,"C'est à vous de le dire ..."
  ITEM_ADD 6,"                    "
  ITEM_ADD 6,"Cliquer pour revenir au menu principal"
ELSE
  CAPTION 3,"BARBARIAN - Story of Barbarian"
  ITEM_ADD 6,"The evil sorcerer Drax desires Princess"
  ITEM_ADD 6,"Marianna and has sworn to wreak an"
  ITEM_ADD 6,"unspeakable doom on the people of the"
  ITEM_ADD 6,"Jewelled City, unless she is delivred to him."
  ITEM_ADD 6,"However, he has agreed that if a champion able"
  ITEM_ADD 6,"to defeat his 7 demonic guardians can be found,"
  ITEM_ADD 6,"the princess will be allowed to go free."
  ITEM_ADD 6,"All seems lost as champion after champion is"
  ITEM_ADD 6,"defeated."
  ITEM_ADD 6,"Then, from the forgotten wastelands of the North,"
  ITEM_ADD 6,"comes an unknown barbarian. A mighty warrior,"
  ITEM_ADD 6,"wielding broadsword with deadly skill."
  ITEM_ADD 6,"Can he vanquish the forces of Darkness and free"
  ITEM_ADD 6,"the princess ?"
  ITEM_ADD 6,"Only you can say ..."
  ITEM_ADD 6,"                    "
  ITEM_ADD 6,"Click to return to main menu"
END_IF
ON_CLICK 7,CLIC_RETOUR
END_SUB

QUITTER:
  TIMER_OFF 2
  IF MESSAGE_CONFIRMATION_YES_NO ("Etes vous sûr de vouloir quitter Barbarian ?") = 1
      DELETE 5
      TERMINATE
  END_IF
  TIMER_ON 2
RETURN


SUB MODE1J()
  X% = 40 : CPT% = 0
  FILE_LOAD 1,"gfx\level1.bmp"
  ON_KEY_DOWN 0,t1 : ON_KEY_UP 0,t2 : ON_TIMER 2,ANIM1J : TIMER_ON 2
END_SUB

SUB Avance()
  IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
  IF LastSprite% < MARCHE% OR LastSprite% > MARCHE%+1 THEN LastSprite% = MARCHE%+1
  SELECT LastSprite%
    CASE 4 : LastSprite% = MARCHE%
    CASE 3 : LastSprite% = MARCHE%+1
  END_SELECT
  SPRITE_POSITION LastSprite%, X%,300 : SPRITE_SHOW LastSprite% : X%=X%+20
  POSITION% = P_DEBOUT%
END_SUB

SUB Recule()
  IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
  IF LastSprite% < MARCHE% OR LastSprite% > MARCHE%+1 THEN LastSprite% = MARCHE%+1
  SELECT LastSprite%
    CASE 4 : LastSprite% = MARCHE%
    CASE 3 : LastSprite% = MARCHE%+1
  END_SELECT
  SPRITE_POSITION LastSprite%, X%,300 : SPRITE_SHOW LastSprite% : X%=X%-20
  POSITION% = P_DEBOUT%
END_SUB

SUB Attend()
  IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
  IF LastSprite% < ATTENTE% OR LastSprite% > ATTENTE%+2 THEN LastSprite% = ATTENTE%+2
  SELECT LastSprite%
    CASE 8 : LastSprite% = ATTENTE%
    CASE 6 : LastSprite% = ATTENTE%+1
    CASE 7 : LastSprite% = ATTENTE%+2
  END_SELECT
  SPRITE_POSITION LastSprite%, X%,300 : SPRITE_SHOW LastSprite%
END_SUB

SUB Assis()
  IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
  IF LastSprite% < ASSIS% OR LastSprite% > ASSIS%+1
    LastSprite% = ASSIS% : SPRITE_POSITION ASSIS%, X%,320
  ELSE
    LastSprite% = ASSIS%+1 : SPRITE_POSITION LastSprite%, X%,340
    POSITION% = P_ASSIS%
  END_IF
  SPRITE_SHOW LastSprite%
END_SUB

SUB Debout()
  IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
  IF LastSprite% < ASSIS% OR LastSprite% > ASSIS%+1 THEN LastSprite% = ASSIS%
  SELECT LastSprite%
    CASE 2 : LastSprite% = ASSIS% : SPRITE_POSITION LastSprite%, X%,320
    CASE 1 : LastSprite% = ASSIS%+1 : SPRITE_POSITION LastSprite%, X%,340
  END_SELECT
  SPRITE_SHOW LastSprite%
END_SUB

SUB Frappe_assis()
  IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
  IF (LastSprite% < (GENOU% + 1) OR LastSprite% > (GENOU%+2)) THEN LastSprite% = GENOU%+2
  SELECT LastSprite%
    CASE 11 : LastSprite% = GENOU%+1
    CASE 10 : LastSprite% = GENOU%+2
  END_SELECT
  SPRITE_POSITION LastSprite%, X%,340 : SPRITE_SHOW LastSprite%
END_SUB

SUB Def_haut_assis()
  IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
  IF LastSprite% < GENOU% OR LastSprite% > GENOU%+1 THEN LastSprite% = GENOUX%
  SELECT LastSprite%
    CASE 9  : LastSprite% = GENOU%
    CASE 10 : LastSprite% = GENOU%+1
  END_SELECT
  SPRITE_POSITION LastSprite%, X%,300 : SPRITE_SHOW LastSprite%
END_SUB


ANIM1J:
  TIMER_OFF 2
  CPT% = CPT% + 1
  IF esc=1 THEN TERMINATE
  IF tfg=1 THEN Recule()
  IF tfd=1 THEN Avance()
'  IF tfh=1 THEN
  IF tfb=1 AND POSITION% <> P_ASSIS% THEN Assis()
'  IF ztp=1 THEN
  TIMER_ON 2
RETURN

t1:
  if key_down_code=cesc then esc=1
  if key_down_code=ctfg then tfg=1
  if key_down_code=ctfh then tfh=1
  if key_down_code=ctfd then tfd=1
  if key_down_code=ctfb then tfb=1
  if key_down_code=ztop then ztp=1
return

t2:
  if key_down_code=cesc then esc=0
  if key_down_code=ctfg then tfg=0
  if key_down_code=ctfh then tfh=0
  if key_down_code=ctfd then tfd=0
  if key_down_code=ctfb then tfb=0
  if key_down_code=ztop then ztp=0
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 4 Avr 2013 - 2:51

Genial !!!

Tu as tout de même un petit souci d'affichage avec tes plots rouge,
enfin surtout les noirs en dessous (sont ils vraiment utiles ?(les noirs) ).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Barbarian
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: