also, i can't seem to get more than 4 sprites at the same time... :S here's my code to generate sprites:
Code: Select all
int unts = 0;
unsigned int unit_id = 0;
int units_create = 30;
unsigned int unit_vars[8] = {1,1,50,1,8,8,8,8}; //side(1/2: player/ai), type (1/2/3: light/heavy/resource), health, speed, x, y, dest x, desty
int main() {
ClearVram();
game_start(); //for unit amount debug stuff
}
void create_sprite( unsigned int unt_id, unsigned int id, unsigned int side,unsigned int unt_x, unsigned int unt_y) {
if (side == 1) {
//it's the player
MapSprite2(0,tank_side_normal,0);
MoveSprite(0,unt_x,unt_y,8,8);
} else {
//do ai sprites
}
}
void create_unit(int side, int type, int health, int speed, int xx, int yy, int destx, int desty) {
unsigned char unit[unit_id][8];
unit[unit_id][0] = side;
unit[unit_id][1] = type;
unit[unit_id][2] = health;
unit[unit_id][3] = speed;
unit[unit_id][4] = xx;
unit[unit_id][5] = yy;
unit[unit_id][6] = destx;
unit[unit_id][7] = desty;
create_sprite(unit_id,type,side,xx,yy);
unit_id++;
}
void game_start() {
SetSpritesTileTable(player_sprites);
SetTileTable(terrain);
DrawMap(0,0,map_normal);
//just a placeholding content, this needs to initialize the game itself after the player has pressed start..
unsigned int xxx = 8;
while(unts <= units_create) {
create_unit(unit_vars[0],unit_vars[1],unit_vars[2],unit_vars[3],xxx,unit_vars[5],unit_vars[6],unit_vars[7]);
unts+=1;
xxx+=8; //increase sprite_x by 8
}
}
i might be missing some variables here, but it's just to give you the basic idea of what i'm doing..