philip-lynxLe 16/12/2012 à 18:51
alors, au début du code:
#include <stdlib.h>
#include <lynx.h>
#include <lynxlib.h>
#include "inc\c0.pal"
#define JOY_RIGHT 0x10
#define JOY_LEFT 0x20
#define JOY_DOWN 0x40
#define JOY_UP 0x80
#define BUTTON_OPTION1 0x08
#define BUTTON_OPTION2 0x04
#define BUTTON_INNER 0x02
#define BUTTON_OUTER 0x01
#define BUTTON_PAUSE 0x01
char SCREEN[8160] at (MEMTOP-16320);
char RENDER[8160] at (MEMTOP-8160);
// ------------------------------------
char compteur;
int i, unite, dizaine;
// clip du sprite chiffres: 0123456789
extern uchar c0[];
extern uchar c1[];
extern uchar c2[];
extern uchar c3[];
extern uchar c4[];
extern uchar c5[];
extern uchar c6[];
extern uchar c7[];
extern uchar c8[];
extern uchar c9[];
uchar *chtab[10] = {c0, c1, c2, c3, c4, c5, c6, c7, c8,c9};
uchar _SCB_UNITES[]; // déclaration d'un nouveau controleur de sprite
uchar _SCB_DIZAINES[]; // déclaration d'un nouveau controleur de sprite
#asm
_SCB_UNITES
dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
_SCB_DIZAINES
dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm
// ------------------------------------
void Vsync()
{
#asm
vretrace:
lda $fd0a
bne vretrace
#endasm
}
puis:
char main()
{
InitIRQ();
CLI;
SetBuffers(SCREEN, RENDER ,0);
SetRGB(c0_pal);
SCBX(SCB_UNITES) = 81;
SCBY(SCB_UNITES) = 50;
SCBX(SCB_DIZAINES) = 74;
SCBY(SCB_DIZAINES) = 50;
SCBNEXT(_SCB_UNITES) = _SCB_DIZAINES; // chainage de sprite
compteur = 99;
// Boucle principale :
while(1)
{
Vsync();
SwapBuffers();
unite = compteur % 10;
dizaine = compteur / 10 % 10;
SCBDATA(_SCB_UNITES) = chtab[unite%10];
SCBDATA(_SCB_DIZAINES) = chtab[dizaine%10];
DrawSprite(SCB_UNITES); // un seul drawsprite jean-philippe
}
}