Bonjour
J'ai vu ya 6 mois qu'il existait un standard du Jeu d'arcade qui a été porté sur tous les ordinateur 8 bits (C64, ZX Spectum, Atari 8bits, MSX, Amstrad (avec une version commerciale baclée), et sur Amiga, Atari ST et sur Atari Falcon (via l'émulation de la NES) et pas sur Thomson (alors que c'est largement faisable)
Donc voici le code Basic que j'utilise pour le traitement POKE des pxl en bm16c
Code:
4 REM console ,,,,3
5 print CHR$(&h1b)+CHR$(&h5e)
7 screen 0,0,0: lmax = 20 :cls
39 rem boxf (20,0)-(120,60),9
40 RAM = &h4000
41 dim bubble%(128)
42 for i=0 to 63: read bubble%(i):next
43 for i=0 to 15 : C= bubble%(4*i+1): D= bubble%(4*i+3) : GOSUB 200
46 for k=0 to 7 : ADR = RAM+40*i+4*k :A=PEEK(ADR) : B = peek (ADR+1):POKE ADR,(FILTREA AND A) + (C AND (not FILTREA)) : POKE ADR+1,(FILTREB AND B) + (D AND (not FILTREB))
47 next : next : i=peek(&hE7C3): i=(i OR 1): poke(&he7c3),i
50 for i=0 to 15 :C= bubble%(4*i): D= bubble%(4*i+2) : GOSUB 200
53 for k=0 to 7 : ADR = RAM+40*i+4*k :A=PEEK(ADR) : B = peek (ADR+1):POKE ADR,(FILTREA AND A) + (C AND (not FILTREA)) : POKE ADR+1,(FILTREB AND B) + (D AND (not FILTREB))
54 next : next : i=peek(&hE7C3): i=(i OR 1): poke(&he7c3),i
70 a$=inkey$: if a$="" goto 70
71 color 3,4
72 END
100 REM Data BUBBLE GAUCHE1
101 DATA 255,243,255,255, 255,51,255,255
102 DATA 242,34,51,255 ,34,34,35,255
103 DATA 114,114,47,255, 2,7,35,63
104 DATA 2,7,34,63, 2,7,50,255
105 DATA 2,7,50,63, 114,119,2,63
106 DATA 7,0,37,255, 34,34,37,95
107 DATA 7,114,37,82, 7,119,34,50
108 DATA 87,85,34,34, 87,85,82,47
200 IF (C AND 240) = 240 then FILTREA= 240 ELSE FILTREA = 0
201 IF (C AND 15) = 15 then FILTREA= FILTREA+15
202 IF (D AND 240) = 240 then FILTREB= 240 ELSE FILTREB = 0
203 IF (D AND 15) = 15 then FILTREB= FILTREB+15
204 RETURN
Ce qui donne ça
Mais quand on enlève le commentaire de la ligne 39, quo'n utilise donc BOXF, on obtient ça
Je ne sais pas pourquoi BOXF produit cet effet, c'est comme si la RAMB n'était plus gérée pour les pxl en bmp16c!
Donc c'est un des projets de jeu que j'ai sous Thomson. Il est très populaire et très prenant, mais vu qu'il y a 100 niveaux... Je me contenterais d'en créer un, peut-être une dizaine...
J'ai fait pas mal de tests en Basic pour le PSET (et en Pascal Base) pour voir les vitesses d'affichage, Pascal Base compilé est 10 fois plus rapide en gros.
J'ai donc aussi testé avec des Poke, plus compliqué à gérer parce qu'il faut tenir compte de la RAMA et RAMB... Mais pas en Pascal, je le fais ce WE.
Alors avez vous deviné de quel jeu il s'agit ?
Côté graphisme, je pense qu'un utilitaire permettant de créer des sprites 16c serait le bienvenu. Quelqu'un connait ça sous Thomson ?
Sinon j'ai d'autres projets de jeux dont des tests pour le monde de super Mario Bros... j'ai une idée de comment gérer les tiles et optimiser les affichage de tiles en vitesse, d'ailleurs le code que j'ai inscrit ci dessus donne une idée, notamment pour gérer LA TRASPARENCE en utilisant la couleur 15.