📄 main.c
字号:
#include "function.h"void do_with(int (*func)(int, int,int, int, SDL_Surface*, SDL_Surface*), int *x0, int *y0, int x, int y , SDL_Surface *screen, SDL_Surface *qipan_screen, int *flag ){ int ret = func(*x0, *y0, x, y, screen, qipan_screen); if(ret == 0) { *x0 = -1; *y0 = -1; *flag = !(*flag); } else if(ret == 1) { display_end(screen); } else if (qipan[x][y] != 0 && ret == -1) { if((((*flag == 0)) && (qipan[x][y] <= 16) && (qipan[x][y] >=1)) || (((*flag) != 0) && (qipan[x][y]> 16))) { change_to(*x0, *y0, x, y, screen, qipan_screen); *x0 = x; *y0 = y; } } }int main(int argc, char *argv[]){ int x0 = -1; int y0 = -1; int x = 0; int y = 0; int flag = 0; if ( SDL_Init(SDL_INIT_AUDIO) < 0 ) { fprintf(stderr, "can not init SDL: %s\n", SDL_GetError()); exit(1); } atexit(SDL_Quit); SDL_Surface *screen = NULL; screen = SDL_SetVideoMode(725, 610, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); if ( screen == NULL ) { fprintf(stderr, "can not set 800x600%s\n", SDL_GetError()); exit(1); } init_qizi(); init_qipan(); SDL_Surface *qipan_screen; qipan_screen = (SDL_Surface *)load_image(QIPAN); display_qipan(qipan_screen, screen); display_window(screen); display_start1(screen); int done = 0; while (!done) { SDL_Event event; while (SDL_PollEvent (&event)) { switch (event.type) { case SDL_MOUSEBUTTONUP: if (event.button.x >= 615 && event.button.x <= 665 && event.button.y >= 400 && event.button.y <= 425) { display_start1(screen); } break; case SDL_MOUSEBUTTONDOWN: if (event.button.x >= 615 && event.button.x <= 665 && event.button.y >= 400 && event.button.y <= 425) { display_start2(screen); start_again(qipan_screen, screen); flag = 0; x0 = -1; y0 = -1; x = 0; y = 0; } else if (exchange_pos(event.button.x, event.button.y, &x, &y) == 0) { if((x0 == x) && (y0 == y)) { break; } if((x0==-1)&&(y0==-1)) { if(((flag == 0) && (qipan[x][y] <= 16) && (qipan[x][y] >=1)) || ((flag != 0) && (qipan[x][y]> 16))) { x0 = x; y0 = y; flash_qizi(x0, y0, screen); } } else { switch(qipan[x0][y0]) { case RL_CAR: case RR_CAR: case BL_CAR: case BR_CAR: do_with(car_rules, &x0, &y0, x, y, screen, qipan_screen, &flag); break; case RL_PAO: case RR_PAO: case BL_PAO: case BR_PAO: do_with(pao_rules, &x0, &y0, x, y, screen, qipan_screen, &flag); break; case R_BING1: case R_BING2: case R_BING3: case R_BING4: case R_BING5: case B_ZU1: case B_ZU2: case B_ZU3: case B_ZU4: case B_ZU5: do_with(bing_zu_rules, &x0, &y0, x, y, screen, qipan_screen, &flag); break; case RL_HOR: case RR_HOR: case BL_HOR: case BR_HOR: do_with(horse_rules, &x0, &y0, x, y, screen, qipan_screen, &flag); break; case RL_ELF: case RR_ELF: case BL_ELF: case BR_ELF: do_with(elf_rules, &x0, &y0, x, y, screen, qipan_screen, &flag); break; case RL_NURSE: case RR_NURSE: case BL_NURSE: case BR_NURSE: do_with(nurse_rules, &x0, &y0, x, y, screen, qipan_screen, &flag); break; case RC_MAS: case BC_MAS: do_with(master_rules, &x0, &y0, x, y, screen, qipan_screen, &flag); break; } } } break; case SDL_QUIT: done = 1; break; default: break; } if( SDL_Flip( screen ) == -1 ) { return 1; } } } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -