Projet "Dungeon Chaos"

Projet "Dungeon Chaos"

Messagede Fantomas » Ven 8 Oct 2010 14:07

Comme je l'ai annoncé dans un autre sujet (ICI), je suis en train d'adapter en GFW un petit jeu nommé "Dungeon Chaos": On se déplace dans un labyrhinte, et on doit tout simplement trouver la sortie pour passer au niveau suivant... ;)

Une fois le source adapté en GFW je le posterai ici, puis je propose d'en faire une version en GFA Basic (donc pour Atari).

Enfin, cerise sur le gâteau, j'essaierai d'améliorer ces deux versions en y ajoutant une image de présentation, un sol animé, un ciel.... :o

Je ne sais pas à l'avance comment je vais faire tout ça, je vais découvrir en même temps que vous... je n'ai pas programmé en GFA depuis un bout de temps, il va falloir que je redécouvre ( je m'aiderai des tutorials et autres articles de ce forum) !

Je posterai mes travaux au fur et à mesure... voilà le (petit) projet "Dungeon Chaos" :lol: :lol:

Fantomas :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Projet "Dungeon Chaos"

Messagede Fantomas » Ven 8 Oct 2010 15:08

Le source Qbasic original:

Code: Tout sélectionner
'
' CHAOS DUNGEON - QBASIC
'
GOSUB intro
LET pi = 3.14
LET angle = 0
LET cfloor = 1
DIM map(10, 20)
DIM sint(359) AS INTEGER
DIM cost(359) AS INTEGER
FOR z = 0 TO 359
LET sint(z) = SIN(z * pi / 180) * 100
LET cost(z) = COS(z * pi / 180) * 100
NEXT z
nextfloor:
FOR snd = 440 TO 1000 STEP 10
SOUND snd, .1
NEXT snd
SELECT CASE cfloor
CASE 1
RESTORE mapdata1
CASE 2
RESTORE mapdata2
CASE 3
RESTORE mapdata3
CASE 4
GOSUB win
END SELECT
FOR ry = 0 TO 19
FOR rx = 0 TO 9
READ map(rx, ry)
IF map(rx, ry) = 16 THEN
LET map(rx, ry) = 0
LET px = rx + 1
LET py = ry + 1
END IF
NEXT rx
NEXT ry
LET px = px * 1000
LET py = py * 1000
SCREEN 13
DO
LET s = -5
FOR z = -31 TO 32
LET s = s + 5
LET a = angle + z
IF a < 0 THEN LET a = a + 360
IF a > 359 THEN LET a = a - 360
LET slx = px
LET sly = py
LET dc = 0
DO
LET slx = slx - sint(a)
LET sly = sly - cost(a)
LET m = map(slx \ 1000, sly \ 1000)
LET dc = dc + 1
LOOP UNTIL m
LET dist = 1000 / dc
LINE (s, 0)-(s + 4, 99 - dist), 1, BF
IF m > 0 AND m < 16 THEN LINE (s, 100 - dist)-(s + 4, 100 + dist), m, BF
IF m = 17 THEN LINE (s, 100 - dist)-(s + 4, 100 + dist), INT(RND * 15) + 1, BF
LINE (s, 101 + dist)-(s + 4, 199), 6, BF
NEXT z
LOCATE 1, 1: COLOR 4: PRINT " CHAOS "
LOCATE 2, 1: COLOR 4: PRINT "DUNGEON"
LOCATE 1, 10: COLOR 15: PRINT "FLOOR:"; cfloor
DO
LET k = INP(96)
LOOP UNTIL INKEY$ <> ""
LET opx = px
LET opy = py
SELECT CASE k
CASE 72
LET px = px - sint(angle) * 5
LET py = py - cost(angle) * 5
CASE 80
LET px = px + sint(angle) * 5
LET py = py + cost(angle) * 5
CASE 77
LET angle = angle + 5
CASE 75
LET angle = angle - 5
CASE 1
END
END SELECT
SELECT CASE map(INT(px / 1000), INT(py / 1000))
CASE 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
SOUND 500, .5
LET px = opx
LET py = opy
CASE 17
LET cfloor = cfloor + 1
GOTO nextfloor
END SELECT
IF angle < 0 THEN LET angle = angle + 360
IF angle > 359 THEN LET angle = angle - 360
LOOP
mapdata1:
DATA 07,08,07,08,07,08,07,08,07,08
DATA 08,00,08,00,00,00,08,00,00,07
DATA 07,00,07,00,00,00,07,00,00,08
DATA 08,00,08,00,16,00,08,07,00,07
DATA 07,00,07,00,00,00,00,00,00,08
DATA 08,00,00,00,00,00,00,00,00,07
DATA 07,00,07,08,07,08,07,00,00,08
DATA 08,00,00,00,08,00,08,00,00,07
DATA 07,00,00,00,07,00,00,00,00,08
DATA 08,07,08,00,08,07,00,07,08,07
DATA 07,17,07,00,00,00,00,00,00,08
DATA 08,00,08,00,08,00,00,07,00,07
DATA 07,00,07,00,07,00,00,08,00,08
DATA 08,00,08,00,08,00,00,07,00,07
DATA 07,00,07,08,07,08,00,08,00,08
DATA 08,00,00,00,00,07,00,07,00,07
DATA 07,08,07,00,07,08,00,08,00,08
DATA 08,00,08,00,08,00,00,00,00,07
DATA 07,00,00,00,00,00,00,00,00,08
DATA 08,07,08,07,08,07,08,07,08,07
mapdata2:
DATA 05,03,05,03,05,03,05,03,05,03
DATA 03,00,03,00,00,05,00,00,00,05
DATA 05,00,05,00,00,03,00,03,00,03
DATA 03,00,00,00,00,05,00,05,00,05
DATA 05,00,05,00,00,03,00,03,00,03
DATA 03,00,03,05,03,05,00,05,00,05
DATA 05,00,00,03,05,00,00,03,00,03
DATA 03,00,00,00,03,00,00,00,00,05
DATA 05,00,00,00,16,00,05,03,00,03
DATA 03,00,03,05,03,00,00,00,00,05
DATA 05,00,00,00,00,00,00,00,00,03
DATA 03,00,03,00,00,00,03,00,00,05
DATA 05,00,05,00,00,00,05,00,00,03
DATA 03,00,03,05,03,00,03,00,00,05
DATA 05,00,05,00,05,00,05,00,00,03
DATA 03,00,00,00,00,00,00,00,03,05
DATA 05,00,00,03,00,03,00,00,00,03
DATA 03,05,03,05,00,05,03,05,00,05
DATA 05,17,00,00,00,00,05,00,00,03
DATA 03,05,03,05,03,05,03,05,03,05
mapdata3:
DATA 04,07,04,07,04,07,04,07,04,07
DATA 07,00,00,00,00,00,00,00,17,04
DATA 04,07,04,07,04,07,00,07,00,07
DATA 07,00,00,00,00,04,00,04,00,04
DATA 04,00,04,07,00,07,00,07,00,07
DATA 07,00,00,04,00,00,00,04,00,04
DATA 04,07,04,07,00,07,00,00,00,07
DATA 07,00,00,00,00,00,00,00,00,04
DATA 04,07,04,07,04,07,04,07,00,07
DATA 07,00,00,00,00,00,00,00,00,04
DATA 04,00,00,00,04,07,04,00,04,07
DATA 07,00,07,04,07,00,07,00,00,04
DATA 04,00,00,00,00,00,04,00,07,07
DATA 07,00,07,04,07,04,07,00,00,04
DATA 04,00,00,00,00,00,04,07,00,07
DATA 07,00,07,04,07,00,07,00,00,04
DATA 04,00,04,00,04,00,04,00,04,07
DATA 07,00,07,00,07,00,07,00,00,04
DATA 04,16,04,00,00,00,04,00,00,07
DATA 07,04,07,04,07,04,07,04,07,04
intro:
CLS
COLOR 4
PRINT "C H A O S D U N G E O N"
PRINT
COLOR 15
PRINT "GEEK BASIC SOFTWARE"
PRINT
COLOR 1
PRINT "WELCOME TO THE DUNGEON, BRAVE ADVENTURER!"
PRINT "YOUR GOAL IS TO ESCAPE FROM THE DUNGEON."
PRINT "THERE WILL BE A NUMBER OF FLOORS IN THE DUNGEON."
PRINT "EACH WILL HAVE AN EXIT TO THE NEXT FLOOR."
PRINT "REACH THE FINAL EXIT AND YOU WILL BE VICTORIOUS!"
PRINT
PRINT "USE THE ARROW KEYS TO MOVE A` ND ESCAPE TO EXIT."
PRINT
PRINT "PRESS ANY KEY TO BEGIN YOUR ADVENTURE..."
DO
LOOP UNTIL INKEY$ <> ""
RETURN
win:
SCREEN 0
COLOR 1
PRINT "YOU HAVE REACHED THE END OF THE DUNGEON!!!"
PRINT "VICTORY!"
END
RETURN


1ère étape: on copie le source original (Qbasic) dans l'interpreteur GFA Windows (copier puis Paste dans GFW):

Code: Tout sélectionner
'
' CHAOS DUNGEON - (presque) GFW
'
GOSUB intro
LET pi = 3.14
LET angle = 0
LET cfloor = 1
DIM map(10, 20)
'=>>DIM sint(359) AS INTEGER
'=>>DIM cost(359) AS INTEGER
FOR z = 0 TO 359
  LET sint(z) = SIN(z * PI / 180) * 100
  LET cost(z) = COS(z * PI / 180) * 100
NEXT z
nextfloor:
FOR snd = 440 TO 1000 STEP 10
  SOUND snd, .1
NEXT snd
'=>>SELECT CASE cfloor
CASE 1
RESTORE mapdata1
CASE 2
RESTORE mapdata2
CASE 3
RESTORE mapdata3
CASE 4
GOSUB win
ENDSELECT
FOR ry = 0 TO 19
FOR rx = 0 TO 9
  READ map(rx, ry)
  IF map(rx, ry) = 16 THEN
    LET map(rx, ry) = 0
    LET px = rx + 1
    LET py = ry + 1
  ENDIF
NEXT rx
NEXT ry
LET px = px * 1000
LET py = py * 1000
SCREEN 13
DO
LET s = -5
FOR z = -31 TO 32
  LET s = s + 5
  LET a = angle + z
  IF a < 0 THEN LET a = a + 360
  IF a > 359 THEN LET a = a - 360
  LET slx = px
  LET sly = py
  LET dc = 0
  DO
    LET slx = slx - sint(a)
    LET sly = sly - cost(a)
    LET m = map(slx \ 1000, sly \ 1000)
    LET dc = dc + 1
  LOOP UNTIL m
  LET dist = 1000 / dc
  '=>>LINE (s, 0)-(s + 4, 99 - dist), 1, BF
  '=>>IF m > 0 AND m < 16 THEN LINE (s, 100 - dist)-(s + 4, 100 + dist), m, BF
  '=>>IF m = 17 THEN LINE (s, 100 - dist)-(s + 4, 100 + dist), INT(RND * 15) + 1, BF
  '=>>LINE (s, 101 + dist)-(s + 4, 199), 6, BF
NEXT z
'=>>LOCATE 1, 1: COLOR 4: PRINT " CHAOS "
'=>>LOCATE 2, 1: COLOR 4: PRINT "DUNGEON"
'=>>LOCATE 1, 10: COLOR 15: PRINT "FLOOR:"; cfloor
DO
  '=>>LET k = INP(96)
LOOP UNTIL INKEY$ <> ""
LET opx = px
LET opy = py
'=>>SELECT CASE k
CASE 72
LET px = px - sint(angle) * 5
LET py = py - cost(angle) * 5
CASE 80
LET px = px + sint(angle) * 5
LET py = py + cost(angle) * 5
CASE 77
LET angle = angle + 5
CASE 75
LET angle = angle - 5
CASE 1
END
ENDSELECT
'=>>SELECT CASE map(INT(px / 1000), INT(py / 1000))
CASE 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
SOUND 500, .5
LET px = opx
LET py = opy
CASE 17
LET cfloor = cfloor + 1
GOTO nextfloor
ENDSELECT
IF angle < 0 THEN LET angle = angle + 360
IF angle > 359 THEN LET angle = angle - 360
LOOP
mapdata1:
DATA 07,08,07,08,07,08,07,08,07,08
DATA 08,00,08,00,00,00,08,00,00,07
DATA 07,00,07,00,00,00,07,00,00,08
DATA 08,00,08,00,16,00,08,07,00,07
DATA 07,00,07,00,00,00,00,00,00,08
DATA 08,00,00,00,00,00,00,00,00,07
DATA 07,00,07,08,07,08,07,00,00,08
DATA 08,00,00,00,08,00,08,00,00,07
DATA 07,00,00,00,07,00,00,00,00,08
DATA 08,07,08,00,08,07,00,07,08,07
DATA 07,17,07,00,00,00,00,00,00,08
DATA 08,00,08,00,08,00,00,07,00,07
DATA 07,00,07,00,07,00,00,08,00,08
DATA 08,00,08,00,08,00,00,07,00,07
DATA 07,00,07,08,07,08,00,08,00,08
DATA 08,00,00,00,00,07,00,07,00,07
DATA 07,08,07,00,07,08,00,08,00,08
DATA 08,00,08,00,08,00,00,00,00,07
DATA 07,00,00,00,00,00,00,00,00,08
DATA 08,07,08,07,08,07,08,07,08,07
mapdata2:
DATA 05,03,05,03,05,03,05,03,05,03
DATA 03,00,03,00,00,05,00,00,00,05
DATA 05,00,05,00,00,03,00,03,00,03
DATA 03,00,00,00,00,05,00,05,00,05
DATA 05,00,05,00,00,03,00,03,00,03
DATA 03,00,03,05,03,05,00,05,00,05
DATA 05,00,00,03,05,00,00,03,00,03
DATA 03,00,00,00,03,00,00,00,00,05
DATA 05,00,00,00,16,00,05,03,00,03
DATA 03,00,03,05,03,00,00,00,00,05
DATA 05,00,00,00,00,00,00,00,00,03
DATA 03,00,03,00,00,00,03,00,00,05
DATA 05,00,05,00,00,00,05,00,00,03
DATA 03,00,03,05,03,00,03,00,00,05
DATA 05,00,05,00,05,00,05,00,00,03
DATA 03,00,00,00,00,00,00,00,03,05
DATA 05,00,00,03,00,03,00,00,00,03
DATA 03,05,03,05,00,05,03,05,00,05
DATA 05,17,00,00,00,00,05,00,00,03
DATA 03,05,03,05,03,05,03,05,03,05
mapdata3:
DATA 04,07,04,07,04,07,04,07,04,07
DATA 07,00,00,00,00,00,00,00,17,04
DATA 04,07,04,07,04,07,00,07,00,07
DATA 07,00,00,00,00,04,00,04,00,04
DATA 04,00,04,07,00,07,00,07,00,07
DATA 07,00,00,04,00,00,00,04,00,04
DATA 04,07,04,07,00,07,00,00,00,07
DATA 07,00,00,00,00,00,00,00,00,04
DATA 04,07,04,07,04,07,04,07,00,07
DATA 07,00,00,00,00,00,00,00,00,04
DATA 04,00,00,00,04,07,04,00,04,07
DATA 07,00,07,04,07,00,07,00,00,04
DATA 04,00,00,00,00,00,04,00,07,07
DATA 07,00,07,04,07,04,07,00,00,04
DATA 04,00,00,00,00,00,04,07,00,07
DATA 07,00,07,04,07,00,07,00,00,04
DATA 04,00,04,00,04,00,04,00,04,07
DATA 07,00,07,00,07,00,07,00,00,04
DATA 04,16,04,00,00,00,04,00,00,07
DATA 07,04,07,04,07,04,07,04,07,04
intro:
CLS
COLOR 4
PRINT "C H A O S D U N G E O N"
PRINT
COLOR 15
PRINT "GEEK BASIC SOFTWARE"
PRINT
COLOR 1
PRINT "WELCOME TO THE DUNGEON, BRAVE ADVENTURER!"
PRINT "YOUR GOAL IS TO ESCAPE FROM THE DUNGEON."
PRINT "THERE WILL BE A NUMBER OF FLOORS IN THE DUNGEON."
PRINT "EACH WILL HAVE AN EXIT TO THE NEXT FLOOR."
PRINT "REACH THE FINAL EXIT AND YOU WILL BE VICTORIOUS!"
PRINT
PRINT "USE THE ARROW KEYS TO MOVE A` ND ESCAPE TO EXIT."
PRINT
PRINT "PRESS ANY KEY TO BEGIN YOUR ADVENTURE..."
DO
LOOP UNTIL INKEY$ <> ""
RETURN
win:
SCREEN 0
COLOR 1
PRINT "YOU HAVE REACHED THE END OF THE DUNGEON!!!"
PRINT "VICTORY!"
END
RETURN


Les lignes non comprises par GFW sont précédées de '=>>. Soit l'instruction correspondante n'existe pas, soit la syntaxe n'est pas la même, soit il y a plusieurs instructions sur la même ligne....

Bref il faut parcourir tout le listing et remplacer ou corriger le code...

Fantomas :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Projet "Dungeon Chaos"

Messagede Fantomas » Ven 8 Oct 2010 17:14

Bon, voici le code en GFW:

- tous les LET, ainsi que les THEN ont été supprimés
- Les SELECT CASE ont été transformés en SELECT
- Les expressions du style a=a+1 ont été transformés en INC a (idem pour les a=a-1 en DEC a...)
- Toutes les lignes qui comprenaient plusieurs instructions ont été décomposées en plusieurs lignes...
- l'instruction LINE (x, y)-(x1,y1),c, BF correspond à PBOX en GFA: PBOX x,y,x1,y1, c étant la couleur de remplissage (BF signifie BOX FILL...)
- win et intro ont été mis sous forme de PROCEDURES. Nous laisseront ces procedures telles quelles pour le moment (affichage de texte...)
On a juste ajouté l'ouverture d'une fenêtre 320x200 à la procédure intro: OPENW #1,(_X / 2) - 160,(_Y / 2) - 100,320,200,80
C'est ce qui correspond au SCREEN13 en QBASIC, et quelle coincidence sur ATARI ST la basse résolution est également 320x200 ;)
Pour le test des touches on utilise l'instruction KEYTEST

Code: Tout sélectionner
' ----------------------
'  CHAOS DUNGEON - GFW
'     By Fantomas
' ----------------------
@intro
angle = 0
cfloor = 1
DIM map(10, 20)
DIM sint(359)
DIM cost(359)
FOR z = 0 TO 359
  sint(z) = SIN(z * PI / 180) * 100
  cost(z) = COS(z * PI / 180) * 100
NEXT z
nextfloor:
' FOR snd = 440 TO 1000 STEP 10
' SOUND snd, .1
' NEXT snd
SELECT cfloor
CASE 1
  RESTORE mapdata1
CASE 2
  RESTORE mapdata2
CASE 3
  RESTORE mapdata3
CASE 4
  @win
ENDSELECT
FOR ry = 0 TO 19
  FOR rx = 0 TO 9
    READ map(rx, ry)
    IF map(rx, ry) = 16
      map(rx, ry) = 0
      px = rx + 1
      py = ry + 1
    ENDIF
  NEXT rx
NEXT ry
px = px * 1000
py = py * 1000
DO
  s = -5
  FOR z = -31 TO 32
    ADD s, 5
    a = angle + z
    IF a < 0
      ADD a,360
    ENDIF
    IF a > 359
      SUB a,360
    ENDIF
    slx = px
    sly = py
    dc = 0
    DO
      slx = slx - sint(a)
      sly = sly - cost(a)
      m = map(slx / 1000, sly / 1000)
      INC dc
    LOOP UNTIL m
    dist = 1000 / dc
    COLOR 1
    PBOX s, 0,s + 4, 99 - dist
    IF m > 0 AND m < 16
      COLOR m
      PBOX s,100 - dist,s + 4,100 + dist
    ENDIF
    IF m = 17
      COLOR INT(RND * 15) + 1
      PBOX s, 100 - dist,s + 4, 100 + dist
    ENDIF
    COLOR 6
    PBOX s, 101 + dist,s + 4, 199
  NEXT z
  ' COLOR 15
  ' PRINT "FLOOR: "; cfloor
  opx = px
  opy = py
  KEYTEST k
  SELECT BYTE(k)
  CASE 38
    px = px - sint(angle) * 5
    py = py - cost(angle) * 5
  CASE 40
    px = px + sint(angle) * 5
    py = py + cost(angle) * 5
  CASE 39
    ADD angle, 5
  CASE 37
    SUB angle, 5
  CASE 27
    CLOSEW #1
    END
  ENDSELECT
  SELECT  map(INT(px / 1000), INT(py / 1000))
  CASE 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
    ' SOUND 500, .5
    px = opx
    py = opy
  CASE 17
    INC cfloor
    GOTO nextfloor
  ENDSELECT
  IF angle < 0
    ADD angle,360
  ENDIF
  IF angle > 359
    SUB angle,360
  ENDIF
LOOP
mapdata1:
DATA 07,08,07,08,07,08,07,08,07,08
DATA 08,00,08,00,00,00,08,00,00,07
DATA 07,00,07,00,00,00,07,00,00,08
DATA 08,00,08,00,16,00,08,07,00,07
DATA 07,00,07,00,00,00,00,00,00,08
DATA 08,00,00,00,00,00,00,00,00,07
DATA 07,00,07,08,07,08,07,00,00,08
DATA 08,00,00,00,08,00,08,00,00,07
DATA 07,00,00,00,07,00,00,00,00,08
DATA 08,07,08,00,08,07,00,07,08,07
DATA 07,17,07,00,00,00,00,00,00,08
DATA 08,00,08,00,08,00,00,07,00,07
DATA 07,00,07,00,07,00,00,08,00,08
DATA 08,00,08,00,08,00,00,07,00,07
DATA 07,00,07,08,07,08,00,08,00,08
DATA 08,00,00,00,00,07,00,07,00,07
DATA 07,08,07,00,07,08,00,08,00,08
DATA 08,00,08,00,08,00,00,00,00,07
DATA 07,00,00,00,00,00,00,00,00,08
DATA 08,07,08,07,08,07,08,07,08,07
mapdata2:
DATA 05,03,05,03,05,03,05,03,05,03
DATA 03,00,03,00,00,05,00,00,00,05
DATA 05,00,05,00,00,03,00,03,00,03
DATA 03,00,00,00,00,05,00,05,00,05
DATA 05,00,05,00,00,03,00,03,00,03
DATA 03,00,03,05,03,05,00,05,00,05
DATA 05,00,00,03,05,00,00,03,00,03
DATA 03,00,00,00,03,00,00,00,00,05
DATA 05,00,00,00,16,00,05,03,00,03
DATA 03,00,03,05,03,00,00,00,00,05
DATA 05,00,00,00,00,00,00,00,00,03
DATA 03,00,03,00,00,00,03,00,00,05
DATA 05,00,05,00,00,00,05,00,00,03
DATA 03,00,03,05,03,00,03,00,00,05
DATA 05,00,05,00,05,00,05,00,00,03
DATA 03,00,00,00,00,00,00,00,03,05
DATA 05,00,00,03,00,03,00,00,00,03
DATA 03,05,03,05,00,05,03,05,00,05
DATA 05,17,00,00,00,00,05,00,00,03
DATA 03,05,03,05,03,05,03,05,03,05
mapdata3:
DATA 04,07,04,07,04,07,04,07,04,07
DATA 07,00,00,00,00,00,00,00,17,04
DATA 04,07,04,07,04,07,00,07,00,07
DATA 07,00,00,00,00,04,00,04,00,04
DATA 04,00,04,07,00,07,00,07,00,07
DATA 07,00,00,04,00,00,00,04,00,04
DATA 04,07,04,07,00,07,00,00,00,07
DATA 07,00,00,00,00,00,00,00,00,04
DATA 04,07,04,07,04,07,04,07,00,07
DATA 07,00,00,00,00,00,00,00,00,04
DATA 04,00,00,00,04,07,04,00,04,07
DATA 07,00,07,04,07,00,07,00,00,04
DATA 04,00,00,00,00,00,04,00,07,07
DATA 07,00,07,04,07,04,07,00,00,04
DATA 04,00,00,00,00,00,04,07,00,07
DATA 07,00,07,04,07,00,07,00,00,04
DATA 04,00,04,00,04,00,04,00,04,07
DATA 07,00,07,00,07,00,07,00,00,04
DATA 04,16,04,00,00,00,04,00,00,07
DATA 07,04,07,04,07,04,07,04,07,04
'
PROCEDURE intro
  OPENW #1,(_X / 2) - 160,(_Y / 2) - 100,320,200,80
  TITLEW #1," Chaos Dungeon"
  CLS
  COLOR 4
  PRINT "C H A O S D U N G E O N"
  PRINT
  COLOR 15
  PRINT "GEEK BASIC SOFTWARE"
  PRINT
  COLOR 1
  PRINT "WELCOME TO THE DUNGEON, BRAVE ADVENTURER!"
  PRINT "YOUR GOAL IS TO ESCAPE FROM THE DUNGEON."
  PRINT "THERE WILL BE A NUMBER OF FLOORS IN THE DUNGEON."
  PRINT "EACH WILL HAVE AN EXIT TO THE NEXT FLOOR."
  PRINT "REACH THE FINAL EXIT AND YOU WILL BE VICTORIOUS!"
  PRINT
  PRINT "USE THE ARROW KEYS TO MOVE A` ND ESCAPE TO EXIT."
  PRINT
  PRINT "PRESS ANY KEY TO BEGIN YOUR ADVENTURE..."
  DO
  LOOP UNTIL INKEY$ <> ""
RETURN
'
PROCEDURE win
  COLOR 1
  PRINT "YOU HAVE REACHED THE END OF THE DUNGEON!!!"
  PRINT "VICTORY!"
  END
RETURN


Le source est convertit (mais pas optimisé), il est possible d'y jouer (touches fléchées pour se déplacer), ESC pour quitter...
La présentation (intro) et la fin (win) sont en vrac mais pas d'importance on améliorera tout ça après...

Sur PC c'est très fluide (la fenêtre est petite sur du 1280x1024 !), il faut maintenant l'adapter en GFA et l'optimiser (calculs en entiers, le maximum de précalculs...) et là c'est une autre paire de manches. :roll:

A suivre...

Fantomas :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Projet "Dungeon Chaos"

Messagede Fantomas » Ven 8 Oct 2010 22:18

Pour finir la journée, une petite pose détente avec un peu de graphisme...une copie d'écran du jeu en GFW:

Image

Un essai d'écran de présentation (320x200), réalisé sous Paint Shop Pro. J'ai cherché une photo de ciel un peu sombre/orageux, une tour que j'ai découpé puis incliné et enfin collé sur le ciel :o

Image

Le même en 16 couleurs:

Image

L'image est ensuite convertie en PI1 (Degas Elite) avec XnView

Je me retrouve donc avec une image 16 couleurs que je vais pouvoir afficher en intro dans mon (futur) programme en GFA 8-)

Sur ce bonne nuit ....

Fantomas :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Projet "Dungeon Chaos"

Messagede shadow272 » Sam 9 Oct 2010 07:57

Belle avancée,
Il faudra vraiment que je m'y mette au GFA PC.
Un ATARI, le GFA c'est le bonheur
Avatar de l’utilisateur
shadow272
Administrateur du site
 
Messages: 211
Inscription: Mer 15 Oct 2008 21:40
Localisation: Hainaut, Belgique

Re: Projet "Dungeon Chaos"

Messagede jbfou » Dim 10 Oct 2010 06:37

VACHE
BRAVO encore un jeux de plus pour nos machine
quand meme c'est un jolie travail
jbfou
 
Messages: 80
Inscription: Lun 23 Fév 2009 20:47

Re: Projet "Dungeon Chaos"

Messagede Fantomas » Dim 10 Oct 2010 08:15

"VACHE
BRAVO encore un jeux de plus pour nos machine
quand meme c'est un jolie travail"


Il reste quand même pas mal de travail avant de terminer la version PC (GFW) et la version Atari (GFA), plus d'éventuelles améliorations ... ;)

Vous allez pouvoir suivre l'avancement ici même :lol:

Fantomas :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52

Re: Projet "Dungeon Chaos"

Messagede tomchi » Dim 10 Oct 2010 09:39

Une rapide conversion en 16 coul avec le plugin d'Orion :p
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Avatar de l’utilisateur
tomchi
Administrateur du site
 
Messages: 342
Inscription: Mer 15 Oct 2008 20:51

Re: Projet "Dungeon Chaos"

Messagede leglod » Mar 12 Oct 2010 21:52

Une photo digne de Mystere l'emission d eTF1 :D
Par contre un jeu de Role en 3D face pleine sur ST bof , y a le flic de Berverly hills il me semble une fase de jeu dans ce style a l'epoque c'etait bof, ya aussi Midimaze voir SubStation en plus evoluer mais au final c'est pas genial !
a faire un truc, genre Dungeon Master au case par case serait plus interessent car demande moins d r esource a la machine et peut donner des chose vraiment jolie avec des photo digitaliser surtout avec du 16 niveau de gris !
Avatar de l’utilisateur
leglod
 
Messages: 182
Inscription: Jeu 6 Nov 2008 22:33
Localisation: Montpellier (34) sud France

Une pause s'impose

Messagede Fantomas » Sam 16 Oct 2010 13:49

Une petite pause dans le projet: le GFW ne tourne pas sur mon nouveau PC 64 bits :cry:

Pour leglod: le but n'est pas de faire un super jeu pour Atari, mais de montrer que l'on peu adapter un programme GFW en GFA facilement, le tout en partant d'un source Qbasic :mrgreen:

J'ai chargé le source GFW dans le GFA sur Hatari, mais en le laissant tel quel: ça rame (même compilé). Pour avoir une vitesses correcte il va falloir faire pas mal de modifs :|

Fantomas :mrgreen:
Avatar de l’utilisateur
Fantomas
 
Messages: 43
Inscription: Dim 4 Jan 2009 11:52


Retourner vers GFA PC

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron