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
» Mah-Jong américain
par Jean Claude Hier à 19:37

» StratégoV8 et V9
par Jean Claude Hier à 13:18

» Problème avec Deepl
par Klaus Hier à 0:34

» Déformation d'image en trapèze
par Klaus Dim 14 Jan 2018 - 16:22

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» KGF_dll - nouvelles versions
par Minibug Ven 12 Jan 2018 - 0:21

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» HVIEWER
par Klaus Mer 10 Jan 2018 - 2:06

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

» Bonne fêtes de fin d'année ! Meilleurs Vœux 2018 !
par Jicehel Jeu 4 Jan 2018 - 17:28

» Mah-Jong international
par jjn4 Jeu 4 Jan 2018 - 16:55

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Barbarian is coming back

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Barbarian is coming back   Jeu 5 Mar 2015 - 17:19

Bonjour,

J'ai commencé à reprendre mon code pour faire revivre Barabrian en Panoramic
J'ai un soucis avec le dimensionnement de ma fenêtre 0. Les ascenceurs apparaissent alors que selon moi, ils ne devraient pas. Pouvez-vous m'expliquer pourquoi on les voit ? (Si on étire la fenêtre 0 et que l'on l'a remet à sa taille initiale, les ascenceurs disparraissent !!)

Je vous fais un fichier zip pour les ressources pour pouvoir tester:
http://www.fichier-zip.com/2015/03/05/barabarian/

et le code
Code:
' **************************************************************************
' *  ------------------- --------------------------- --------------------  *
' *  ------------------ --  Remake de "BARBARIAN"  -- -------------------  *
' *  ------------------- --------------------------- --------------------  *                                                                *
' *  ------------------ --  de Palace Software 1987 -- ------------------  *
' *  --------------- --- --------------------------- --- ----------------  *
' *  ------------------  Made by Jicehel using Panoramic ----------------  *
' *  --------------- --- --------------------------- --- ----------------  *
' *  - http://panoramic-language.pagesperso-orange.fr/French/index.html -  *
' *  ------------- --- --------------------------- --- ------------------  *
' *  ----- --- librement inspiré par l'excellent remake de J.L.--- ------  *
' *  ---- Ses versions du remake collent de très près au jeu sur les ----  *
' *  différentes platemormes de l'époque (Spectrum, Amstrad, Amiga, Atari  *
' *    -----___---  URL : http://barbarian.1987.free.fr/  ---___-----    *
' *  --------------- --- --------------------------- --- ----------------  *
' **************************************************************************


' mémorise les numéros des premiers sprites d'une animation
DIM ASSIS%,MARCHE%,ATTENTE%,GENOU%, DEBOUT%

' constantes utilisées pour mémoriser la position des joueurs (assis, debout, en train de sauter ou de faire une roulade, etc ...)
DIM P_SAUT%,P_DEBOUT%,P_ROULADE%,P_ASSIS%
DIM E_SAUTER%, E_LEVER%, E_ROULER%, E_ASSOIR%
P_SAUT%=1 : P_DEBOUT% = 2 : P_ROULADE% = 3 : P_ASSIS% = 4
E_SAUTER% = 11 : E_LEVER% = 12 : E_ROULER% = 13 : E_ASSOIR% = 14

' Déclaration des autres variables
DIM I%              : ' Compteurs temporaires
DIM XA%,XB%,YA%,YB% : ' Position des sprites des joueurs
DIM CPT%            : ' Compteur de passage de boucles pour les animations
DIM t%: t% = 50    : ' Définit le temps d'une boucle
DIM POSITION%      : ' Variable indiquant la position actuelle du joueur
DIM LastSprite% : '
DIM OLD_SELECT      : ' Variable servant pour mémoriser l'état actuel de sélection dans le menu
DIM HANDLE%        : ' Variable temporaire permettant de passer l'identifiant d'un objet
DIM res%            : ' Variable indiquant le résultat de l'appel d'une fonction de KGF
DIM D$ : D$ = ""    : ' Utilisé si besoin pour indiqué le chemin en dur
DIM musique%, sons% : ' Variables mémorisant si la musique et le son son activés ou non
DIM langue$        : ' Variable utilisée pour mémoriser le choix de la langue
DIM scoreA, scoreB  : ' Compteurs de score
DIM TimerActif
DIM Marge_H% : Marge_H% = 400      : ' Petit truc pour ne pas faire appraitre les sprites lors de leur chargement (petit bug Panoramic)
DIM wp%, hp% : wp% = 640: hp% = 480 : ' Largeur et hauteur de la zone jouable (le décor en clair)
DIM nb_sprites%    : ' Indique le nombre de sprites à créer
DIM pas% : pas% = 20: ' Fixe la taille du déplacement horizontal lors de l'avance ou le recul
DIM CPT_A% : CPT_A% = 2 : ' Nombre de cycle d'attente pour les animations
DIM X_Min%, X_Max%      : ' Définit les limites de déplacements des barbares
X_min% = 80 : X_max% = 500

' ******************************************
' *********** Gestion du clavier ***********
' ******************************************

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    *

' ******************************************

' Définition des étiquettes des sous programmes évenementiels

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


' ---------------------------------------------------------------------------------------------
' Début du programme principal
' ---------------------------------------------------------------------------------------------

' Initialisation
CAPTION 0,"Barbarian - Version Panoramic"
MEMO 2 : FULL_SPACE 2
HEIGHT 0,hp% + 40 : WIDTH 0, wp% + 16 : ON_CLOSE 0,QUITTER
DELETE 2
HIDE 0

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


' La FORM 3 c'est le menu, on l'affiche pendant le chargement des sprites et des sons en mémoire
FORM 3 : HIDE 3 : WIDTH 3,WIDTH(0) : HEIGHT 3,HEIGHT(0)  :  HANDLE% =  HANDLE(3) : COLOR 3,0,0,0
DLL_ON D$+"KGF.dll" :  res% = DLL_call2("SetMinimizeMaximize",HANDLE%,0) : DLL_OFF

' Image du fond du menu
PICTURE 4 : PARENT 4,3 : WIDTH 4,wp% :HEIGHT 4,hp% : FILE_LOAD 4,"gfx\level0.bmp"

SOUND 5  : ' Pour la musique

' La liste 6 et chargée dans le container 7 et indique les possibilités dans le menu graphique
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

' La SCENE2D est l'endroit ou l'on affichera nos sprites durant le jeu
SCENE2D 1 : WIDTH 1, WIDTH(0) - 16: TOP 1, 0 - Marge_H% : HEIGHT 1,hp% + Marge_H%

' Création et chargement des sprites
nb_sprites% = 9
FOR I% = 1 TO nb_sprites% : SPRITE I% : SPRITE_HIDE I% : NEXT I%
I% = 1
SPRITE_FILE_LOAD I%,"SpritesA\Assis1.bmp"  : ASSIS% = I%  : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Assis2.bmp"  : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Marche1.bmp"  : MARCHE%=I%  : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Marche2.bmp"  : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Marche3.bmp"  : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Attente1.bmp" : ATTENTE%=I%  : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Attente2.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Attente3.bmp" : I% = I%+1
SPRITE_FILE_LOAD I%,"SpritesA\Debout1.bmp"  : DEBOUT% = I% : I% = I%+1

LastSprite% = DEBOUT%

' Initialisation du Timer
TIMER 2: TIMER_INTERVAL 2,t% : TIMER_OFF 2

' On est pret et on affiche le menu
MENU()

END

' ---------------------------------------------------------------------------------------------
' Fin du programme principal
' ---------------------------------------------------------------------------------------------


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,189,390
  IF MOUSE_Y_POSITION(7) > 0 AND MOUSE_Y_POSITION(7) < 187 AND MOUSE_X_POSITION(7) > 0 AND MOUSE_X_POSITION(7) < 180
    IF ( OLD_SELECT > -1 AND OLD_SELECT <> INT(MOUSE_Y_POSITION(7)/27)) 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
    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 = 1 THEN MODE1J()
  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
    ITEM_ADD 6,"2 - LANGAGE: ENGLISH"
    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
    ITEM_ADD 6,"2 - LANGUE: FRANCAIS"
    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
  IF OBJECT_EXISTS( 8)=1 THEN OFF_CLICK 8
  IF OBJECT_EXISTS( 9)=1 THEN OFF_CLICK 9
  IF OBJECT_EXISTS(10)=1 THEN 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()
  XA% = X_Min% : 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
  SHOW 0
END_SUB

SUB Avance()
  IF CPT% >= CPT_A%
    IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
    IF LastSprite% < MARCHE% OR LastSprite% > MARCHE%+1
      LastSprite% = MARCHE%+1 : CPT% = 0 : XA%=XA%+pas% : POSITION% = P_DEBOUT%
    ELSE
      SELECT LastSprite%
        CASE 4 : LastSprite% = MARCHE%
        CASE 3 : LastSprite% = MARCHE%+1
      END_SELECT
    END_IF
    CPT% = 0 : XA%=XA%+pas% : POSITION% = P_DEBOUT%
  END_IF
END_SUB

SUB Recule()
  IF CPT% >= CPT_A%
    IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
    IF LastSprite% < MARCHE% OR LastSprite% > MARCHE%+1
        LastSprite% = MARCHE%+1
    ELSE
      SELECT LastSprite%
        CASE 4 : LastSprite% = MARCHE%
        CASE 3 : LastSprite% = MARCHE%+1
      END_SELECT
    END_IF
    CPT% = 0 : XA%=XA%-pas% : POSITION% = P_DEBOUT%
  END_IF
END_SUB

SUB Attend()
  IF LastSprite% > 0 AND CPT% >= CPT_A% 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
END_SUB

SUB Assis()
  IF CPT% >= CPT_A% / 2
    IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
    IF LastSprite% < ASSIS% OR LastSprite% > ASSIS%+1
      LastSprite% = ASSIS% :  CPT% = 0  : POSITION% = E_ASSOIR%
    ELSE
      LastSprite% = ASSIS%+1 :  CPT% = 0
      POSITION% = P_ASSIS%
    END_IF
  END_IF
END_SUB

SUB Debout()
  IF CPT% >= CPT_A% / 2
    IF LastSprite% > 0 THEN SPRITE_HIDE LastSprite%
    IF LastSprite% = ASSIS%+1
        LastSprite% = ASSIS% : CPT% = 0 : POSITION% = E_LEVER%
    ELSE
        LastSprite% = DEBOUT% : CPT% = 0
        POSITION% = P_DEBOUT%
    END_IF
  END_IF
END_SUB

ANIM1J:

  TIMER_OFF 2 : CPT% = CPT% + 1
 
  IF esc=1 THEN GOSUB QUITTER

  IF tfg=1
      IF XA% > X_Min%
        Recule()
      ELSE
      IF CPT% >= CPT_A% / 2 AND LastSprite% <> DEBOUT% THEN SPRITE_HIDE LastSprite% : LastSprite% = DEBOUT% : CPT% = 0
      END_IF
  END_IF

  IF tfd=1
    IF XA% < X_Max%
        Avance()
    ELSE
      IF CPT% >= CPT_A% / 2  AND LastSprite% <> DEBOUT% THEN SPRITE_HIDE LastSprite% : LastSprite% = DEBOUT% : CPT% = 0
      END_IF
  END_IF

  IF (tfh=1 AND POSITION% <> P_DEBOUT%) OR POSITION% = E_LEVER% THEN Debout()
  IF (tfb=1 AND POSITION% <> P_ASSIS%) OR POSITION% = E_ASSOIR% THEN Assis()
'  IF ztp=1 THEN
  SPRITE_POSITION LastSprite%, XA%,YA% + Marge_H% : SPRITE_SHOW LastSprite%
  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

Modification suite à l'explication de JL35 pour le problème d'ascenceurs - Version de démo opérationnelle avec les ressources du zip
Choisir mode 1 joueur et vous pouvez avancer, reculer, vous baisser et vous relever (et c'est tout pour le moment ...)


Dernière édition par Jicehel le Jeu 5 Mar 2015 - 18:47, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6069
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Barbarian is coming back   Jeu 5 Mar 2015 - 17:34

Je n'ai pas étudié le code, mais le coup des ascenseurs j'ai déjà eu.
Ça arrive entre autres si tu définis un objet qui dépasse le form 0, si tu ne définis sa largeur qu'après avoir défini sa position.
Je m'explique: je définis un objet (picture par exemple) de 60 pixels de large à 80 pixels du bord droit, très bien, mais si je fais d'abord le Left p, la largeur implicite d'un picture étant 105 pixels ça dépasse et un ascenseur horizontal apparaît, qui ne disparaît pas quand tu définis la largeur à 60... Par contre si tu redimensionnes à la main, il disparaît.
Mon explication est un peu confuse, mais comme tu es super intelligent, pas de problème... Very Happy
C'est un cas, il y en a sans doute d'autres.

Je regarde ton code (extrait du zip), mais d'entrée j'ai quelques erreurs:
ligne 74: un ':' en trop à la fin
ligne 83: no correct arithmetic expression sur le WIDTH 3,... (bord% inconnu on dirait ?)

Je ne suis pas très joueur, et je laisse les essais à d'autres plus qualifiés, mais les graphismes ont l'air sympas, c'est bien coloré, je peux faire bouger le gus à l'épée (1 Joueur, mais pas de démo), après avoir défini arbitrairement un bord% à 100 et défini le chemin de KGF.dll. Ça va plaire à mon petit-fils.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Barbarian is coming back   Jeu 5 Mar 2015 - 18:44

Oups désolé pour les erreurs, j'ai merdouillé et je n'ai pas envoyé le bon code (à priori, je n'ai pas sauvegardé mes dernières modifications ... désolé). Je n'avais pas de problème, j'avais mis le form avec une taille fixe, mais j'ai pensé au problème de marges que nous avions eu et j'ai voulu adapter, mais j'avais ce problème d’ascenseurs. ligne 83, c'était WIDTH 3, WIDTH(0), mais je regarde et je corrige le code avec le bon...

Sinon, le principal : Merci JL35, tu m'as donné l'explication et elle est logique. J'ai agrandi mon Scene_2D et je modifié sa position verticale après... C'est exactement le cas que tu as cité.

Je bascule le TOP avant le HEIGHT et ça marche. Je mets la correction dans le source corrigé. Merci JL35.

Pour les autres si vous voulez tester le jeu, prenez les ressources dans le zip mais utilisez le source MAJ dans le premier post
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Barbarian is coming back   Jeu 5 Mar 2015 - 20:54

Je ferais un essai prochainement, car je suis provisoirement paysagiste. Cool sunny

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6069
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 0:15

Évite de scier la branche sur laquelle tu es assis Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 10:07

Pas de danger, je travaille au ras du sol.
Plantations, étalage de tissus géotextile, de gravier et pose de bordures....

Bon je suis hors sujet, je sort. Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 13:27

Mais non, reste, mais bon si tu veux tester le début du jeu, tu peux aussi ^^
Je continuerais un peu ce week end et je vais essayer au moins de terminer les mouvement du joueur 1 seul.
Après j'essayerais d'implémenter le joueur 2, puis les animations de décors, la santé et le gnome puis le mode démo.
Après, je devrais travailler un peu sur mes outils pour les sprites (reprendre où j'en étais et faire des choses automatique pour les graphiques pour pouvoir refaire les couleurs des ennemis d'origines avant de continuer)
Après, j'essayerais de reprendre le programme de J.L. (en QB dont il a gentillement partagé les sources, mais dont je n'ai pas repris les graphiques qui correspondaient à ceux de l'époque, donc sympa pour la nostalgie mais un peu obsolètes avec les affichages d'aujourd'hui) pour implémenter les mouvements des ennemis et les interactions.
Après, ce sera les changement de niveaux puis le sorcier et là ça commencera à sentier bon ^^ mais ce n'est pas pour demain ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6069
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 15:01

Saperlipopette ! que de boulot en perspective ! Shocked
Bon courage Jicehel !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 16:07

Merci JL35. J'ai envie d'étendre un peu le style de jeu que l'on a sur Panoramic.
On a pas mal de casse-tetes
On a des jeux de cartes (Belotte, tarot et j'en oublie peut être)
On a un casse brique, un Tetris, un sokoban, un Mahjong, Puissance 4, un pac man, un sudoku, etc ..., mais on n'avait pas de jeux de baston
Il faudrait refaire aussi le space invader avec les progrès que l'on a fait et les mises à jour de Panoramic et de KGF.
Pour le jeu de dames, je n'ais pas le courage de m'attaquer à la programmation de l'IA pour passer en mode 1 joueur.
Il manquerait un bon jeu de course auto aussi, peut être pour les grand classic. On verra bien avec le temps...

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 19:48

Oui, tu as raison Jicehel, La plupart des jeux proposés sont du même style.

Mais, c'est plus difficile de faire des jeux de combats. J'avais tenté il y a quelque temps une bataille de petit soldats, mais je me suis heurté à l'IA. Le jeu fonctionne, mais n'offre que peu d'intérêt.
Si quelqu'un veut le reprendre c'est ici => http://panoramic.free-boards.net/t3624-bataille-de-petits-soldats?highlight=bataille

Vu le chantier que tu as, j'attends un peu pour tester le tien... Very Happy

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6069
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 20:18

J'aimerais bien un FPS, même simplifié, je ne sais pas si Panoramic est assez puissant pour ça, et ça dépasse mes compétences (des fois je joue à Doom, c'est à peu près tout, à part Freecell et Mahjong)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 20:34

Panoramic est capable de faire un FPS, le plus simple étant de le faire en fausse 3D (sprites 2D et décors tel que le labyrinthe que j'avais commencé à faire avec des graphismes issus de Dungeon master, mais on pourrait faire l'équivalent avec ceux de Wolfenstein). Le truc, c'est qu'il faut quand même passer pas mal de temps sur les décors et utiliser pas mal de sprites ou tricher grâce à KGF pour faire des copies d'images utilisant la transparence. C'est faisable mais ça demande beaucoup de temps et de réflexion...

En vrai 3D, c'est réalisable aussi, Bignono nous avait commencer le moteur. Parc contre pour que ça ne rame pas, il ne faut quand même pas être trop gourmand et bien optimiser les calculs à effectuer. Le problème après, c'est qu'il faut pas mal travailler la 3D et à ma connaissance, il n'y a que Bignono qui s'était bien avancé sur le sujet.

@Jean-Claude, tu peux tester, ça va vite. Tu télécharge le zip et tu prends le code du forum à la place de celui fournit. Tu auras accès au menu du départ, tu te balades un peu dans le menu (les boutons deémo et mode 2 joueurs ne sont pas gérés pour le moment). Tu regardes les options, l'histoire, etc ... puis quand tu as testé le menu avec le changement de langue etc ... tu choisis la ligne pour lancer le jeu en mode 1 joueur, tu pourras juste avancer, reculer, d'agenouiller et te relever pour le moment, mais ça va vite à tester. (La gestion de la musique et du son ne sont pas implémenté dans cette version)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 22:46

Je viens de faire un essai,

J'ai téléchargé le zip sur le lien indiqué plus haut et j'ai pris le code du forum.
J'ai donné le chemin à D$ pour kgf.dll (que j'ai pris dans la dernière version de PPE, vu quelle n'est pas fournie dans le zip)

Je lance, et là j'ai le message Windows "Panoramic.exe a cessé de fonctionner" et je suis obligé d'arrêter le programme.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Barbarian is coming back   Ven 6 Mar 2015 - 23:15

sinon tu laisse D$ vide et tu lances directement en utilisant le KGF qui est dans le répertoire barbarian
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

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

MessageSujet: Re: Barbarian is coming back   Sam 7 Mar 2015 - 0:16

Jicehel a écrit:
Pour le jeu de dames, je n'ais pas le courage de m'attaquer à la programmation de l'IA pour passer en mode 1 joueur.

J'avais proposé un jeu de dames avec IA ici :
http://panoramic.free-boards.net/t3854p30-panoramic-pour-android-instantane-du-developpement#44852

C'est un jeu que j'avais fait début 2007 pour tester Panoramic et son IA est perfectible.
Cela peut être un point de depart.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Barbarian is coming back   Sam 7 Mar 2015 - 10:51

Tu as raison Jack, j'avais oublié ta version des dames et maintenant que j'y repense il me semble qu'il y avait aussi une version du jeu d'échecs qu'avait fait Bignono. (J'avais tout ça sur le portable qu'utilise maintenant ma femme, mais je n'en ai remis qu'un parti sur celui que j'utilise actuellement). J'oubli surement d'autres grands classiques qui ont déjà été adaptés (Comme par exemple celui avec les boules qu'avait fait Klaus ou il fallait envoyer une boule de couleur vers d'autres boules de la même couleur pour les détruire, mais je l'ai mis dans la catégorie des casses-t^te trop nombreux pour que l'on les énumère tous). Perso, j'ai d'autres idées, mais je les garde pour plus tard pour essayer d'aller au bout de celle en cours ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Barbarian is coming back   

Revenir en haut Aller en bas
 
Barbarian is coming back
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» I go back to black.
» Trac(k)back sur Colorado
» Trailer - Battlefield 3 Back to Karkand
» Site partitions et play back
» Bleach - Turn Back The Pendulum

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: