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
» PanExpress : l'éditeur Panoramic avec création d'objet
par Jean Claude Aujourd'hui à 8:06 pm

» Projet de planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 4:46 pm

» Quantité de mémoire utilisée par un exe
par Jack Aujourd'hui à 4:39 pm

» Problème avec 'file_load'.
par Pedro Alvarez Hier à 8:12 am

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018, 2:25 pm

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018, 7:56 pm

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018, 7:14 pm

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018, 8:17 pm

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018, 8:52 pm

» Cadre pour image
par Jean Claude Mar 12 Juin 2018, 4:31 pm

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018, 2:02 pm

» Planétarium gratuit.
par Jean Claude Sam 09 Juin 2018, 6:50 pm

» Comment afficher une image sans fond.
par JL35 Sam 09 Juin 2018, 2:16 pm

» image_width(n) et image_height(n)
par silverman Sam 09 Juin 2018, 11:22 am

» Site sur la programmation sympa
par Jean Claude Jeu 07 Juin 2018, 11:20 am

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Barbarian

Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Barbarian   Jeu 04 Avr 2013, 12:57 am

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 : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 04 Avr 2013, 2:51 am

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: