Jeu d'aventure texte+image à l'ancienne avec PURE

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
drfloyd
Messages : 198
Inscription : mar. 21/août/2007 13:30
Contact :

Jeu d'aventure texte+image à l'ancienne avec PURE

Message par drfloyd »

yop les amis

En reprenant la prog d'un jeu d'aventure textuel en l'ancienne (sur Blitz, mais je voudrais le passer sur Pure) je me suis posé la question toute conne des PRINT avec PURE

Sur les vieux basic c'est simple : tu balances des print "Vous etes dans une piece", des input "que faites ?";a$... en bas de l'ecran (si possible dans une fenetre)... et hop le texte déroule tout seul. Et en haut tu balances une image... ca marche bien, c'est tout simple.

Mais avec Pure, on ne peut pas fonctionner aussi simplement que ca ?
Avatar de l’utilisateur
case
Messages : 1528
Inscription : lun. 10/sept./2007 11:13

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par case »

non a toi de coder un truc qui simule l'input
vite fait en modifiant un exemple de la doc, on peux faire vraiment plus propre :) la c'est en mode SALE

Code : Tout sélectionner

Declare .s Inpt(x,y,prompt$)
Declare.s getwallpaperpath()
Declare out( t$)
Declare refreshscreen()
Structure output
  text.s
EndStructure
Global NewList lg.output()

If InitSprite() And InitKeyboard() And OpenScreen(1920,1080,32,"")
  UseJPEGImageDecoder()
  UsePNGImageDecoder()
  Global img=LoadImage(#PB_Any,getwallpaperpath())
  ResizeImage(img,800,600) 
Global fnt=LoadFont(#PB_Any,"terminal",20)
  StartDrawing(ScreenOutput())
  Global fw=TextWidth("W")
  Global fh=TextHeight("W")
  StopDrawing()  
EndIf
out("vous voyez quelque chose sur votre ecran")
;main loop
Repeat
  refreshscreen()
  FlipBuffers()
  ExamineKeyboard()
  Ret$=inpt(0,40,"que faites vous ? >")
  ;
  Select LCase(ret$)
     Case"quit"
       End       
     Case "regarder"
       out("vous voyez une image familiere")
     Default
       out("commande inconue")
   EndSelect
Until KeyboardPushed(#PB_Key_Escape)
Procedure out(t$)
  LastElement(Lg())
  AddElement(Lg())
  Lg()\text=t$
EndProcedure
Procedure refreshscreen()
  ClearScreen(0)
  StartDrawing(ScreenOutput())
  DrawImage(ImageID(img),0,0)
           DrawingFont(FontID(fnt))
         DrawingMode(1)
  For loging=5 To 1 Step -1   
    If ListSize(lg())-loging>=0
      SelectElement (lg(),ListSize(lg())-loging)
       DrawText(0,(39-loging)*fh,lg()\text)
    EndIf
  Next
  StopDrawing()
EndProcedure
Procedure.s Inpt(x,y,prompt$)
  Repeat      
      FlipBuffers()
      refreshscreen()
      ExamineKeyboard()
      If KeyboardReleased(#PB_Key_Back)  
        FullText$ = Left(FullText$, Len(FullText$)-1)
      Else
        resultat$=KeyboardInkey()
        If FindString("1234567890 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzéèçàù", resultat$) ; Ajouter vos propres caractères valides ici
          FullText$ + resultat$
        EndIf  
      EndIf
      If StartDrawing(ScreenOutput())
        DrawingFont(FontID(fnt))
         DrawingMode(1)
        FrontColor(RGB(128, 255, 0))
        DrawText(x*fw,y*fh,prompt$ + FullText$)
        StopDrawing()
      EndIf
    Until KeyboardReleased(#PB_Key_Return)
    ProcedureReturn FullText$
EndProcedure
Procedure.s getwallpaperpath()
  String$ = Space(#MAX_PATH)
  SystemParametersInfo_(#SPI_GETDESKWALLPAPER,#MAX_PATH,String$,0)
  ProcedureReturn String$
EndProcedure
ImageImage
Avatar de l’utilisateur
case
Messages : 1528
Inscription : lun. 10/sept./2007 11:13

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par case »

une version que j'ai concue pour un projet personel, j'ai enlevé tout le reste autour :)
ca fonctionne, les touches flechees droite et gauche, supr, backspace,home,end sont gérées avec un curseur personalisable.

Code : Tout sélectionner

Declare cli()
Declare display(disp)  
Declare scankeys()
Declare dokey(a)
Declare.i cursor()
Declare RefreshKeyboard()
Declare .s returnchar(key)
Declare Keydown(key)
Declare keyup(key)
Declare keypushed(key)
Declare keyon(key)
Declare.s getwallpaperpath() 
Declare definecursor(cursor$) 
Declare Output(st$)
;
; +--------------------------------------+
; |   code par case @ purebasic forums   |
; |   case[at]moonshade.org              |
; +--------------------------------------+
; |                                      |
; |     procedures  d'interrogation      |
; |              clavier                 |
; |                                      |
; +--------------------------------------+
; |                                      |
; |    PROCEDURES ET DOCUMENTATION       |
; |                                      |
; +--------------------------------------+
; |   RefreshKeyboard()                  |
; |   *****************                  |
; |   Récupere l'etat du clavier         |
; |   equivalent d'examinekeyboard()     |
; |                                      |
; |   returnchar(key)                    |
; |   ***************                    |
; |   renvoi le caractere ascii de la    |
; |   touche 'key'                       |
; |                                      |
; |   Keydown(key)                       |
; |   ************                       |
; |   renvoi 1 si la touche est enfoncee |
; |                                      |
; |   Keyup(key)                         |
; |   **********                         |
; |   renvoi 1 si la touche est relachée |
; |                                      |
; |   keypushed(key)                     |
; |   **************                     |
; |   renvoi 1 si la touche est appuyée  |
; |   mais ne l'etait pas avant          |
; |                                      |
; |   keyon(key)                         |
; |   **********                         |
; |   renvoi 1 si la touche est allumée  |
; |   numlock par exemple                |
; |                                      |
; +--------------------------------------+
; +--------------------------------------+
; |  CONSTANTES DEFINITION DES TOUCHES   |
; +--------------------------------------+
#AltKey_windows         =91
#AltKey_Shift           =16
#AltKey_LeftShift       =160
#AltKey_RightShift      =161
#AltKey_Alt             =17
#AltKey_Left_Alt        =164
#AltKey_AltGr           =165
#AltKey_Esc             =27
#AltKey_tilde           =222
#AltKey_F1              =112
#AltKey_F2              =113
#AltKey_F3              =114
#AltKey_F4              =115
#AltKey_F5              =116
#AltKey_F6              =117
#AltKey_F7              =118
#AltKey_F8              =119
#AltKey_F9              =120
#AltKey_F10             =121
#AltKey_F11             =122
#AltKey_F12             =123
#AltKey_0               =48
#AltKey_1               =49
#AltKey_2               =50
#AltKey_3               =51
#AltKey_4               =52
#AltKey_5               =53
#AltKey_6               =54
#AltKey_7               =55
#AltKey_8               =56
#AltKey_9               =57 
#AltKey_parenthese      =219 
#AltKey_egal            =187
#AltKey_backspace       =8
#AltKey_windows         =91
#AltKey_Tab             =9
#AltKey_A               =65
#AltKey_B               =66
#AltKey_C               =67
#AltKey_D               =68
#AltKey_E               =69
#AltKey_F               =70
#AltKey_G               =71
#AltKey_H               =72
#AltKey_I               =73
#AltKey_J               =74
#AltKey_K               =75
#AltKey_L               =76
#AltKey_M               =77
#AltKey_N               =78
#AltKey_O               =79
#AltKey_P               =80
#AltKey_Q               =81
#AltKey_R               =82
#AltKey_S               =83
#AltKey_T               =84
#AltKey_U               =85
#AltKey_V               =86
#AltKey_W               =87
#AltKey_X               =88
#AltKey_Y               =89
#AltKey_Z               =90
#AltKey_circ            =221
#AltKey_dollar          =186
#AltKey_return          =13
#AltKey_caps            =20
#AltKey_percent         =192
#AltKey_multiply        =220
#AltKey_compare         =226
#AltKey_space          =32
#altKey_left           =37
#altKey_up             =38
#altKey_right          =39
#altKey_down           =40
#AltKey_del             =46
#AltKey_pageup          =33
#altKey_pagedown        =34
#altKey_fin             =35
#altKey_debut           =36
#AltKey_inser           =45
#AltKey_prtscr          =44
#AltKey_pause           =19
#AltKey_mute            =173
#AltKey_voldwn          =174
#AltKey_volup           =175
#AltKey_numlock         =144
#AltKey_0num            =96
#AltKey_1num            =97
#AltKey_2num            =98
#AltKey_3num            =99
#AltKey_4num            =100
#AltKey_5num            =101
#AltKey_6num            =102
#AltKey_7num            =103
#AltKey_8num            =104
#AltKey_9num            =105
#Altkey_minnum          =109
#Altkey_addnum          =107
#altKey_leftmouse       =1
#altKey_rightmouse      =2
#AltKey_Left_Ctrl      =162
#altKey_right_Ctrl      =163
#altKey_middlemouse     =4 ; pas sur que la valeur soit la meme suivant les souris a tester
 ;+--------------------------------------+
;|           BUFFERS CLAVIER            |
;+--------------------------------------
Global *buffer=AllocateMemory(256)
Global *state=AllocateMemory(256)



InitSprite()
ExamineDesktops()
UsePNGImageDecoder()
UseJPEGImageDecoder()

Global rdw=DesktopWidth(0),rdh=DesktopHeight(0)
Global toplog=0
Global xd,yd,styd
Global fnt=LoadFont(#PB_Any,"terminal",20)
tempw=OpenWindow(#PB_Any,0,0,1,1,"")
tempc=CanvasGadget(#PB_Any,0,0,1,1)
;---- CLI win
StartDrawing(CanvasOutput(tempc))
DrawingFont(FontID(fnt))
Global fth=TextHeight(" ")
Global ftw=TextWidth(" ")
StopDrawing()
Global dw=ftw*80  
Global dh=fth*24
CloseWindow(tempw)
Global cli=OpenWindow(#PB_Any,0,0,dw,dh,"CMD" )
Global can2=CanvasGadget(#PB_Any,0,0,dw,dh)

Enumeration
  #main=0
  #render
  #browser
  #fnt
  #lnk
  #adressbar
EndEnumeration
Structure cursor
  lastblink.i ; elapsed milliseconds 
  blinkrate.i ; milliseconds blinking interval
  List colors.i() ; list of colors cycle -1=no display
  on.i            ; color for on cursor
  off.i           ; color for off  
  state.i
  pos.i; pos in string 
  scpos.i ; pos on screen
  ch.i    ; charcater used for cursor
  col.i   ;color for the cursor
          ;----annimated cursor
  List char.i()
  frame.i
  lastframe.i
  animrate.i
EndStructure
Structure key
  id.i
  time.i
  Repeat.i
EndStructure
Global lastwin.s
Global Debg=0
Global lastkey.key
Global NewList logs.s()

Global wallpaper=LoadImage(#PB_Any,getwallpaperpath())
Global prompt$=">"
Global cli$=""
Global fc=$00ffff
Global bc=$ff0000
Global cursor.cursor
Global mode.s="default"
Global bg=CopyImage(wallpaper,#PB_Any)
ResizeImage(wallpaper,dw,dh);
ResizeImage(bg,rdw,rdh)     ;
StartDrawing(ImageOutput(wallpaper))
DrawingMode(#PB_2DDrawing_AlphaBlend )
Box(0,0,dw,dh,RGBA(0,0,0,200))
StopDrawing()
cursor\blinkrate=500
cursor\ch=219
cursor\animrate=200
definecursor("color@ffff00:ff0000:00ff00:00ffff:0000ff:ff00ff")
definecursor("blinkrate@500")
definecursor("sym@176:177:178:219:178:177");124:124");  
definecursor("animrate@50")
Global logpos=0
Global prompt=#True
SetWindowTitle(cli, "test") 
;- main loop 
Repeat  
  active=GetActiveWindow()
  ev=WaitWindowEvent(0)  
  RefreshKeyboard()
  If active = cli
    If prompt=#True
      a=scankeys()
      If a        
        dokey(a)
      EndIf
    EndIf
  EndIf
  cli()
Until keydown(#AltKey_Esc) Or ev=#PB_Event_CloseWindow
Procedure cli()
  StartDrawing(CanvasOutput(can2))
  DrawingFont(FontID(fnt))
  If IsImage(wallpaper)
    DrawImage(ImageID(wallpaper),0,0)
    Box(0,dh-fth,dw,fth,0)
  Else    
    Box(0,0,dw,dh,0)
  EndIf 
  shlen=((dw/ftw)-Len(prompt$))-1
  shocli$=Mid(cli$,(cursor\pos+1)-shlen,shlen)
  DrawText(0,dh-fth,prompt$+shocli$,fc)
  ;
  DrawingMode(#PB_2DDrawing_XOr)  
  cursor() 
  If cursor\colors()>=0
    DrawText((cursor\scpos+Len(prompt$))*ftw,dh-fth,Chr(cursor\ch),cursor\col)
  EndIf
  DrawingMode(#PB_2DDrawing_Default)
  If ListSize(Logs())
    SelectElement(Logs(),toplog)
    For disp=0 To 40
      disp=display(disp)
      If disp>=(dh/fth)-1
        toplog +1
      EndIf
      If NextElement(Logs())
        ; ne rien faire :) 
      Else
        Break
      EndIf      
    Next
  EndIf
  StopDrawing()
EndProcedure
Procedure display(disp)  
  DrawingMode(#PB_2DDrawing_Transparent)  
  col=RGB(255,255,255)
    t$=Logs()
  For c=1 To Len (t$)
      DrawText(xp*ftw,disp*fth,Mid(t$,c,1),col)                                 
      xp+1        
      If xp>Round(dw/ftw,#PB_Round_Down)
        xp=1
        disp +1
      EndIf                        
  Next    
  ProcedureReturn disp    
EndProcedure
Procedure scankeys()
  For a=255 To 0 Step -1
       If A<>16 And a<>161 And a<>160 And a<> 162 And a<>165 And a<>18 And a<>17 And a<>164
    If Keydown(a)
      If lastkey\id<> a 
        lastkey\id=a
        lastkey\time=ElapsedMilliseconds()
        lastkey\repeat=0
        ProcedureReturn a 
      ElseIf ElapsedMilliseconds()-lastkey\time>350 Or lastkey\repeat>0
        If ElapsedMilliseconds()-lastkey\time>50
        lastkey\id=a
        lastkey\time=ElapsedMilliseconds() 
        lastkey\repeat=1
        ProcedureReturn a 
        EndIf
      EndIf     
  ProcedureReturn 0
EndIf 
EndIf
Next  
lastkey\ID=-1
EndProcedure
Procedure dokey(a)   ; check for keys
      Select a
        Case 37 ; <-
          If cursor\pos>0            
            cursor\pos -1            
          EndIf
          If cursor\pos<78 And cursor\scpos>0 
            cursor\scpos -1
          EndIf
          Case 39 ; ->
          If cursor\pos<Len(cli$)            
            cursor\pos +1
          EndIf
          If cursor\scpos<78 And cursor\scpos<Len(cli$)
            cursor\scpos+1
          EndIf 
           
          ;  cursor\pos +1     
        Case 38 ; ^
        Case 40 ; v
        Case 8  ; backspace
          If cli$<>""
            cli$=Left(cli$,(cursor\pos)-1)+Right(cli$,Len(cli$)-cursor\pos)                    
            cursor\pos -1
            If cursor\pos<78 And cursor\scpos>0 
              cursor\scpos -1
            EndIf            
          EndIf
        Case 46;;supr
          cli$=Left(cli$,(cursor\pos))+Right(cli$,(Len(cli$)-cursor\pos)-1)
        Case 92,93,1,2,14 To 20,91,160,161,163  ;do nothing
        Case 13 
          cursor\pos=0
          cursor\scpos=0
          Output(cli$)
          cli$=""
        Case 36 ; home
          cursor\pos=0
          cursor\scpos=0
        Case 35 ; end
          cursor\pos=Len(cli$)
          If Len(cli$)>78
            cursor\scpos=78
          Else
            cursor\scpos=Len(cli$)
          EndIf
          
        Default ; les autre touches
          cli$=Left(cli$,cursor\pos)+Left(returnchar(a),1)+Right(cli$,Len(cli$)-cursor\pos)
          cursor\pos+1  
          If cursor\pos<79
            cursor\scpos+1
          EndIf
      EndSelect
EndProcedure
Procedure.i cursor()
  If ListSize(cursor\colors())>0
    If cursor\lastblink+cursor\blinkrate<=ElapsedMilliseconds()
      cursor\lastblink=ElapsedMilliseconds()
      If NextElement(cursor\colors())      
      Else
        FirstElement(cursor\colors())
      EndIf
      cursor\col=cursor\colors()
    EndIf  
  EndIf
  If ListSize(cursor\char())>0
    If cursor\lastframe+cursor\animrate<=ElapsedMilliseconds()
      cursor\lastframe=ElapsedMilliseconds()
      If ListSize(cursor\char())          
        If NextElement(cursor\char())            
        Else      
          FirstElement(cursor\char())
        EndIf
        cursor\ch=cursor\char()
      EndIf  
    EndIf
  EndIf   
EndProcedure
Procedure RefreshKeyboard()          ;rafraichis l'etat du clavier
  CopyMemory(*buffer,*state,256)     ; sauvegarde l'etat precedent pour comparaison (keyup)
  GetKeyboardState_(*buffer)         
EndProcedure
Procedure.s returnchar(key)          ; renvoi le caractere saisi
  r.s=Space(4)
  ToAscii_(key,0,*buffer,@r,0) 
  ProcedureReturn r;Mid(r,1,1)
EndProcedure
Procedure Keydown(key)               ; teste si une touche est enfoncée (continue)
  If PeekB(*buffer+key)<0
    ProcedureReturn 1
  EndIf
EndProcedure
Procedure keyup(key)                 ; teste si une touche est lachée
  If PeekB(*buffer+key)>=0 And PeekB(*state+key)<0   
    PokeB(*state+key,PeekB(*buffer+key))
    ProcedureReturn 1
  EndIf
EndProcedure
Procedure keypushed(key)             ; teste si une touche est poussée (instant)
  If PeekB(*buffer+key)<0 And PeekB(*state+key)>=0
    PokeB(*state+key,PeekB(*buffer+key))
    ProcedureReturn 1
  EndIf
EndProcedure
Procedure keyon(key)                 ; teste si une touche  est 'on' ver maj, num lock etc...
  ProcedureReturn PeekB(*buffer+key) &%00000001;1 
EndProcedure
Procedure.s getwallpaperpath()
  String$ = Space(#MAX_PATH)
  SystemParametersInfo_(#SPI_GETDESKWALLPAPER,#MAX_PATH,String$,0)
  ProcedureReturn String$
EndProcedure
Procedure definecursor(cursor$)
  dat.s=StringField(cursor$,2,"@")
  com.s=StringField(cursor$,1,"@")
   ; definit le curseur a l'aide d'une string contenant l'atribut et les données de l'attribut
  Select LCase(com)
    Case "color"   ; definit les couleurs en format rgb hexadecimal -1 pas de couleur ( pas d'affichage du curseur)
                   ; free the color list du cursor
      If ListSize(cursor\colors())
        ClearList(cursor\colors())
      EndIf      
      For col=1 To CountString(dat,":")+1
        f$=StringField(dat,col,":")
        AddElement(cursor\colors())
        If f$="-1"
          cursor\colors()=-1
        Else
          cursor\colors()=RGB(Val("$"+Mid(f$,1,2)),Val("$"+Mid(f$,3,2)),Val("$"+Mid(f$,5,2)))          
        EndIf                
      Next      
    Case "blinkrate"
      cursor\blinkrate=Val(dat)
    Case "sym"   ; definit les symbols  
      If ListSize(cursor\char())
        ClearList(cursor\char())
      EndIf      
      For col=1 To CountString(dat,":")+1
        f$=StringField(dat,col,":")
        AddElement(cursor\char())
        cursor\char()=Val(f$)
      Next 
    Case "animrate"
      cursor\animrate=Val(dat)
  EndSelect 
EndProcedure
Procedure Output(st$)
  If ListSize(Logs())
    LastElement(Logs())
  EndIf 
  AddElement(Logs())  
  Logs()=st$     
  If ListSize(logs())>40
    toplog +1
  EndIf
EndProcedure




ImageImage
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par Zorro »

tu peux aussi utiliser le mode fenetré windows
et ses gadgets .....

voici un petit exemple
http://michel.dobro.free.fr/Purebasic/j ... extuel.zip


le listing est celui ci (l'archive comprends 2 images pour l'exemple)

Code : Tout sélectionner

;{- Enumerations / DataSections
;{ Windows
Enumeration
		#Win
EndEnumeration
;}
;{ Gadgets
Enumeration
		#Image
		#Image2
		#Titre
		#Text_narration
		#String_reponse
EndEnumeration
;}
;{ Fonts
Enumeration
		#Font_Titre
		#Font_Text_narration
EndEnumeration
;}
;{ Images
Enumeration
		#Image_Image_0
EndEnumeration
;}
Define.l Event
;}
UseJPEGImageDecoder()
UsePNGImageDecoder()


Declare OpenWin()


OpenWin()

;******************************
;initialisations du jeux
; ici on affiche une premiere image
; et un premier text de narration

HideGadget(#Image, #False) ; affiche le gadget image
LoadImage(#image,"legends-of-honor.jpg")
SetGadgetState(#image,ImageId(#image))
HideGadget(#Text_narration, #False) ; affiche le gadget narration
SetGadgetText(#text_narration,"tu arrives dans un etrange village , les habitant semble méfiants ! entres tu dans ce village ? ( oui/non )")
HideGadget(#String_reponse, #False) ; affiche le champ input .... 


;*******************************




;{- Event loop
Repeat
		Event = WaitWindowEvent(12)
		Select Event
						; ///////////////////
				Case #PB_Event_Gadget
						Select EventGadget()
								Case #Image
								Case #Titre
								Case #Text_narration
								Case #String_reponse
										select GetGadgetText(#string_reponse)
												Case "oui"
														SetGadgetText(#text_narration,"tu entres dans l'etrange village ! ")
														HideGadget(#String_reponse, #True) ; cache le champ input .... 		  
														LoadImage(#image2,"rue_medieval.jpg")
														SetGadgetState(#image,ImageId(#image2))
														
														; ici mettre la suite de l'histoire		  
												Case "non"
														SetGadgetText(#text_narration,"tu restes a l'exterieur de l'etrange village ! ")
														HideGadget(#String_reponse, #True) ; cache le champ input .... 
														; ici mettre la suite de l'histoire
														EndSelect									
														
										EndSelect
										; ////////////////////////
								Case #PB_Event_CloseWindow
										Select EventWindow()
												Case #Win
														CloseWindow(#Win)
														Break
										EndSelect
						EndSelect
				Forever
				;
				;}
				
				
				
				
				
				
				
				
				
				
				
				
				; ************** Procedures Zone ***************************
				Procedure OpenWin()
						If OpenWindow(#Win, 549, 135, 855, 511, "Jeux", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)   
								ImageGadget(#Image, 65, 60, 720, 360, 0, #PB_Image_Border)
								HideGadget(#Image, #True)
								TextGadget(#Titre, 300, 10, 230, 45, "Mon Jeux textuel")
								TextGadget(#Text_narration, 70, 430, 710, 35, "")
								HideGadget(#Text_narration, #True)
								StringGadget(#String_reponse, 70, 470, 710, 35, "")
								HideGadget(#String_reponse, #True)
								; Gadget Fonts
								SetGadgetFont(#Titre, LoadFont(#Font_Titre, "Microsoft Sans Serif", 20, #PB_Font_HighQuality))  
								SetGadgetFont(#Text_narration, LoadFont(#Font_Text_narration, "Microsoft Sans Serif", 10, #PB_Font_Bold|#PB_Font_HighQuality))
						EndIf
				EndProcedure

Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
drfloyd
Messages : 198
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par drfloyd »

à nouveau merci à vous deux

Je vais tester vos programmes !

Pour info, et vous vous assurez que tous vos conseils me servent. J'ai commencé hier soir un nouveau jeu (3 jeux en cours du coup), un jeu de caisse :

https://twitter.com/GAMOPAT/status/1267133246669819904

je suis content de ces premieres lignes de code, maintenant il y a du boulot pour en faire un jeu complet
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par venom »

Cool j'adorais jouer a ce type de jeu sur Sega.
:oops: j'ai omis le nom d'ailleurs.







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
drfloyd
Messages : 198
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par drfloyd »

testé vos 3 programme

Je vais utilisé la premiere solution ! Simple et efficace

la 2eme est super sexy mais j'ai RIEN compris

Et la solution du Prof Dobro, bien mais je préfère la 1ere, sans fenetre windows

Merci les amis
drfloyd
Messages : 198
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par drfloyd »

venom a écrit :Cool j'adorais jouer a ce type de jeu sur Sega.
:oops: j'ai omis le nom d'ailleurs.


@++
OUT RUN bien sur !!!
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par Ar-S »

Ou Lotus Turbo Challenge sur Amiga :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par venom »

drfloyd a écrit :OUT RUN bien sur !!!
:wink: Bien vu drfloyd






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
drfloyd
Messages : 198
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Jeu d'aventure texte+image à l'ancienne avec PURE

Message par drfloyd »

C'est plus une suite à GREAT AMERICAN ROAD RACE, ce génial et méconnu jeu 8bit, qui est en fait la suite de EUDURO

J'avais réalisé un 3eme opus sur PC en... QB64 (oups)
http://www.gamopat.com/page-8134772.html

Donc la ca sera le 4eme opus

Mais on s'éloigne du sujet : les jeux d'aventures textuels
Répondre