void BaseActor::draw() { glPushMatrix(); transform->applyTRS(); draw_me(); glPopMatrix(); }
int main(int argc, char* argv[]) { // Test byte_sort printf("Testing byte_sort()...\n"); assert(byte_sort(0x0706050403020100), 0x0706050403020100, 1); assert(byte_sort(0x0403deadbeef0201), 0xefdebead04030201, 2); assert(byte_sort(0x0001020304050607), 0x0706050403020100, 3); assert(byte_sort(0x0000000000000000), 0x0000000000000000, 4); assert(byte_sort(0xFFFFFFFFFFFFFFFF), 0xFFFFFFFFFFFFFFFF, 5); assert(byte_sort(0x0100000000000000), 0x0100000000000000, 6); assert(byte_sort(0x0000000000000001), 0x0100000000000000, 7); assert(byte_sort(0x1), 0x0100000000000000, 8); // Test nibble_sort printf("Testing nibble_sort()...\n"); assert(nibble_sort(0xfedcba9876543210), 0xfedcba9876543210, 9); assert(nibble_sort(0x0403deadbeef0201), 0xfeeeddba43210000, 10); assert(nibble_sort(0x0000000000000000), 0x0000000000000000, 11); assert(nibble_sort(0xffffffffffffffff), 0xffffffffffffffff, 12); assert(nibble_sort(0x1000000000000000), 0x1000000000000000, 13); assert(nibble_sort(0x0101010101010101), 0x1111111100000000, 14); assert(nibble_sort(0x0000000000000010), 0x1000000000000000, 15); assert(nibble_sort(0x1), 0x1000000000000000, 16); // Test name_list printf("Testing name_list()...\n"); struct elt * name = name_list(); printf("%c%c%c%c%c%c\n", name->val, name->link->val, name->link->link->val, name->link->link->link->val, name->link->link->link->link->val, name->link->link->link->link->link->val); // Test Convert printf("Testing convert()...\n"); convert(HEX, 0xdeadbeef); convert(BIN, 0x0123456789abcdef); convert(BIN, 0xabcdef); convert(BIN, 0xfedcba987); convert(OCT, 0xdeadbeef); convert(OCT, 0xFFFFFFFFFFFFFFFF); convert(OCT, 0xFFFFFFFFFFFFFFF); convert(1, 0xFFFFFFFFFFFFFFFF); convert(2, 0xFFFFFFFFFFFFFFFF); convert(3, 0xFFFFFFFFFFFFFFFF); // Test draw_me printf("Testing draw_me()...\n"); draw_me(); return 0; }
static int fire_fly() { int hit = 0; int ret = 0; for (unsigned i=0; i<fires.size(); i++) { ret++; hit = 0; Object *f = &fires[i]; mvwaddch(win_disp->win, f->y, f->x, ' '); // erase old face f->x += f->xstep; f->y += f->ystep; if (f->x < 0 || f->x >= win_disp->locate.w || f->y < 0 || f->y >= win_disp->locate.h) { fires.erase(fires.begin() + i); break; } // hit test for (unsigned j=0; j<monsters.size(); j++) { Object *m = &monsters[j]; if (f->x == m->x && f->y == m->y) { m->life--; if (m->life <= 0) { hit = 1; monsters.erase(monsters.begin() + j); me.score += m->score; break; } } } if (hit) { continue; } mvwaddch(win_disp->win, f->y, f->x, f->face); draw_me(); wrefresh(win_disp->win); usleep(1000*100); } return ret; }
void GAME_Render() { LCD_SetTextColor( LCD_COLOR_WHITE ); draw_me(me1[0]); draw_boss(boss1[0]); LCD_SetTextColor( LCD_COLOR_RED ); draw_bossbullet(boss_bullet[0]); draw_gun(boss1[0]); LCD_SetTextColor( LCD_COLOR_BLUE ); draw_mybullet(my_bullet[0]); LTDC_LayerAlpha(LTDC_Layer1, SHOW); LTDC_LayerAlpha(LTDC_Layer2, HIDE); LTDC_ReloadConfig(LTDC_VBReload); vTaskDelay( 2.5 ); LCD_SetLayer(LCD_BACKGROUND_LAYER); LCD_SetTextColor( LCD_COLOR_BLACK ); draw_me(me1[1]); draw_boss(boss1[1]); draw_gun(boss1[1]); draw_mybullet(my_bullet[1]); draw_bossbullet(boss_bullet[1]); LCD_SetTextColor( LCD_COLOR_WHITE ); draw_me(me1[0]); draw_boss(boss1[0]); LCD_SetTextColor( LCD_COLOR_RED ); draw_bossbullet(boss_bullet[0]); draw_gun(boss1[0]); LCD_SetTextColor( LCD_COLOR_BLUE ); draw_mybullet(my_bullet[0]); LTDC_LayerAlpha(LTDC_Layer2, SHOW); LTDC_LayerAlpha(LTDC_Layer1, HIDE); LTDC_ReloadConfig(LTDC_VBReload); vTaskDelay( 2.5 ); LCD_SetLayer(LCD_FOREGROUND_LAYER); LCD_SetTextColor( LCD_COLOR_BLACK ); draw_me(me1[0]); draw_boss(boss1[0]); draw_gun(boss1[0]); draw_mybullet(my_bullet[0]); draw_bossbullet(boss_bullet[0]); boss_bullet[1]=boss_bullet[0]; my_bullet[1]=my_bullet[0]; me1[1]=me1[0]; boss1[1]=boss1[0]; }