Peut etre en aurais tu un sous le coude Fadest?!
Je peux te donner des indices si tu veux
Déjà, il te faut, plusieurs images. Puis générer chaque objet Lynx avec sprpck.
Ensuite, il te faut générer la librairie contenant tous tes objets.
Ensuite, si on revient au niveau du programme, je vais ajouter en rouge ce qu'il faut que tu fasses.
#include <stdlib.h>
#include <lynx.h>
#include <lynxlib.h>
#include "inc\fond.pal"
/* LYNX-specific #defines: */
#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);
extern char fond[];
/* là, il faut que tu déclares toutes tes images, par exemple, si en plus de fond, tu as fond1 : */
extern char fond1[];
extern char SCB[];
#asm
_SCB dc.b $c0,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm
// assembler vertical retrace syncronisation routine
void Vsync()
{
#asm
vretrace:
lda $fd0a
bne vretrace
#endasm
}
/**************************************************************************
** **
** **
**************************************************************************/
char main()
{
InitIRQ();
CLI;
SetBuffers(SCREEN, RENDER ,0);
/* set the palette */
SetRGB(pal);
DrawFBox(0,0,160,102,0);
SCBX(SCB) = 0;
SCBY(SCB) = 0;
/* la ligne suivante, c'est pour dire quel sprite affiché (fond dans ce cas là)*/
SCBDATA(SCB) = fond;
/* les 3 lignes suivantes, c'est pour afficher le sprite, puis afficher le tout à l'écran */
DrawSprite(SCB);
Vsync();
SwapBuffers();
/* donc, en fait, ce qu'il te manque, c'est attendre que l'utilisateur appuie sur le bouton */
/* puis recopier le bloc de 4 lignes + haut pour afficher une autre image */
for(;
;
}
J'ai cru comprendre que tu n'avais aucune notion en C, donc je pense que tu ne couperas pas à un cours sur les bases du C (boucles, conditions, fonctions...). Ca doit se trouver sur le net.
En attendant, il te faut donc :
détecter l'appui sur un bouton. Le kit BLL gère la variabl joystick qui contient l'info sur le pad et les boutons (direction, boutons...).
Le plus simple pour attendre que l'utilisateur appuies sur le joystick ou un bouton, c'est d'ajouter la ligne suivante :
while(!joystick);
ensuite, il faut attendre qu'il ait fini d'appuyer (sinon, la console réagit trop vite)
whiel(joystick);
Petite explication : while, c'est une boucle "tant que"
! c'est une négation, donc while(!joystick); ça veut dire tant que joystick vaut 0
Grosso modo, ça te fera quelque chose comme ça :
SCBDATA(SCB) = fond;
DrawSprite(SCB);
Vsync();
SwapBuffers();
while(!joystick);
while(joystick);
SCBDATA(SCB) = fond1;
DrawSprite(SCB);
Vsync();
SwapBuffers();
for(;
;
que je te conseillerais de faire plutôt comme ça :
for(;
{
SCBDATA(SCB) = fond;
DrawSprite(SCB);
Vsync();
SwapBuffers();
while(!joystick);
while(joystick);
SCBDATA(SCB) = fond1;
DrawSprite(SCB);
Vsync();
SwapBuffers();
while(!joystick);
while(joystick);
}
le for(;

c'est une boucle, le pavé qui se trouve entre les { sera exécuté indéfiniment (tu boucleras sur tes images).
La sayntaxe exacte de for est la suivante :
for (condition initiale; condition de fin; incrément)
par exemple for(i=0;i<10;i++) exécutera la boucle 10 fois (la variable i commence à 0, est incrémentée de 1 unité tant qu'elle est inférieure à 10)
Attention, en C, toutes les variables doivent être initialisées, donc il te faudra une ligne
int i;
quelque part en local ou global (je pense qu'un cours de C sur le net serait utile car je détricote tout là...)
Et recopier le bloc en bleu pour chaque nouvelle image (attention, si ton test.o fait plus de 40ko, ça ne devrait plus marcher, pas assez de ram dans la Lynx).
Il te restera un problème : si toutes tes images ont la même palette, c'est bon, ça ira, sinon, elle seront affichées avec la palette de fond.bmp et ça fera moche.
Je te laisse faire l'essai pour te rendre compte, et on voit après comment déclarer plusieurs palettes
Et aussi bouger/zoomer une image à l'écran bientôt
