void update_game() { // move snake int rRed = snake_move(&redSnake, enTile_RedHeadUp); int rGreen = snake_move(&greenSnake, enTile_GreenHeadUp); //int rGreen = snake_mov(&greenSnake); // generate food every ten rounds if (g_Round % 10 == 0) { int x = rand()%g_max_x; int y = rand()%g_max_y; put_tile(enTile_Food, x, y); } // check game statues if (rRed == 2 && rGreen == 2) { mvaddstr(g_max_x/2, g_max_y/2, "Draw!"); gbGameOn = false; getch(); } else if (rRed == 2) { mvaddstr(g_max_x/2, g_max_y/2, "Red Lose!"); gbGameOn = false; getch(); } else if (rGreen == 2) { mvaddstr(g_max_x/2, g_max_y/2, "Green Lose!"); gbGameOn = false; getch(); } g_Round++; }
neosplash(){ disp_off(); cls(); load_palette(16,neosprpal,1); load_vram(0x5000,neospr,0x400); load_palette(0,badge1pal,1); set_tile_data(neotiles); load_tile(0x1000); for(j=0;j<14;j++){ for(i=0;i<14;i++){ put_tile(j*14+i,i+1,j); } } for(i=0;i<8;i++){ spr_set(i); spr_pal(0); spr_pri(1); spr_ctrl(SIZE_MAS,SZ_32x16); spr_pattern(0x5000+0x80*i); spr_y(224-24); spr_x(i*32); } disp_on(); t=0; for(;;){ t++; vsync(); joy0=joy(0); satb_update(); if(joy0&JOY_STRT){ break; } if(t>144)break; } psgPlay(0); disp_off(); for(i=0;i<8;i++){ spr_set(i); spr_hide(); } satb_update(); cls(); set_color(0,0); set_color(256,0); disp_on(); while(joy0&JOY_STRT){ vsync(); joy0=joy(0); } }
void warp(int x,int y) { register int i,j; if (x < 16) /* calculate the tile X origin */ { tile_orgx = 0; screen_orgx = x; } else if (x >= world_maxx) { x = world_maxx; tile_orgx = x/16-2; screen_orgx = 32; } else { tile_orgx = x/16 - 1; screen_orgx = x%16 + 16; } if (y < 16) /* calculate the tile Y origin */ { tile_orgy = 0; screen_orgy = y; } else if (y >= world_maxy) { y = world_maxy; tile_orgy = y/16-2; screen_orgy = 40; } else { tile_orgy = y/16 - 1; screen_orgy = y%16 + 16; } for (i = 0; i < 22; i++) /* draw all the tiles */ { for (j = 0; j < 15; j++) { put_tile(i,j); put_foreground_tile(i,j); } } /* update the layout array */ memset(layout[hidden],0,15*22); }
void rebuild_background() { /* put all the necessary background tiles on the hidden page */ register int i,j; for (i = 0; i < 22; i++) { for (j = 0; j < 15; j++) { /* check and make sure you need a tile there */ if (layout[hidden][i][j]) put_tile(i,j); } } }
void EditorInputCenter::process_left_click() { dragging = true; dragging_right = false; drag_start = sector_pos; switch (Editor::current()->tileselect.input_type) { case EditorInputGui::IP_TILE: { switch (Editor::current()->tileselect.select_mode->get_mode()) { case 0: put_tile(); break; case 1: draw_rectangle(); break; case 2: fill(); break; default: break; } } break; case EditorInputGui::IP_OBJECT: switch (Editor::current()->tileselect.move_mode->get_mode()) { case 0: grab_object(); break; case 1: clone_object(); break; default: break; } if (!Editor::current()->tileselect.object.empty()) { if (!dragged_object) { put_object(); } } else { rubber_object(); } break; default: break; } }
void EditorInputCenter::event(SDL_Event& ev) { auto tileselect = &(Editor::current()->tileselect); switch (ev.type) { case SDL_MOUSEBUTTONDOWN: switch (ev.button.button) { case SDL_BUTTON_LEFT: { process_left_click(); } break; case SDL_BUTTON_RIGHT: { process_right_click(); } break; } break; case SDL_MOUSEBUTTONUP: dragging = false; break; case SDL_MOUSEMOTION: { mouse_pos = VideoSystem::current()->get_renderer().to_logical(ev.motion.x, ev.motion.y); update_pos(); if (dragging) { switch (tileselect->input_type) { case EditorInputGui::IP_TILE: if (dragging_right) { update_tile_selection(); } else { switch (tileselect->select_mode->get_mode()) { case 0: put_tile(); break; case 1: draw_rectangle(); break; default: break; } } break; case EditorInputGui::IP_OBJECT: if (tileselect->object.empty()) { if (tileselect->select_mode->get_mode() == 1 && tileselect->object.empty() ) { rubber_rect(); } } else { move_object(); } break; default: break; } } } break; case SDL_KEYDOWN: if (ev.key.keysym.sym == SDLK_F8) { render_grid = !render_grid; } break; default: break; } }
void page_fix() { /* if the scrolling flags were set, do the video blits and update the layout array */ register int i; if (warped) /* warped -- just replace all the tiles */ { warp(world_x,world_y); return; } else if (scrolled_left && scrolled_up) /* diagonal scrolls */ { fg_transfer(0,335,vpo,223+vpo,16,hpb,0,0); for(i = 0; i< 15; i++) { put_tile(0,i); put_foreground_tile(0,i); } for(i = 0; i< 22; i++) { put_tile(i,0); put_foreground_tile(i,0); } for (i = 0; i < 21; i++) memcpy(&layout[hidden][i+1][1],layout[visual][i],14); } else if (scrolled_left && scrolled_down) { fg_transfer(0,335,16+vpo,vpb,16,223+hpb,0,0); for(i = 0; i< 15; i++) { put_tile(0,i); put_foreground_tile(0,i); } for(i = 0; i< 22; i++) { put_tile(i,14); put_foreground_tile(i,14); } for (i = 0; i < 21; i++) memcpy(layout[hidden][i+1],&layout[visual][i][1],14); } else if (scrolled_right && scrolled_up) { fg_transfer(16,351,vpo,223+vpo,0,hpb,0,0); for(i = 0; i< 15; i++) { put_tile(21,i); put_foreground_tile(21,i); } for(i = 0; i< 22; i++) { put_tile(i,0); put_foreground_tile(i,0); } for (i = 0; i < 21; i++) memcpy(&layout[hidden][i][1],layout[visual][i+1],14); } else if (scrolled_right && scrolled_down) { fg_transfer(16,351,16+vpo,vpb,0,223+hpo,0,0); for(i = 0; i< 15; i++) { put_tile(21,i); put_foreground_tile(21,i); } for(i = 0; i< 22; i++) { put_tile(i,14); put_foreground_tile(i,14); } for (i = 0; i < 21; i++) memcpy(layout[hidden][i],&layout[visual][i+1][1],14); } else if (scrolled_left) /* horizontal scrolls */ { fg_transfer(0,335,vpo,vpb,16,hpb,0,0); for(i = 0; i< 15; i++) { put_tile(0,i); put_foreground_tile(0,i); } for (i = 0; i < 21; i++) memcpy(layout[hidden][i+1],layout[visual][i],15); } else if (scrolled_right) { fg_transfer(16,351,vpo,vpb,0,hpb,0,0); for(i = 0; i< 15; i++) { put_tile(21,i); put_foreground_tile(21,i); } for (i = 0; i < 21; i++) memcpy(layout[hidden][i],layout[visual][i+1],15); } else if (scrolled_up) /* vertical scrolls */ { fg_transfer(0,351,vpo,223+vpo,0,hpb,0,0); for(i = 0; i< 22; i++) { put_tile(i,0); put_foreground_tile(i,0); } for (i = 0; i < 22; i++) memcpy(&layout[hidden][i][1],layout[visual][i],14); } else if (scrolled_down) { fg_transfer(0,351,16+vpo,vpb,0,223+hpo,0,0); for(i = 0; i< 22; i++) { put_tile(i,14); put_foreground_tile(i,14); } for (i = 0; i < 22; i++) memcpy(layout[hidden][i],&layout[visual][i][1],14); } }
title(){ psgPlay(2); cls(); set_tile_data(title_tiles); load_tile(0x1000); load_palette(15,title_pal,1); for(i=0;i<16;i++){ for(j=0;j<4;j++){ put_tile(j*16+i,i,j+1); } } for(i=0;i<8;i++){ set_color_rgb(241+i,0,7-i,0); set_color_rgb(248+i,i,7,i); if(248+7+i<256)set_color_rgb(248+7+i,7,i,7); } draw_win(1,21,30,6); put_string(" HI-SCORE 00 LV 0",0,1); put_number(hiscore,5,11,1); put_number(hilevel,1,30,1); put_string("PC Engine version by cabbage",2,22); put_string(" NEO Retro Coding Compo 2013",2,24); put_string(" http://www.neoflash.com/ ",2,25); put_string("PUSH RUN BUTTON !",8,15); foo=1; t=0; while(1){ rs++; lastjoy0=joy0; vsync(); joy0=joy(0); t++; if(t>30){ if(foo==0){ put_string(" ",8,15); foo=1; t=0; }else{ put_string("PUSH RUN BUTTON !",8,15); foo=0; t=0; } } if(joy0&JOY_STRT){ break; } title_color_cycle(); } while(joy0&JOY_STRT){ vsync(); joy0=joy(0); } put_string(" ",8,15); srand(rs); config(); }