J'ai trouvé l'idée du jeu genre Arkanoid plutôt sympa car je pense que ce n'est pas ultra compliqué à réaliser mais malgré tout pour peu que l'on rajoute quelques effets sonores et visuels le résultat peut être sympathique.
Mais voila comme vous le savez déjà je suis plus que novice en prog. il va donc me falloir un peu d'aide.
Ci-joint mon premier essai :

La balle rebondie sur les murs et la raquette bouge. Whou pas mal !
J'aimerais maintenant que les balles rebondissent également sur la raquette et sur les briques.
Je pense qu'il faut déclarer d'une façon spécial les sprites mais comment ?
Voici mon code :
#include <stdlib.h>
#include <lynx.h>
#include <lynxlib.h>
#include "inc\test.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[];
extern char b1[];
extern char b2[];
extern char b3[];
extern char b4[];
extern char balle[];
extern char raqu[];
extern char SCBfond[];
#asm
_SCBfond 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
extern char SCBb1[];
#asm
_SCBb1 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
extern char SCBb2[];
#asm
_SCBb2 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
extern char SCBb3[];
#asm
_SCBb3 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
extern char SCBb4[];
#asm
_SCBb4 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
extern char SCBballe[];
#asm
_SCBballe 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
extern char SCBraqu[];
#asm
_SCBraqu 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
int x,y;
int a,b;
int dir_a;
int dir_b;
// 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(SCBfond) = 0;
SCBY(SCBfond) = 0;
SCBDATA(SCBfond) = fond;
SCBX(SCBraqu) = 70;
SCBY(SCBraqu) = 90;
SCBDATA(SCBraqu) = raqu;
SCBX(SCBb1) = 20;
SCBY(SCBb1) = 50;
SCBDATA(SCBb1) = b1;
SCBX(SCBb2) = 20;
SCBY(SCBb2) = 40;
SCBDATA(SCBb2) = b2;
SCBX(SCBb3) = 20;
SCBY(SCBb3) = 30;
SCBDATA(SCBb3) = b3;
SCBX(SCBb4) = 20;
SCBY(SCBb4) = 20;
SCBDATA(SCBb4) = b4;
SCBX(SCBballe) = a;
SCBY(SCBballe) = b;
SCBDATA(SCBballe) = balle;
a =160;
b =98;
for(;

{
DrawSprite(SCBfond);
DrawSprite(SCBb1);
DrawSprite(SCBb2);
DrawSprite(SCBb3);
DrawSprite(SCBb4);
DrawSprite(SCBballe);
a=a+dir_a;
if (a>155) {a=155; dir_a=-1;}
if (a<0) {a=0; dir_a=1;}
b=b+dir_b;
if (b>96) {b=96; dir_b=-1;}
if (b<0) {b=0; dir_b=1;}
SCBX(SCBballe) = a;
SCBY(SCBballe) = b;
DrawSprite(SCBballe);
if (joystick & JOY_RIGHT)
x++;
if (x>147) x=147;
if (x<0) x=0;
SCBX(SCBraqu) = x;
DrawSprite(SCBraqu);
if (joystick & JOY_LEFT)
x--;
if (x>147) x=147;
if (x<0) x=0;
SCBX(SCBraqu) = x;
DrawSprite(SCBraqu);
Vsync();
SwapBuffers();
}
}
}