oooh ben comment on fait alors pour le tilemap engine sur ti89 si il manque toujours des sprites.
Sinon j'ai trouvé une solution pour du scrolling mais je suis obligé d'utiliser des fonctions en plus.
Donc je voulais savoir si il était possible de faire 2 PortSet en meme temps.
Ex:
void* virtual_LIGHT=malloc(LCD_SIZE);
void* virtual_DARK=malloc(LCD_SIZE);
PortSet(virtual_LIGHT,239,127);
PortSet(virtual_DARK,239,127);
#include <tigcclib.h>
#include <extgraph.h>
#define MAP_Y 7
#define MAP_X 10
unsigned char map[12][20]={
{5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6},
{7,1,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,5},
{5,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,4,7},
{7,1,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,5},
{5,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,4,7},
{7,1,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,5},
{5,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,4,7},
{7,1,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,5},
{5,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,4,7},
{7,1,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,5},
{5,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,4,7},
{6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5},
};
static unsigned short bushL[]={0x0, 0xE70, 0x15A8, 0x766E, 0x8A51, 0xA5A5, 0xB5AD, 0xDE7B, 0x6BD6, 0x5A5A, 0x45A2, 0x7DBE, 0x366C, 0x1FF8, 0xE70, 0x3C0};
static unsigned short bushD[]={0x0, 0xE70, 0x1188, 0x724E, 0x8A51, 0x8421, 0x8421, 0xDE7B, 0x63C6, 0x4242, 0x4422, 0x7C3E, 0x366C, 0x1FF8, 0xE70, 0x3C0};
static unsigned short bush2L[]={0x0, 0x180, 0x6246, 0x55AA, 0x4DB2, 0x566A, 0x5BDA, 0x2BD4, 0x1E78, 0x2BD4, 0x5A5A, 0x45A2, 0x7DBE, 0x420, 0x3C0, 0x0};
static unsigned short bush2D[]={0x0, 0x180, 0x6246, 0x542A, 0x4DB2, 0x4662, 0x4242, 0x2244, 0x1E78, 0x23C4, 0x4242, 0x4422, 0x7C3E, 0x420, 0x3C0, 0x0};
static unsigned short flowerL[]={0x180, 0x1248, 0x2DB4, 0x55AA, 0x4BD2, 0x97E9, 0xAFF5, 0x9FF9, 0xCFF3, 0xBFFD, 0xA425, 0xDBDB, 0xA185, 0xADB5, 0x524A, 0x2184};
static unsigned short flowerD[]={0x180, 0x1248, 0x2C34, 0x4422, 0x4812, 0x9009, 0x8001, 0x8001, 0xC003, 0xBFFD, 0xA425, 0x83C1, 0x8001, 0x8C31, 0x524A, 0x2184};
static unsigned short grassL[]={0x0, 0x7100, 0xA00, 0xA40, 0xA48, 0x20A, 0xA, 0x8, 0x8000, 0x5000, 0x5040, 0x4020, 0x624, 0x124, 0x120, 0x0};
static unsigned short grassD[]={0x0, 0x7100, 0xA00, 0xA40, 0x208, 0xA, 0x8, 0x0, 0x8000, 0x5000, 0x4040, 0x20, 0x624, 0x120, 0x0, 0x0};
static unsigned short mushL[]={0x780, 0x1F60, 0x3F38, 0x7F3C, 0xFF3E, 0xFEDE, 0xBDFE, 0x43FC, 0x3FF8, 0xBE0, 0xBC0, 0xBA0, 0xBA0, 0x820, 0x7C0, 0x0};
static unsigned short mushD[]={0x780, 0x1860, 0x2018, 0x4004, 0x8002, 0x8002, 0x8002, 0x4004, 0x3C18, 0xBE0, 0x840, 0x820, 0x820, 0x820, 0x7C0, 0x0};
static unsigned short plantL[]={0x0, 0xC003, 0xB81D, 0xB5AD, 0xBA5D, 0x5E7A, 0x2FF4, 0xF99F, 0xAE75, 0xB3CD, 0x5DBA, 0x2664, 0x1DB8, 0x17E8, 0x2FF4, 0x3FFC};
static unsigned short plantD[]={0x0, 0xC003, 0xB81D, 0x85A1, 0x8241, 0x4242, 0x2244, 0xF81F, 0x8E71, 0x8241, 0x4002, 0x2664, 0x1C38, 0x1008, 0x2004, 0x3FFC};
static unsigned short treeL[]={0x180, 0x240, 0x5A0, 0xBD0, 0x17E8, 0x2FF4, 0x5FFA, 0x3BDC, 0x17E8, 0x2FF4, 0x5FFA, 0xAFF5, 0x9189, 0x6E76, 0x5A0, 0x7E0};
static unsigned short treeD[]={0x180, 0x240, 0x420, 0x810, 0x1008, 0x2004, 0x4002, 0x381C, 0x1008, 0x2004, 0x4002, 0x8001, 0x9189, 0x6E76, 0x420, 0x7E0};
static unsigned short tree2L[]={0x1BEC, 0x24BE, 0x7EC9, 0xD7FB, 0x6B3F, 0xBAAD, 0xBFE5, 0xFAB7, 0x2B5D, 0x2D54, 0x1AE8, 0x27F4, 0x5BDA, 0x45A4, 0x3A58, 0x180};
static unsigned short tree2D[]={0x1BEC, 0x2496, 0x7EC9, 0x957B, 0x633E, 0xBAA5, 0xAEE5, 0xDAB7, 0x2B1D, 0x2914, 0x1808, 0x2004, 0x4002, 0x4424, 0x3A58, 0x180};
short *sprites[8][2]={
{grassL,grassD},
{bushL,bushD},
{bush2L,bush2D},
{flowerL,flowerD},
{mushL,mushD},
{plantL,plantD},
{treeL,treeD},
{tree2L,tree2D}};
short mod16(short x);
void DRAWMAP(short x, short y);
void _main(void)
{
INT_HANDLER ai1,ai5;
short x=0,y=0,realX,realY,tmpX=0,tmpY=0;
ClrScr();
ai1=GetIntVec(AUTO_INT_1);
ai5=GetIntVec(AUTO_INT_5);
SetIntVec(AUTO_INT_1,DUMMY_HANDLER);
SetIntVec(AUTO_INT_5,DUMMY_HANDLER);
GrayOn();
DRAWMAP(x,y);
do {
realX=mod16(x);
realY=mod16(y);
if (x!=tmpX || y!=tmpY)
DRAWMAP(x,y);
tmpX=x;
tmpY=y;
if (_keytest(RR_LEFT) && x>0){
ScrollRight160(GetPlane(0),100);
ScrollRight160(GetPlane(1),100);
x--;
}
if (_keytest(RR_RIGHT) && x<160){
ScrollLeft160(GetPlane(0),100);
ScrollLeft160(GetPlane(1),100);
x++;
}
if (_keytest(RR_UP) && y>0){
ScrollDown160(GetPlane(0),100);
ScrollDown160(GetPlane(1),100);
y--;
}
if (_keytest(RR_DOWN) && y<95){
ScrollUp160(GetPlane(0),100);
ScrollUp160(GetPlane(1),100);
y++;
}
} while (!_keytest(RR_ESC));
GrayOff();
SetIntVec(AUTO_INT_1,ai1);
SetIntVec(AUTO_INT_5,ai5);
}
short mod16(short x)
{
return (x-(x%16))/16;
}
void DRAWMAP(short x, short y)
{
short i=0,j=0;
for( i = mod16(x); i < (mod16(x)+11); i++)
for( j = mod16(y); j < (mod16(y)+7); j++)
GrayClipSprite16_OR_R((16*i)-x,(16*j)-y, 16, sprites[(map[j][i])][0], sprites[(map[j][i])][1],GetPlane(0),GetPlane(1));
}
Vive! la Ti-89!
(Mon anneau pylorique est complètement fermé. C'est le résultat de la proximité de cet individu.)