📄 pic_game.lst
字号:
1: #ifndef __PIC_GAME_c__
2: #define __PIC_GAME_c__
3: #include "PIC_GAME.h"
4:
5: void main(void)
6: {
7: uint8_t i;
8: delay(255);
9: cpu_inti();
10: for(i=0;i<16;i++)displaybuffer_16mux16[i]=game_dora[i];
11: LED_UEN_0123;
12: //for(i=0;i<16;i++)displaybuffer_16mux16[i]=game_lostway[i];
13: //flash_displaybuffer[5]=0x5555;//闪烁调试代码
14: //flash_status=FLASH_NO_TIME;
15: //flash_time=40;
16: //while(keywords!=UP);
17: //display_moving_up(game_snake);
18:
19: while(1)
20: {
21: (*game[Current_game].my_game)();
22: }
23: }
24:
25: void display_moving_down(const int16_t *cur)
26: {
27: uint8_t i;
28: INTE=0;
29: GIE=0;
30: for(i=0;i<16;i++)displaybuffer_16mux16[i]=cur[i];
31: /*
32: // uint16_t temp;
33: // temp=displaybuffer_16mux16[15];
34: for(i=0;i<SPEED_0;i++)
35: {
36: displaybuffer[16+i]=cur[i];
37: displaybuffer_16mux16++;
38: delay_long_int(display_speed_0[i]);
39: }
40: for(i=0;i<16;i++)displaybuffer[i]=cur[i];
41: displaybuffer_16mux16=&displaybuffer[0];
42: for(i=0;i<SPEED_1;i++)
43: {
44: //displaybuffer[16+i]=next[i];
45: displaybuffer[16+i]=0;
46: displaybuffer_16mux16++;
47: delay_long_int(display_speed_1[i]);
48: }
49: for(i=0;i<SPEED_2;i++)
50: {
51: //displaybuffer[32]=temp;
52: displaybuffer_16mux16--;
53: delay_long_int(display_speed_2[i]);
54:
55: }
56: displaybuffer_16mux16++;
57: delay_long_int(display_speed_3);
58: */
59: keywords=0;
60: INTE=1;
61: GIE=1;
62: }
63:
64: void display_moving_up(const int16_t *cur)
65: {
66: uint8_t i;
67: GIE=0;
68: INTE=0;
69: for(i=0;i<16;i++)displaybuffer_16mux16[i]=cur[i];
70:
71: /*
72: for(i=0;i<16;i++)displaybuffer_16mux16[i+16]=displaybuffer_16mux16[i];
73: displaybuffer_16mux16=&displaybuffer[16];
74: for(i=0;i<SPEED_0;i++)
75: {
76: displaybuffer[15-i]=cur[i];
77: displaybuffer_16mux16--;
78: delay_long_int(display_speed_0[i]);
79: }
80: for(i=0;i<16;i++)displaybuffer_16mux16[i+16]=displaybuffer_16mux16[i];
81: displaybuffer_16mux16=&displaybuffer[16];
82: for(i=0;i<SPEED_1;i++)
83: {
84: //displaybuffer[15-i]=next[i];
85: displaybuffer[15-i]=0;
86: displaybuffer_16mux16--;
87: delay_long_int(display_speed_1[i]);
88: }
89: for(i=0;i<SPEED_2;i++)
90: {
91: //displaybuffer[32]=temp;
92: displaybuffer_16mux16++;
93: delay_long_int(display_speed_2[i]);
94: }
95: displaybuffer_16mux16--;
96: delay_long_int(display_speed_3);
97: */
98: keywords=0;
99: INTE=1;
100: GIE=1;
101: }
102:
103: void delay(uint8_t MS) //短延时程序
104: {
105: while(MS--){}
106: }
107:
108: void delay_long(uint16_t MS)//超长延时程序
109: {
110: while(MS--){}
111: }
112:
113: void delay_long_int(uint16_t MS)//超长延时程序
114: {
115: while(MS--){}
116: }
117:
118: void defaults(void)
119: {
120: if(keywords==UP){display_moving_up(game[select_game].my_game_wait);}
121: if(keywords==DOWN){display_moving_down(game[select_game].my_game_wait);}
122: display_LED_total_NO();
123: if(game_model==A_model)seg_7_led_buffer[3]=CODE_A;else seg_7_led_buffer[3]=CODE_B;
124: }
125:
126: void defaults_key(void)
127: {
128: switch(keywords)
129: {
130: case UP:
131: if(select_game==LOSTWAY)select_game=DEFAULTS; else select_game++;
132: break;
133: case DOWN:
134: if(select_game==DEFAULTS)select_game=LOSTWAY; else select_game--;
135: break;
136: case OK:
137: Current_game=select_game;break;
138: case RIGHT:
139: if(game_model==A_model)game_model=B_model;else game_model=A_model;
140: break;
141: case LEFT:
142: if(game_model==A_model)game_model=B_model;else game_model=A_model;
143: break;
144: default:
145: Current_game=DEFAULTS;
146: break;
147: }
148: // keywords=0; //清除键值
149: }
150:
151: void display_cmd(uint8_t cmd,uint16_t d_data)//对显示器送数据或地址
152: {
153: uint8_t i;
154: switch(cmd)
155: {
156: case DISPLAY_CMD_CLR:
157: for(i=0;i<16;i++)displaybuffer_16mux16[i]=0;break;
158: case DISPLAY_CMD_BG_CLR:
159: for(i=0;i<16;i++)BG_display_16mux16[i]=0;break;
160: case DISPLAY_CMD_ROLE_CLR:
161: for(i=0;i<16;i++)ROLE_display_16mux16[i]=0;break;
162: case DISPLAY_CMD_OVER:
163: for(i=0;i<16;i++)displaybuffer_16mux16[i]=game_over[i];break;//游戏结束信息送入显缓区
164: case DISPLAY_CMD_WIN:
165: for(i=0;i<16;i++)displaybuffer_16mux16[i]=game_win[i];break;//游戏胜利信息送入显缓区
166: case DISPLAY_CMD_FLASH_CLOSE:
167: flash_status=NO_FLASH;break;
168: case DISPLAY_CMD_FLASH_CLR:
169: for(i=0;i<16;i++)flash_displaybuffer[i]=0;break;
170: case DISPLAY_CMD_FLASH:
171: flash_status=FLASH_NO_TIME;break;
172: case DISPLAY_CMD_FLASH_TIME:
173: flash_time=d_data;flash_status=FLASH_YES_TIME;break;
174: default:
175: break;
176: }
177: }
178: #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -