Beispiel #1
0
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++;
}
Beispiel #2
0
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);
    }


}
Beispiel #3
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);
}
Beispiel #4
0
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);
        }
    }
}
Beispiel #5
0
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;
  }
}
Beispiel #6
0
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;
  }
}
Beispiel #7
0
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);
    }
}
Beispiel #8
0
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();

}