{"id":3080,"date":"2025-06-01T12:00:12","date_gmt":"2025-06-01T04:00:12","guid":{"rendered":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/"},"modified":"2025-06-01T12:00:12","modified_gmt":"2025-06-01T04:00:12","slug":"%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c","status":"publish","type":"post","link":"http:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/","title":{"rendered":"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c"},"content":{"rendered":"<div class=\"article_content clearfix\" id=\"article_content\">\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/kdoc_html_views-1a98987dfd.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/ck_htmledit_views-704d5b9767.css\" rel=\"stylesheet\"\/>\n<div class=\"htmledit_views atom-one-dark\" id=\"content_views\">\n<p>\n   \u5c04\u51fb\u4ee3\u7801\u6765\u6e90\u81ea<br \/>\n   <a href=\"https:\/\/codebus.cn\/contributor\/stf-2d-shooting\" rel=\"nofollow\" title=\"2D \u6a2a\u5411\u5bf9\u6297\u5c04\u51fb\u6e38\u620f\uff08by STF\uff09 - CodeBus\"><br \/>\n    2D \u6a2a\u5411\u5bf9\u6297\u5c04\u51fb\u6e38\u620f\uff08by STF\uff09 &#8211; CodeBus<br \/>\n   <\/a>\n  <\/p>\n<p>\n   \u5730\u56fe\u8bfb\u53d6\u6539\u88c5\u81ea<br \/>\n   <a href=\"https:\/\/blog.csdn.net\/a1309602336\/article\/details\/138081909\" title=\"\u74e6\u7247\u5730\u56fe\u7f16\u8f91\u5668 \u89e3\u51b3\u8fb9\u754c\u68c0\u6d4b\uff0c\u5b9e\u73b0\u4f7f\u7528\u4e0d\u540c\u50cf\u7d20\u7a97\u53e3\u4e5f\u80fd\u79fb\u52a8\u4e0d\u95ea\u9000-CSDN\u535a\u5ba2\"><br \/>\n    \u74e6\u7247\u5730\u56fe\u7f16\u8f91\u5668 \u89e3\u51b3\u8fb9\u754c\u68c0\u6d4b\uff0c\u5b9e\u73b0\u4f7f\u7528\u4e0d\u540c\u50cf\u7d20\u7a97\u53e3\u4e5f\u80fd\u79fb\u52a8\u4e0d\u95ea\u9000-CSDN\u535a\u5ba2<br \/>\n   <\/a>\n  <\/p>\n<\/p>\n<pre><code class=\"language-cpp\">\n\/\/ \u7a0b\u5e8f\uff1a2D RPG \u5730\u56fe\u7f16\u8f91\u5668\u6539\u6e38\u620f\u8bfb\u53d6\u5668 \n\/\/ \u4f5c\u8005\uff1a\u6c11\u7528\u7ea7\u8111\u7684\u7814\u53d1\u8bb0\u5f55 \u5c04\u51fb\u90e8\u5206\u4ee3\u7801\u79fb\u690d\u81ea \uff1ahttps:\/\/codebus.cn\/contributor\/stf-2d-shooting  \n\/\/ \u90ae\u7bb1\uff1a1309602336@qq.com\n\/\/ \u7f16\u8bd1\u73af\u5883\uff1aDevc++\/VC 2010\/Visual Studio 2022\uff0cEasyX_20220901\/Easyx_2023 \u5927\u6691\u7248\n\/\/ \u7f16\u5199\u65e5\u671f\uff1a-2024-2-22 2024-4-14\u81f32024-4-22\n\/\/\n#undef UNICODE\n#undef _UNICODE\n#pragma warning(disable : 4996)\t\t\/\/ VS2022 \u5bf9\u67d0\u4e9b\u51fd\u6570\u8b66\u544a\uff0c\u4f46\u662f\u4e3a\u4e86\u65b9\u4fbf\u79fb\u690d\uff0c\u5c31\u65e0\u89c6\u8fd9\u4e9b\u8b66\u544a \u8fd9\u6837 Devc++ VC2010 VS2022 \u90fd\u80fd\u8dd1\n#include &lt;graphics.h&gt;\n#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n#include &lt;io.h&gt;\n#include &lt;direct.h&gt;\n\nvoid show_buffs();\n#include &lt;ctime&gt;\nvoid check_move();\n\nvoid hp_bar();\nvoid show_player();\nvoid show_enemy();\nvoid move_enemy();\n\/\/void draw_background();\nint generate_line();\t\t\t\t\t\/\/ \u82e5\u8fd4\u56de -1\uff0c\u8868\u793a\u751f\u6210\u7ebf\u6761\u5931\u8d25\n\nint create_p_b();\t\t\t\t\t\t\/\/ \u521b\u5efa\u81ea\u673a\u7684\u5b50\u5f39\nint create_e_b();\t\t\t\t\t\t\/\/ \u521b\u5efa\u654c\u673a\u7684\u5b50\u5f39\n\nint destroy_p_b(int index);\nint destroy_e_b(int index);\t\t\t\t\/\/ \u5220\u9664\u4e00\u4e2a\u5b50\u5f39\n\n#define FRAMERATE 20\t\t\t\t\t\/\/ \u753b\u9762\u5237\u65b0\u7684\u5468\u671f(ms)\n#define FIRERATE 350\t\t\t\t\t\/\/ \u5c04\u51fb\u95f4\u9694\u65f6\u95f4\n#define E_FIRERATE 350\t\t\t\t\t\/\/ \u654c\u4eba\u5c04\u51fb\u95f4\u9694\n#define BLEED_TIME 150\t\t\t\t\t\/\/ \u53d7\u4f24\u95ea\u70c1\u65f6\u95f4\n\n#define BACKGROUND 80\t\t\t\t\t\/\/ \u7ed8\u5236\u80cc\u666f\u7ebf\u6761\u7684\u5468\u671f\n\n#define MAX_LINES 75\t\t\t\t\t\/\/ \u6700\u591a\u540c\u5c4f\u80cc\u666f\u7ebf\u6761\u6570\u76ee\n#define MAX_PLAYER_BULLETS 40\t\t\t\/\/ \u6700\u591a\u540c\u5c4f\u81ea\u673a\u5b50\u5f39\u6570\u76ee\n#define MAX_ENEMY_BULLETS 40\t\t\t\/\/ \u6700\u591a\u540c\u5c4f\u654c\u673a\u5b50\u5f39\u6570\u76ee\n\n\nint player_pos[2] = { 30,30 };\t\t\t\t\t\t\/\/ \u81ea\u673a\u4f4d\u7f6exy\nint enemy_bullet[MAX_ENEMY_BULLETS][2];\t\t\t\t\/\/ \u654c\u4eba\u7684\u5b50\u5f39\u4f4d\u7f6e\nint player_bullet[MAX_PLAYER_BULLETS][2];\t\t\t\/\/ \u81ea\u673a\u7684\u5b50\u5f39\u4f4d\u7f6e\nint enemy_pos[2] = { 580,240 };\t\t\t\t\t\t\/\/ \u654c\u673a\u4f4d\u7f6e\nbool p_b_slots[MAX_PLAYER_BULLETS] = { false };\t\t\/\/ \u7528\u4e8e\u5224\u65ad player_bullet \u7684\u67d0\u4e2a\u4f4d\u7f6e\u662f\u5426\u53ef\u7528\nbool e_b_slots[MAX_ENEMY_BULLETS] = { false };\nint number_p_b = 0, number_e_b = 0;\t\t\t\t\t\/\/ \u8bb0\u5f55\u81ea\u673a\u548c\u654c\u673a\u7684\u5b50\u5f39\u6570\uff0c\u51cf\u5c11\u904d\u5386\u538b\u529b\n\nint player_health = 100, enemy_health = 100;\n\nbool isBleeding_p = false, isBleeding_e = false;\t\/\/ \u7528\u4e8e\u5b9e\u73b0\u547d\u4e2d\u540e\u7684\u95ea\u70c1\u6548\u679c\n\n\nint background_line[MAX_LINES][3];\t\t\t\t\t\/\/ \u80cc\u666f\u7684\u7ebf\u6761\uff0c\u4e09\u4e2a\u53c2\u6570\u5206\u522b\u662f x\u3001y\u3001\u957f\u5ea6\nbool line_slots[MAX_LINES] = { false };\nint number_lines = 0;\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u80cc\u666f\u7ebf\u6761\u6570\u76ee\n\n\nclock_t begin_time = 0;\n\nint buffs=0;\nint canbuff=0;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u7528\u4e8e\u63a7\u5236 shift \u51cf\u901f\u65f6\u957f\nint leftshift=0;\n\n\n\n\n\/\/ \u4ee5\u4e0a\u662f\u79fb\u690d\u522b\u4eba\u7684\u5c04\u51fb\u6e38\u620f\uff0c\u5df2\u8fdb\u884c\u79fb\u52a8\u548c\u84ddbuff\u4fee\u6539\n\/\/\u5c04\u51fb\u4ee3\u7801\u6765\u6e90\uff1ahttps:\/\/codebus.cn\/contributor\/stf-2d-shooting \n\/\/ \u5c04\u51fb\u6e38\u620f\u4f5c\u8005\uff1aSTF(QQ\uff1a2292683261)\n\/\/ * \u7f16\u8bd1\u73af\u5883\uff1aVisual Studio 2019\uff0cEasyX_20200315(beta)\n\n\n\n\/\/30.\u4f7f\u7528\u65f6\u53d1\u73b0\u50cf\u7d20putimage\u5237\u65b0\u754c\u9762\u672a\u4fee\u6539\uff0cpentable\u7cfb\u5217\u95ee\u9898\u5982\u74e6\u7247\u91cd\u53e0\u90e8\u5206\uff0c30\u7684\u74e6\u7247\u653e\u572820\u7684\u7f51\u683c\u5bfc\u81f4\u7684\u8986\u76d6\n\/\/ 2024.4.22 \u4fee\u6539\u2014\u2014\u4ee5bkmeshcopywidth,\u66ff\u6362\u8fb9\u754c\uff0c\u4ee5bkhieght\u66ff\u6362\u9f20\u6807\u6309\u952e\u7684if\u8fb9\u754c\u68c0\u6d4b\u4e0e\u89c6\u53e3\u5927\u5c0f\uff0c\u539f\u59cb\u6570\u636e\u662f 30\u50cf\u7d20\u6b63\u65b9\u5f62\u74e6\u7247\u8fb9\u957f\uff0c2708270 \u7684\u539f\u59cb\u89c6\u53e3\u4e0e 3*270\u5bbd\u9ad8\u7684\u7f13\u5b58\u533a \u3002\u5982\u4eca\u5df2\u81ea\u9002\u5e94\uff0c\u53ef\u4ee5\u591a\u79cd\u50cf\u7d20\u8fb9\u957f\n\n\/\/ \u4ece\u9ed8\u8ba4\u6587\u4ef6\u5939\u4e2d\u8bfb\u53d6\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfilev2(char* DLC, IMAGE*** pentablev2);\n\/\/ \u52a0\u8f7d\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfile_scanf(char* dirname, char* next, char* kind, IMAGE** pentablev2);\n\/\/ \u6e38\u620f\u5730\u56fe\u5bfc\u5165\nvoid loadgamemapv2(int** map, int* gamemapi, int* gamemapj, IMAGE* pentable, IMAGE*** pentablev2, int* pixnum, int* imagenum);\n\/\/ \u5b9e\u65f6\u6e10\u53d8\u8272\u5c0f\u52a8\u753b\ninline void animationv2(int chararcterflag, int bkgameleft, int bkgametop, int bkmeshgameleft, int bkmeshgametop, int bkmeshdeskleft, int bkmeshdesktop);\n\n\n\/\/ \u4ece\u9ed8\u8ba4\u6587\u4ef6\u5939\u4e2d\u8bfb\u53d6\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfile(IMAGE*** bentablev2,int pixnum);\n\/\/ \u52a0\u8f7d\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfile_scanf(char* dirname, char* next, char* kind, IMAGE** pentablev2,int pixnum);\n\/\/ \u4fdd\u5b58\u81ea\u5b9a\u4e49\u6587\u4ef6\nvoid savepersonalfile(char* DLC, IMAGE*** pentablev2);\n\/\/ \u4fdd\u5b58\u81ea\u5b9a\u4e49\u74e6\u7247\u8d34\u56fe\nvoid savelocal(char* DLC, char* dirname, char* next, char* kind, char* sign, IMAGE** files);\n\/\/ \u5b9e\u65f6\u6e10\u53d8\u8272\u5c0f\u52a8\u753b\ninline void animation(int chararcterflag, int bkgameleft, int bkgametop, int bkmeshgameleft, int bkmeshgametop, int bkmeshdeskleft, int bkmeshdesktop);\n\/\/ \u8fb9\u754c\u68c0\u67e5\uff0cmove \u662f\u5e73\u79fb\u5927\u5c0f\uff0c\u5355\u4f4d\uff1a\u50cf\u7d20\uff0c\u82e5\u4f7f\u5f97\u5bc4\u5b58\u533a\u5728\u4e5d\u5bab\u683c\u4e2d\u5fc3\uff0cmove \u7684\u5927\u5c0f\u5c31\u662f\u5bc4\u5b58\u533a\u7684\u8fb9\u957f\uff0c\u76f8\u5e94\u7684 size \u7684\u5927\u5c0f\u662f move \u7684\u4e24\u500d\u3002\u8fd9\u6837\u65e0\u8bba\u957f\u5bbd\u90fd\u662f 3 \u500d\u3002size \u662f\u5927\u5c0f\u533a\u57df\uff0c\u4ee3\u8868\u4e0d\u4f1a\u89e6\u53d1\u7f13\u51b2\u533a\u66f4\u65b0\u7684\u8303\u56f4\uff0c\u5355\u4f4d\uff1a\u50cf\u7d20\ninline void checkboundary(int* bkgameleft, int* bkgametop, int gamelimitright, int gamelimitbuttom, int* bkmeshleft, int* bkmeshtop, int* meshlimit, int* meshlimitbutton, int bkmeshcopywidth, int bkmeshcopyheight);\n\/\/ \u4fdd\u5b58\u6e38\u620f\u5730\u56fe\u8d34\u56fe\u6570\u636e\nvoid savegamemap(int** map, int gamemapi, int gamemapj, IMAGE* pentable, IMAGE*** pentablev2, int pixnum, int imagenum);\n\/\/ \u5bfc\u5165\u6e38\u620f\u5730\u56fe\u8d34\u56fe\u6570\u636e\nvoid loadgamemap(int** map, int* gamemapi, int* gamemapj, IMAGE* pentable, int* pixnum, int* imagenum);\n\/\/ \u4f7f\u7528\u5173\u952e\u5b57 inline \u58f0\u660e\u4e3a\u5185\u8054\u51fd\u6570\uff0c\u51cf\u5c11\u8d34\u56fe\u51fd\u6570\u9891\u7e41\u8c03\u7528\u7684\u5f00\u9500\u5bfc\u81f4\u7684\u5361\u987f\u3002\n\/\/ \u7f13\u51b2\u533a\u7eb9\u7406\u6620\u5c04\u51fd\u6570\uff1abkmesh \u6620\u5c04\u76ee\u6807\uff0cmap \u6620\u5c04\u603b\u7f51\u683c\uff0cpentable\uff1a\u7eb9\u7406\u96c6\uff0cbkmeshmapi\uff0cbkmeshmapj\uff1a\u6620\u5c04\u8d77\u59cb\u70b9\uff0ctilenum:\u6a2a\uff0c\u7eb5\u6620\u5c04\u7684\u6570\u91cf\uff0cpixnum:\u4e00\u4e2a\u6620\u5c04\u5757\u7684\u8fb9\u957f\uff0c\u5355\u4f4d\uff1a\u50cf\u7d20\u3002defaultnum,\u9ed8\u8ba4\u672a\u7ed8\u5236\u7f51\u683c\u7684\u6807\u53f7,defaultcolor \u672a\u7ed8\u5236\u7f51\u683c\u7684\u989c\u8272\ninline void freshmesh(int** oldmesh, IMAGE* bkmesh,  int** map, IMAGE* pentable, IMAGE*** pentablev2, int bkmeshmapi, int bkmeshmapj, int bkmeshfreshi,int bkmeshfreshj,int pixnum,int defaultnum,int defaultcolor)\n{\n\tint kind = 0;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5b58\u50a8\u4ee3\u53f7\u7b2c\u4e00\u4f4d\uff1a\u7c7b\u578b\n\tint number = 0;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5b58\u50a8\u4ee3\u53f7\u7b2c\u4e8c\u4f4d\uff1a\u5e8f\u5217\u53f7\n\tint pennumber = -1;\t\t\t\t\t\t\t\t\t\t\/\/ \u6682\u5b58\u6bcf\u4e00\u6b21\u5faa\u73af\u7684\u6620\u5c04\u4ee3\u53f7\n\tIMAGE* pen = NULL;\t\t\t\t\t\t\t\t\t\t\/\/ \u6240\u627e\u5230\u7684\u7eb9\u7406\n\tint left = 0;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8fd9\u662f\u6bcf\u6b21\u5faa\u73af\u6240\u627e\u5230\u7684\u7eb9\u7406\u5bf9\u5e94\u6620\u5c04\u5730\u5740\n\tint top = 0;\n\tSetWorkingImage(bkmesh);\t\t\t\t\t\t\t\t\/\/ \u8bbe\u7f6e\u7ed8\u56fe\u76ee\u6807\u4e3a\u6e38\u620f\u80cc\u666f\u91c7\u6837\u533a\uff0c\u5237\u65b0\u91c7\u6837\u533a\uff0c\u5237\u65b0\u5bc4\u5b58\u533a\n\/\/\tcleardevice();\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5f53\u65f6\u6ca1\u6ce8\u610f\u5bfc\u81f4\u4e00\u76f4\u91cd\u7ed8\u5236\uff0c\u5e76\u4e14\u5f53\u65f6\u539f\u7248cleardevice\u5931\u6548\uff0c\u6570\u7ec4\u529f\u80fd\u4e0d\u786e\u5b9a\u3002\u5374\u7531\u6b64\u80fd\u8dd1\u9879\u76ee\uff0c\u53ef\u77e5\u5f53\u65f6\u95ee\u9898\u6839\u6e90\u4e0d\u5b9a\u5bfc\u81f4\u7684\u4fee\u6539\u56f0\u96be\n\tint sidei=bkmeshmapi + bkmeshfreshi;\t\t\t\t\t\/\/ \u8ba1\u7b97\u53d8\u91cf\uff0c\u6bcf\u6b21\u5faa\u73af\u5c31\u4e0d\u7528\u518d\u6b21\u8ba1\u7b97\u4e86\uff0c\u8868\u8fbe\u5f0f\u5728for\u5faa\u73af\u4e2d\u4f1a\u4e00\u76f4\u91cd\u590d\u8ba1\u7b97\uff0c\u7528side\u66ff\u6362for\u7684\u8868\u8fbe\u5f0f\n\tint sidej=bkmeshmapj + bkmeshfreshj;\n\n\tfor (int i = bkmeshmapi; i &lt;sidei; i++)\n\t{\n\t\tleft = 0;\n\t\tfor (int j = bkmeshmapj; j &lt; sidej; j++)\n\t\t{\n\t\t\t\/\/ \u6ce8\u610f\u6570\u7ec4\u8d8a\u754c\n\t\t\tpennumber = map[i][j];\t\t\t\t\t\t\/\/ \u8bfb\u53d6\u6e38\u620f\u5927\u5730\u56fe\u6570\u7ec4\u5e8f\u53f7\n\t\t\tif(oldmesh[i-bkmeshmapi][j-bkmeshmapj]==pennumber&amp;&amp;pennumber==defaultnum)\t\t\t\t\t\t\t\/\/ \u6027\u80fd\u4f18\u5316\uff0c\u5982\u679c\u76f8\u540c\u4f4d\u7f6e\u74e6\u7247\u5e8f\u53f7\u76f8\u540c\uff0c\u5c31\u4e0d\u7528\u91cd\u65b0\u7ed8\u5236\u4e86\uff0c\u5373\u7f13\u5b58\u533a\u53ea\u9009\u62e9\u90e8\u5206\u50cf\u7d20\u91cd\u65b0\u7ed8\u5236\n\t\t\t{\n\t\t\t\t\/\/ 2024.4.22 \u91cd\u6574\uff0c\u589e\u52a0pennumber==defaultnum,\u53ea\u5bf9\u7a7a\u7684\u74e6\u7247\u4e0d\u7ed8\u5236\uff0c\u56e0\u4e3a\u4e4b\u540e\u6709\u7684\u74e6\u7247\u7ed8\u5236\u4e00\u6b21\u4f1a\u6709\u6b8b\u7559\u76f4\u7ebf\u8fb9\u754c\uff0c\u6240\u4ee5\u9700\u8981\u91cd\u7ed8\u89e3\u51b3\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\toldmesh[i-bkmeshmapi][j-bkmeshmapj]=pennumber;\n\t\t\t\tif (pennumber == defaultnum)\n\t\t\t\t{\n\t\t\t\t\tsetfillcolor(BGR(defaultcolor));\n\t\t\t\t\tfillrectangle(left, top, left + pixnum, top + pixnum);\t\t\t\t\/\/ \u4fee\u6b63\uff0c\u5982\u679c\u662frectangle\u5219\u4f1a\u6709\u9ed1\u8272\u4e0d\u5b8c\u5168\u6253\u5370\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tkind = pennumber \/ 10 - 6;\t\t\t\t\t\t\/\/ \u5265\u79bb\u7b2c\u4e00\u4f4d\n\t\t\t\t\tnumber = pennumber % 10;\t\t\t\t\t\t\/\/ \u5265\u79bb\u6700\u540e\u4e00\u4f4d\n\t\t\t\t\tif (pennumber &lt; 10)\n\t\t\t\t\t\tpen = &amp;pentable[pennumber];\n\t\t\t\t\telse\n\t\t\t\t\t\tpen = pentablev2[kind][number];\t\t\t\t\/\/ \u6839\u636e\u5e8f\u53f7\u67e5\u627e\u5bf9\u5e94\u8d34\u56fe\n\t\t\t\t\tputimage(left, top, pen);\t\t\t\t\t\t\/\/ \u628a\u8d34\u56fe\u753b\u5230\u91c7\u6837\u533a\n\t\t\t\t}\n\t\t\t}\n\t\t\tleft += pixnum;\t\t\t\t\t\t\t\t\t\t\/\/ \u5f80\u53f3\u79fb\u52a8\uff0c\u51c6\u5907\u4e0b\u4e00\u6b21\u7ed8\u5236\u4f4d\u7f6e\uff0c\u6b64\u5904\u8d34\u56fe\u5c31\u4f1a\u8986\u76d6\u767d\u8272\u8fb9\u6846\u3002\u4e3a\u4fdd\u8bc1\u5750\u6807\u53d8\u6362\u548c\u7f51\u683c\u5bf9\u5e94\uff0c\u7b97\u4e0a\u7f51\u683c\u5bbd\u5ea6\uff0c\u4e5f\u5728\u8d34\u56fe\u77e9\u5f62\u5185\n\t\t}\n\t\ttop += pixnum;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5f80\u4e0b\u79fb\u52a8\uff0c\u51c6\u5907\u4e0b\u4e00\u6b21\u7ed8\u5236\u4f4d\u7f6e\uff0c\u6b64\u5904\u5c31\u4f1a\u8986\u76d6\u767d\u8272\u8fb9\u6846\uff0c\u65b9\u4fbf\u5b9a\u4f4d\n\t}\n\tSetWorkingImage();\n}\n\/\/ \u4fee\u6539\u4e3a\u5e38\u6570\u5373\u53ea\u663e\u793a\u7a97\u53e3\u5927\u5c0f\u7684\u56fe\u50cf\ninline void freshbk(IMAGE* bk, IMAGE* bkmesh, int gamex, int gamey, int bkmeshmapi, int bkmeshmapj, int bkwidth,int bkheight, int pixnum)\n{\n\tSetWorkingImage(bkmesh);\n\tgetimage(bk, gamex - bkmeshmapj * pixnum, gamey - bkmeshmapi * pixnum, bkwidth, bkheight);\t\t\/\/ \u8ba1\u7b97\u53bb\u9664\u5e73\u79fb\u591a\u4e2abkmeshmapj\u5bf9\u5e94\u7684\u50cf\u7d20\u8ddd\u79bb\uff0c\u4ece\u521a\u521a\u7ed8\u5236\u597d\u7684\u91c7\u6837\u533a\u53d6\u6837\uff0c\u5237\u65b0\u6e38\u620f\u80cc\u666f\u5bc4\u5b58\u533a\u3002\n\tSetWorkingImage();\n}\n\/\/ \u5728\u5c4f\u5e55\u663e\u793a\u622a\u56fe\ninline void showbk(IMAGE* bk, int bkdeskx, int bkdesky)\n{\n\tSetWorkingImage();\n\tputimage(bkdeskx, bkdesky, bk);\n}\n\/\/ \u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u7f13\u51b2\u533a\ninline void showbkmesh(IMAGE* bkmesh, int bkmeshdeskx, int bkmeshdesky)\n{\n\tSetWorkingImage();\n\tputimage(bkmeshdeskx, bkmeshdesky, bkmesh);\n}\n\/\/ \u521d\u59cb\u5316\u6e38\u620f\u5730\u56fe\nint** initmap(int wide, int high,int defaultnum)\n{\n\tint** map = new int* [high];\t\t\t\t\t\/\/ \u4e8c\u7ef4\u6570\u7ec4\u52a8\u6001\u521d\u59cb\u5316\uff0c\u5148\u7ed9\u4e8c\u7ea7\u6307\u9488\u6302\u4e0a\u4e00\u4e2a\u957f\u5ea6\u4e3a 10 \u7684\u6307\u9488\u6570\u7ec4\n\tfor (int i = 0; i &lt; high; i++)\n\t{\n\t\tmap[i] = new int[wide];\t\t\t\t\t\t\/\/ \u7136\u540e\u6570\u7ec4\u91cc\u7684\u6bcf\u4e2a\u6307\u9488\u90fd\u6302\u4e0a\u4e00\u4e2a\u957f\u5ea6\u4e3a 10 \u7684 int \u7c7b\u578b\u6570\u7ec4\n\t}\n\tfor (int i = 0; i &lt; high; i++)\n\t{\n\t\tfor (int j = 0; j &lt; wide; j++)\n\t\t{\n\t\t\tmap[i][j] = defaultnum;\t\t\t\t\t\t\t\/\/ \u521d\u59cb\u5316\u6e38\u620f\u5927\u5730\u56fe map \u7684\u53c2\u6570\uff0c\u53c2\u6570 1 \u9ed8\u8ba4\u9ed1\u8272\n\t\t}\n\t}\n\treturn map;\n}\nint main()\n{\n\tinitgraph(1640, 980, 1);\n\tsetbkcolor(GREEN);\n\tsetlinecolor(WHITE);\n\tcleardevice();\n\t\/\/ \u8fd9\u91cc\u662f\u5f53\u65f6\u91cd\u6574\u7684\u8d77\u70b9\uff0c\u590d\u5236\u7c98\u8d34\u8fd9\u90e8\u5206\u4ee5\u524d\u7684\u53d8\u91cf\u53bb\u6539\u5199 \uff0c\u5199\u4e00\u5757\u65b0\u7684\u5c31\u6ce8\u91ca\u4e00\u5757\u65e7\u7684\n\tint defaultnum;\t\t\t\t\t\t\t\t\/\/ \u5730\u56fe\u521d\u59cb\u5316\u65f6\uff0c\u9ed8\u8ba4\u7a7a\u5730\u56fe\u7684\u5e8f\u53f7\n\tdefaultnum=9999;\n\tint defaultcolor=0x00CCCCCC;\t\t\t\t\/\/ 00 \u662f\u5b8c\u5168\u4e0d\u900f\u660e\uff0cFF\u662f\u5b8c\u5168\u900f\u660e00-FF\u521a\u597d\u662f0-255\u3002 ARGB 0x 00: alpha + 00: red + 00: green + 00: blue ,\u4f46\u662f\u7ed8\u5236\u65f6 setfillcolor\u7684\u683c\u5f0f\u662f BGR\uff0c\u6240\u4ee5\u4f7f\u7528\u65f6\u9700\u8981 BGR()\u8f6c\u6362\u3002\n\tint pixnum;\n\tpixnum = 30;\n\/\/\tpixnum = 60;\n\/\/\tpixnum=15;\n\t\/\/ \u89c4\u5b9a\u4e0a\u9650\u53c2\u6570\n\t\/\/ \u8fdb\u884c\u521d\u59cb\u5316\uff0c\u89c4\u5b9a\u5404\u4f4d\u7f6e\u5177\u4f53\u6570\u5b57\n\tint bkmeshMaxwidth;\t\t\t\t\t\t\t\/\/ \u7f13\u51b2\u533a\u81ea\u9002\u5e94\u5bbd\u5ea6\uff0c\u7528\u4e8e\u4e0d\u540cpixnum \u4e0b\u7f13\u5b58\u4e5d\u5bab\u683c\u7684\u8fb9\u754c\u9002\u5e94\n\tint bkmeshMaxheight;\t\t\t\t\t\t\/\/ \u7f13\u51b2\u533a\u81ea\u9002\u5e94\u9ad8\u5ea6\uff0c\u7528\u4e8e\u4e0d\u540cpixnum \u4e0b\u7f13\u5b58\u4e5d\u5bab\u683c\u7684\u8fb9\u754c\u9002\u5e94\n\tint mapMaxwidth;\t\t\t\t\t\t\t\/\/ \u6e38\u620f\u5730\u56fe\u81ea\u9002\u5e94\u9ad8\u5ea6\u7f51\u683c\u6570\uff0c\u7528\u4e8e\u9009\u53d6\u6700\u63a5\u8fd1\u4e0a\u9650\u7684\u7f51\u683c\u6570\uff0c\u7528\u4e8e\u4e0d\u540c\u7684 pixnum \u4e0b\u6e38\u620f\u7f51\u683c\u6570\u76ee\u662f\u4e5d\u5bab\u683c\u7684\u6bcf\u4e00\u683c\u7684\u6574\u6570\u500d\n\tint mapMaxheight;\n\tint bkmeshcopyMaxheight;\t\t\t\t\t\/\/ \u81ea\u9002\u5e94\u4e5d\u5bab\u683c\u5176\u4e2d\u7684\u4e00\u683c\u683c\u5b50\u7684\u5bbd\u9ad8\u4e0a\u9650\u3002\n\tint bkmeshcopyMaxwidth;\n\tint bkMaxwidth;\t\t\t\t\t\t\t\t\/\/ \u7528\u4e8e\u9650\u5236\u7a97\u53e3\u5927\u5c0f \uff0c\u8fd9\u662f\u5728\u7a97\u53e3\u53ef\u4ee5\u62d6\u4f4f\u62c9\u4f38\u4e4b\u540e\u7528\u7684\u53d8\u91cf\n\tint bkMaxheight;\t\t\t\t\t\t\t\/\/ \u7528\u4e8e\u9650\u5236\u7a97\u53e3\u5927\u5c0f \uff0c\u8fd9\u662f\u5728\u7a97\u53e3\u53ef\u4ee5\u62d6\u4f4f\u62c9\u4f38\u4e4b\u540e\u7528\u7684\u53d8\u91cf\n\t\/\/ \u4e0a\u9650\u7684\u4e00\u79cd\u53c2\u8003\n\tbkmeshcopyMaxheight=1000;\t\t\t\t\t\/\/ \u6d4b\u8bd5\u5f53\u5bab\u683c\u5c0f\u4e8e\u6e38\u620f\u89c6\u53e3\u65f6\uff0c\u7ed8\u5236\u7684\u8fb9\u754c\u68c0\u6d4b\n\tbkmeshcopyMaxwidth=1000;\n\/\/\tbkmeshcopyMaxheight=300;\t\t\t\t\t\/\/ \u6d4b\u8bd5\u6570\u636e\uff0c\u7528\u4e8e\u6d4b\u8bd5\u89c6\u53e3\u6bd4\u5355\u4e2a\u5bab\u683c\u5927\u7684\u60c5\u51b5\u2014\u2014\u51fa\u73b0\u9ed1\u8fb9\n\/\/\tbkmeshcopyMaxwidth=300;\n\/\/\tbkmeshcopyMaxheight=900;\n\/\/\tbkmeshcopyMaxwidth=1460;\n\tbkMaxheight=bkmeshcopyMaxheight;\n\tbkMaxwidth=bkmeshcopyMaxwidth;\n\tbkmeshMaxwidth=bkmeshcopyMaxwidth*3;\t\t\t\t\t\t\/\/ \u5bbd\u7684\u4e0a\u9650\u754c\u9650\u662f \u4e5d\u5bab\u683c\u5176\u4e2d\u4e00\u683c\u5bbd\u7684\u4e09\u500d\u50cf\u7d20\n\tbkmeshMaxheight=bkmeshcopyMaxheight*3;\t\t\t\t\t\t\/\/ \u9ad8\u7684\u4e0a\u9650\u754c\u9650\u662f \u4e5d\u5bab\u683c\u5176\u4e2d\u4e00\u683c\u9ad8\u7684\u4e09\u500d\u50cf\u7d20\n\/\/\tmapMaxheight=bkmeshMaxheight*100;\t\t\t\t\t\t\t\t\/\/ \u6e38\u620f\u5730\u56fe\u9ad8\u5ea6\u7684\u50cf\u7d20\u4e0a\u9650\u662f\u4e5d\u5bab\u683c\u7684\u9ad8\u5ea6\u7684300\u500d\n\/\/\tmapMaxwidth=bkmeshMaxwidth*100;\t\t\t\t\t\t\t\t\/\/ \u6e38\u620f\u5730\u56fe\u5bbd\u5ea6\u7684\u50cf\u7d20\u4e0a\u9650\u662f\u4e5d\u5bab\u683c\u7684\u5bbd\u5ea6\u7684300\u500d\n\/\/\tmapMaxheight=bkmeshMaxheight*1;\t\t\t\t\t\t\t\t\/\/ \u6d4b\u8bd5\u53d1\u73b0\u8fb9\u754c\u95ea\u9000\uff0c\u8d8a\u754c\u6570\u7ec4\u5237\u65b0\u53d1\u73b0\u3002\u6e38\u620f\u5730\u56fe\u9ad8\u5ea6\u7684\u50cf\u7d20\u4e0a\u9650\u662f\u4e5d\u5bab\u683c\u7684\u9ad8\u5ea6\u76841\u500d\n\/\/\tmapMaxwidth=bkmeshMaxwidth*1;\t\t\t\t\t\t\t\t\/\/ \u6e38\u620f\u5730\u56fe\u5bbd\u5ea6\u7684\u50cf\u7d20\u4e0a\u9650\u662f\u4e5d\u5bab\u683c\u7684\u5bbd\u5ea6\u76841\u500d\n\tmapMaxheight=bkmeshMaxheight*2;\t\t\t\t\t\t\t\t\/\/ \u6d4b\u8bd5\u53d1\u73b0\u8fb9\u754c\u95ea\u9000\uff0c\u8d8a\u754c\u6570\u7ec4\u5237\u65b0\u53d1\u73b0\u3002\u6e38\u620f\u5730\u56fe\u9ad8\u5ea6\u7684\u50cf\u7d20\u4e0a\u9650\u662f\u4e5d\u5bab\u683c\u7684\u9ad8\u5ea6\u76842\u500d\n\tmapMaxwidth=bkmeshMaxwidth*2;\n\t\/\/ \u5b9e\u9645\u81ea\u9002\u5e94\u4e8e\u74e6\u7247\u7684\u5927\u5c0f\uff0c\u7528\u4e8e\u4fdd\u8bc1\u4e0d\u540c\u7684 background bk \u90fd\u80fd\u5728\u4e5d\u5bab\u683c\u7684\u6bcf\u4e2a\u5bab\u683c\u8fb9\u7f18\u5207\u6362\u5730\u56fe\u65f6\u4e0d\u9519\u4f4d\u3002\n\tint bkheight;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ 2024.4.21\u4fee\u6539\uff0c\u53d1\u73b0\u9700\u8981\u9002\u914d\u5c4f\u5e55\u9ad8\u5ea6\uff0c\u589e\u5927\u9762\u79ef\uff0c\u65b0\u589e\u53d8\u91cf\u66ff\u6362\u5e38\u6570 270 ,\u5148\u539f\u6837\u66ff\u6362\uff0c\u9a8c\u8bc1\u66ff\u6362\u6b63\u5e38\uff0c\u518d\u7ee7\u7eed\u6539\u6570\u636e\n\tint bkwidth;\n\/\/\tbkheight=370;\n\/\/\tbkwidth=370;\n\tbkheight=470;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5982\u679c\u5c0f\u4e8e\u4e00\u4e2a\u5bab\u683c\u7684\u6700\u5927\n\tbkwidth=470;\n\tif(bkMaxheight&lt;bkheight||bkMaxwidth&lt;bkwidth)\n\t{\n\t\tprintf(\"\u6d4b\u8bd5\u9636\u6bb5\uff1a\u89c6\u53e3\u6bd4\u5355\u4e2a\u5bab\u683c\u5927\uff0c\u4f1a\u5728\u8fb9\u754c\u51fa\u73b0\u9ed1\u8fb9\u60c5\u51b5\\n\");\n\t}\n\telse\n\t{\n\t\tprintf(\"\u6b63\u5e38\u8fd0\u884c\uff0c\u89c6\u53e3\u6bd4\u5355\u4e2a\u5bab\u683c\u5c0f\uff0c\u4e0d\u4f1a\u5728\u8fb9\u754c\u51fa\u73b0\u9ed1\u8fb9\u60c5\u51b5\\n\");\n\t}\n\n\tIMAGE* bk;\t\t\t\t\t\t\t\t\t\t\/\/ \u80cc\u666f\u56fe\u7247\u5bc4\u5b58\u533a\n\tbk = new IMAGE(bkwidth,bkheight);\n\tint bkmeshheight;\n\tint bkmeshwidth;\n\tint bkmeshcopywidth;\t\t\t\t\t\t\t\/\/ 2024.4.21\u4fee\u6539,\u589e\u52a0copywidth\uff0c\u53d1\u73b0\u9700\u8981\u9002\u914d\u5c4f\u5e55\u9ad8\u5ea6\uff0c\u589e\u5927\u9762\u79ef\uff0c\u65b0\u589e\u53d8\u91cf\u66ff\u6362\u5e38\u6570 270 ,\u5148\u539f\u6837\u66ff\u6362\uff0c\u9a8c\u8bc1\u66ff\u6362\u6b63\u5e38\uff0c\u518d\u7ee7\u7eed\u6539\u6570\u636e\n\tint bkmeshcopyheight;\t\t\t\t\t\t\t\/\/ \u4e5d\u5bab\u683c\u7684\u5176\u4e2d\u4e00\u683c\u9ad8\u5ea6\uff0c\u91c7\u6837\u8d8a\u8fc7\u4e5d\u5bab\u683c\u5de6\u4e0a\u56db\u4e2a\u5757\u7684\u8fb9\u754c\uff0c\u5c31\u8fdb\u884c\u66f4\u65b0\u4e5d\u5bab\u683c\uff0c\u4ece\u539f\u6765\u7684\u4e5d\u5bab\u683c\u53f3\u8fb9\u8fb9\u754c\u53d8\u6210\u5de6\u8fb9\u56fa\u5b9a\u8fb9\u754c\uff0c\u5b9e\u73b0\u4e0d\u540c\u5927\u5c0f\u7684\u6e38\u620f\u80cc\u666f bk \u4e0d\u4f1a\u56e0\u4e3a\u8fb9\u754c\u68c0\u6d4b\u8ddd\u79bb\u53d8\u5316\u800c\u5bfc\u81f4\u9700\u8981\u91cd\u65b0\u8ba1\u7b97\n\tint bkmeshcopyi;\t\t\t\t\t\t\t\t\/\/ \u4e5d\u5bab\u683c\u4e0a\u4e0b\u5e73\u79fb\u4e00\u6b21\u7684\u7f51\u683c\u4e2a\u6570\uff0c\u5c31\u662f\u4e00\u683c\u5bab\u683c\u7ad6\u7740\u6570\u6709\u51e0\u4e2a\u74e6\u7247\n\tint bkmeshcopyj;\t\t\t\t\t\t\t\t\/\/ \u4e5d\u5bab\u683c\u5de6\u53f3\u5e73\u79fb\u4e00\u6b21\u7684\u7f51\u683c\u4e2a\u6570\uff0c\u5c31\u662f\u4e00\u683c\u5bab\u683c\u6a2a\u7740\u6570\u6709\u51e0\u4e2a\u74e6\u7247\n\tint** map;\n\tint mapi;\t\t\t\t\t\t\t\t\t\t\/\/ \u8bfb\u53d6 DLC \u6587\u4ef6\uff0c\u9700\u8981\u53d8\u91cf\u8bb0\u5f55\u5faa\u73af\u6b21\u6570\uff0c\u5355\u4f4d \u74e6\u7247\u8d34\u56fe\u4e2a\u6570\n\tint mapj;\n\tint safemapi;\t\t\t\t\t\t\t\t\t\/\/ \u4e00\u4e2a\u5b89\u5168\u7684\u8d34\u56fe\u8303\u56f4\uff0c\u907f\u514d\u9605\u8bfb\u8d85\u8fc7 10000 \u5bfc\u81f4\u7684\u8d8a\u754c\u95ea\u9000\u95ee\u9898\u3002\n\tint safemapj;\n\tint safemapright;\t\t\t\t\t\t\t\t\/\/ \u6e38\u620f\u53f3\u8fb9\u754c\u50cf\u7d20\u5750\u6807\uff0c\u5de6\u8fb9\u754c\u5750\u6807\u9ed8\u8ba4\u662f0\n\tint safemapbottom;\t\t\t\t\t\t\t\t\/\/ \u6e38\u620f\u4e0b\u8fb9\u754c\u50cf\u7d20\u5750\u6807\uff0c\u4e0a\u8fb9\u754c\u5750\u6807\u9ed8\u8ba4\u662f0\n\tint gamelimitright;\t\t\t\t\t\t\t\t\/\/ \u7528\u4e8e\u51cf\u5c11\u6bd4\u8f83\u65f6\u7684\u8ba1\u7b97\uff0c\u5b58\u50a8\u6e38\u620f\u5927\u5730\u56fe\u8fb9\u754c\u8303\u56f4\n\tint gamelimitbottom;\n\tint meshlimitright;\t\t\t\t\t\t\t\t\/\/ \u4f7f\u7528\u53d8\u91cf\u6682\u5b58\u8fb9\u754c\uff0c\u4e0d\u7528\u6bcf\u6b21\u6765\u56de\u8ba1\u7b97\u8fb9\u754c\n\tint meshlimitbottom;\n\tint bkmeshfreshi;\t\t\t\t\t\t\t\t\/\/ \u4e5d\u5bab\u683c\u9ad8\u6709\u591a\u5c11\u4e2a\u74e6\u7247\uff0c\u7528\u4e8e\u5237\u65b0\u7f13\u5b58\u533a\u65f6\u786e\u5b9a\u6e38\u620f\u7f51\u683c\u5bbd\u7684\u91c7\u6837\u6b21\u6570\n\tint bkmeshfreshj; \t\t\t\t\t\t\t\t\/\/ \u4e5d\u5bab\u683c\u5bbd\u6709\u591a\u5c11\u4e2a\u74e6\u7247\uff0c\u7528\u4e8e\u5237\u65b0\u7f13\u5b58\u533a\u65f6\u786e\u5b9a\u6e38\u620f\u7f51\u683c\u9ad8\u7684\u91c7\u6837\u6b21\u6570\n\t\/\/ \u5f00\u59cb\u81ea\u9002\u5e94\uff0c\u5404\u4e2a\u5b58\u50a8\u533a\u5927\u5c0f\u4ee5\u53ca\u8fb9\u754c\n\tbkmeshcopyi= bkmeshcopyMaxheight\/pixnum;\t\t\/\/ \u4e00\u683c\u9ad8\u5ea6\u80fd\u6309\u74e6\u7247\u9ad8\u5ea6\u5206\uff0c\u80fd\u5206\u6210\u51e0\u4efd\uff0c\u5c31\u662f\u4e00\u683c\u5bab\u683c\u6a2a\u7740\u6570\u6709\u51e0\u4e2a\u74e6\u7247\n\tbkmeshcopyj=bkmeshcopyMaxheight\/pixnum;\t\t\t\/\/ \u4e00\u683c\u5bbd\u5ea6\u80fd\u6309\u74e6\u7247\u5bbd\u5ea6\u5206\uff0c\u80fd\u5206\u6210\u51e0\u4efd\uff0c\u5c31\u662f\u4e00\u683c\u5bab\u683c\u7ad6\u7740\u6570\u6709\u51e0\u4e2a\u74e6\u7247\n\tbkmeshcopyheight=bkmeshcopyi*pixnum;\t\t\t\/\/ \u6574\u9664\u4e4b\u540e\u4e58\u50cf\u7d20\u7b97\u51fa\u5b9e\u9645\u4e00\u683c\u50cf\u7d20\u5bbd\u5ea6\uff0c\u7528\u4e8e\u8ba1\u7b97\u4e5d\u5bab\u683c\u5b9e\u9645\u5bbd\u5ea6\n\tbkmeshcopywidth=bkmeshcopyj*pixnum;\n\tbkmeshheight=bkmeshcopyheight*3;\t\t\t\t\/\/ \u4e5d\u5bab\u683c\u7684\u50cf\u7d20\u9ad8\u5ea6\n\tbkmeshwidth=bkmeshcopywidth*3;\t\t\t\t\t\/\/ \u4e5d\u5bab\u683c\u7684\u50cf\u7d20\u5bbd\u5ea6\n\tbkmeshfreshi=bkmeshheight\/pixnum;\t\t\t\t\/\/ \u8ba1\u7b97\u4e5d\u5bab\u683c\u6a2a\u7740\u4e00\u884c\u6709\u51e0\u4e2a\u74e6\u7247\n\tbkmeshfreshj=bkmeshwidth\/pixnum;\t\t\t\t\/\/ \u8ba1\u7b97\u4e5d\u5bab\u683c\u7ad6\u7740\u4e00\u5217\u6709\u51e0\u4e2a\u74e6\u7247\n\tmeshlimitright=bkmeshcopywidth*2;\t\t\t\t\/\/ \u8ba1\u7b97 bk \u91c7\u6837\u5230\u53f3\u8fb9\u754c\u65f6\u66f4\u65b0\u6240\u9700\u7684\u8fb9\u754c\uff0c\u662f\u50cf\u7d20\u5750\u6807\uff0ccheckboundary \u4f1a\u66f4\u65b0\u8fd9\u4e2a\u8fb9\u754c\n\tmeshlimitbottom=bkmeshcopyheight*2;\t\t\t\t\/\/ \u8ba1\u7b97 bk \u91c7\u6837\u5230\u4e0b\u8fb9\u754c\u65f6\u66f4\u65b0\u6240\u9700\u7684\u8fb9\u754c\uff0c\u662f\u50cf\u7d20\u5750\u6807\uff0ccheckboundary \u4f1a\u66f4\u65b0\u8fd9\u4e2a\u8fb9\u754c\n\tmapi=mapMaxheight\/bkmeshcopyheight*bkmeshcopyi;\t\/\/ \u8ba1\u7b97\u5b9e\u9645\u6e38\u620f\u5730\u56fe\u957f\u6709\u591a\u5c11\u4e2a\u74e6\u7247\uff0c\u5c31\u662f\u6e38\u620f\u6700\u5927\u9ad8\u5ea6\u6574\u9664\u74e6\u7247\u9ad8\u5ea6\uff0c\u7b97\u51fa\u6709\u51e0\u4e2a\u5bab\u683c\uff0c\u7136\u540e\u5728\u4e58\u4e00\u4e2a\u5bab\u683c\u7ad6\u7740\u6570\u74e6\u7247\u4e2a\u6570\n\tmapj=mapMaxwidth\/bkmeshcopywidth*bkmeshcopyj;\t\/\/ \u8ba1\u7b97\u5b9e\u9645\u6e38\u620f\u5730\u56fe\u5bbd\u6709\u591a\u5c11\u4e2a\u74e6\u7247\uff0c\u5c31\u662f\u6e38\u620f\u6700\u5927\u5bbd\u5ea6\u6574\u9664\u74e6\u7247\u5bbd\u5ea6\uff0c\u7b97\u51fa\u6709\u51e0\u4e2a\u5bab\u683c\uff0c\u7136\u540e\u5728\u4e58\u4e00\u4e2a\u5bab\u683c\u6a2a\u7740\u6570\u74e6\u7247\u4e2a\u6570\n\/\/\tsafemapi=mapi-bkmeshcopyi*2;\t\/\/ \u6d4b\u8bd5\u5012\u6570\u7b2c\u4e00\u4e2a\u4e5d\u5bab\u683c\u5de6\u4e0a\u89d2\u5750\u6807\t\t\/\/ \u9002\u914d\u65e7\u4ee3\u7801\u7684\u540c\u540d\u53d8\u91cf\uff0c\u65e7\u4ee3\u7801\u6d4b\u8bd5\u51fa\u6765\u6570\u636e\u7684\u4f4d\u7f6e\u88ab\u6807\u8bb0\u4e3asafemapi,\u6839\u636e \u5730\u56fe\u548c\u7f13\u5b58\u533a\u4e00\u6837\u5927\u65f6\uff0c\u8d8a\u754c\u68c0\u6d4b,\u4e5d\u5bab\u683c\u7684\u6700\u540e\u4e00\u683c\u5bab\u683c\u662f\u5730\u56fe\u8fb9\u754c\u65f6\u5bf9\u5e94\u5de6\u4e0a\u89d2\uff0c\u5dee\u4e24\u4e2a\u5bab\u683c\u6b64\u65f6\u5230\u8fb9\u5883\u4e86\uff0c\u4e0d\u80fd\u518d\u5f80\u53f3\u5237\u65b0\u3002\n\/\/\tsafemapj=mapj-bkmeshcopyj*2;\t\/\/ \u6d4b\u8bd5\u5012\u6570\u7b2c\u4e00\u4e2a\u4e5d\u5bab\u683c\u5de6\u4e0a\u89d2\u5750\u6807\t\t\/\/ \u9002\u914d\u65e7\u4ee3\u7801\u7684\u540c\u540d\u53d8\u91cf\uff0c\u65e7\u4ee3\u7801\u6d4b\u8bd5\u51fa\u6765\u6570\u636e\u7684\u4f4d\u7f6e\u88ab\u6807\u8bb0\u4e3asafemapj,\u6839\u636e \u5730\u56fe\u548c\u7f13\u5b58\u533a\u4e00\u6837\u5927\u65f6\uff0c\u8d8a\u754c\u68c0\u6d4b,\u4e5d\u5bab\u683c\u7684\u6700\u540e\u4e00\u683c\u5bab\u683c\u662f\u5730\u56fe\u8fb9\u754c\u65f6\u5bf9\u5e94\u5de6\u4e0a\u89d2\uff0c\u5dee\u4e24\u4e2a\u5bab\u683c\u6b64\u65f6\u5230\u8fb9\u5883\u4e86\uff0c\u4e0d\u80fd\u518d\u5f80\u4e0b\u5237\u65b0\u3002\n\tsafemapi=mapi-1;\t\t\t\t\t\t\t\t\t\t\/\/ \u7ed8\u5236\u7684\u65f6\u5019\u786e\u5b9a\u4e0b\u7f51\u683c\u754c\u9650\uff0c\u6570\u636e-1\u662f\u56e0\u4e3a\u6570\u7ec4\u7684\u7b2c 0 \u4e2a\u5bf9\u5e94\u5de6\u8fb9\u7b2c\u4e00\u4e2a\u74e6\u7247\uff0c\u4e8e\u662f\u7b49\u540c\u4e8e\u6570\u7ec4\u4e0b\u6807\u662f\u603b\u6570-1 \uff0c\u521d\u59cb\u5316n\u4e2a\uff0c\u6570\u7ec4\u5bf9\u5e94\u5e8f\u53f7 0~n-1\n\tsafemapj=mapj-1;\t\t\t\t\t\t\t\t\t\t\/\/ \u7ed8\u5236\u7684\u65f6\u5019\u786e\u5b9a\u53f3\u7f51\u683c\u8fb9\u754c\uff0c\u6570\u636e-1\u662f\u56e0\u4e3a\u6570\u7ec4\u7684\u7b2c 0 \u4e2a\u5bf9\u5e94\u5de6\u8fb9\u7b2c\u4e00\u4e2a\u74e6\u7247\uff0c\u4e8e\u662f\u7b49\u540c\u4e8e\u6570\u7ec4\u4e0b\u6807\u662f\u603b\u6570-1 \uff0c\u521d\u59cb\u5316n\u4e2a\uff0c\u6570\u7ec4\u5bf9\u5e94\u5e8f\u53f7 0~n-1\n\tsafemapbottom=mapi*pixnum-bkmeshcopyheight;\t\t\t\/\/ \u8ba1\u7b97\u51fa\u91c7\u6837\u533a\u8ddd\u79bb\u6700\u540e\u4e00\u683c\u7684\u50cf\u7d20\u8ddd\u79bb\uff0c\u56e0\u4e3a\u91c7\u6837\u533a\u7684\u79fb\u52a8\u63a7\u5236\u7f13\u5b58\u533a\u7684\u79fb\u52a8\uff0c\u8fd9\u6837\u7684\u8bbe\u8ba1\u5bfc\u81f4\u53ea\u6709\u91c7\u6837\u533a\u505c\u6b62\u79fb\u52a8\uff0c\u7f13\u5b58\u533a\u624d\u80fd\u505c\u6b62\u79fb\u52a8\uff0c\u5c31\u9700\u8981\u628a\u7f13\u5b58\u533a\u505c\u6b62\u79fb\u52a8\u7684\u4f4d\u7f6e\u6362\u7b97\u6210\u91c7\u6837\u533a\u505c\u6b62\u79fb\u52a8\u7684\u8ddd\u79bb\n\tsafemapright=mapj*pixnum-bkmeshcopywidth;\t\t\t\/\/ \u8ba1\u7b97\u51fa\u91c7\u6837\u533a\u8ddd\u79bb\u6700\u540e\u4e00\u683c\u7684\u50cf\u7d20\u8ddd\u79bb\uff0c\u56e0\u4e3a\u91c7\u6837\u533a\u7684\u79fb\u52a8\u63a7\u5236\u7f13\u5b58\u533a\u7684\u79fb\u52a8\uff0c\u8fd9\u6837\u7684\u8bbe\u8ba1\u5bfc\u81f4\u53ea\u6709\u91c7\u6837\u533a\u505c\u6b62\u79fb\u52a8\uff0c\u7f13\u5b58\u533a\u624d\u80fd\u505c\u6b62\u79fb\u52a8\uff0c\u5c31\u9700\u8981\u628a\u7f13\u5b58\u533a\u505c\u6b62\u79fb\u52a8\u7684\u4f4d\u7f6e\u6362\u7b97\u6210\u91c7\u6837\u533a\u505c\u6b62\u79fb\u52a8\u7684\u8ddd\u79bb\n\tgamelimitright=safemapright;\t\t\t\t\t\/\/ \u6362\u7b97\u51fa\u5bf9\u5e94\u50cf\u7d20\u4f4d\u7f6e\uff0c\u5c31\u662f\u73a9\u5bb6\u89c6\u53e3\u5de6\u4e0a\u89d2\u5750\u6807\u7684\u6781\u9650\uff0c\u540c\u6837\u8bf4\u660e\u89c6\u53e3\u7684\u6700\u5927\u4e0d\u8d85\u8fc7\u5bab\u683c\uff0c\u4f46\u5b9e\u9645\u4e0a\u53ef\u4ee5\uff0c\u53ea\u4e0d\u8fc7\u5c31\u662f\u770b\u5230\u9ed1\u8fb9\u4f46\u4e0d\u95ea\u9000\n\tgamelimitbottom=safemapbottom;\n\tprintf(\"mapj,i=%d,%d\\n\",mapj,mapi);\n\tprintf(\"safemapj,safemapi %d,%d\\n\",safemapj,safemapi);\n\tprintf(\"gamelimitrx,gamelimitry %d %d\",gamelimitright,gamelimitbottom);\n\n\tmap = initmap(mapj, mapi,defaultnum);\t\t\t\/\/ \u521d\u59cb\u5316\u6e38\u620f\u7f51\u683c\u5927\u5730\u56fe\uff01\t\t\tj\u5bf9\u5e94\u51fd\u6570\u7b2c\u4e00\u4e2a\u53c2\u6570\uff0ci\u5bf9\u5e94\u7b2c\u4e8c\u4e2a\u53c2\u6570\uff0c\u5426\u5219\u4f1a\u95ea\u9000\n\tIMAGE* bkmesh;\t\t\t\t\t\t\t\t\t\/\/ \u80cc\u666f\u56fe\u7247\u91c7\u6837\u533a\n\tbkmesh = new IMAGE(bkmeshwidth, bkmeshheight);\n\tint bkgameleft;\t\t\t\t\t\t\t\t\/\/ \u80cc\u666f\u56fe\u7247\u5bc4\u5b58\u533a\u5de6\u4e0a\u89d2\u5750\u6807\uff0c\u662f\u5728\u6e38\u620f\u91cc\u7684\u50cf\u7d20\u5750\u6807\u3002\uff080\uff0c0\uff09\u53ef\u4ee5\u7406\u89e3\u4e3a\u6e38\u620f\u5927\u5730\u56fe\u7684\u5de6\u4e0a\u89d2\u9876\u70b9\u3002\n\tint bkgametop;\n\tint bkmeshgameleft;\t\t\t\t\t\t\t\/\/ \u80cc\u666f\u56fe\u7247\u91c7\u6837\u533a\u5de6\u4e0a\u89d2\u5750\u6807\uff0c\u662f\u5728\u6e38\u620f\u91cc\u7684\u50cf\u7d20\u5750\u6807\u3002\n\tint bkmeshgametop;\n\tint bkmeshmapi;\t\t\t\t\t\t\t\t\/\/ \u80cc\u666f\u56fe\u7247\u91c7\u6837\u533a\u5de6\u4e0a\u89d2\u6240\u5bf9\u5e94\u7684 map \u6570\u7ec4\u5e8f\u53f7\u3002\u4ece map[0][0]\u5f00\u59cb\uff0c\u6309\u7167 map[i][j]\uff0c\u5176\u4e2d bkmeshmapi=bkmeshtop\/pixnum\n\tint bkmeshmapj;\n\tbkgameleft = 0;\t\t\t\t\t\t\t\t\/\/ \u7531\u4e8e bkgame \u63a7\u5236 mesh \u5750\u6807\u79fb\u52a8\uff0c\uff080\uff0c0\uff09\u5219\u6e38\u620f\u80cc\u666f\u5b8c\u5168\u5728\u5f53\u524d\u91c7\u6837\u533a\u79fb\u52a8\n\tbkgametop = 0;\n\tbkmeshgameleft = 0;\n\tbkmeshgametop = 0;\n\tbkmeshmapi = bkmeshgametop \/ pixnum;\t\t\t\t\/\/ \u7f13\u5b58\u533a\u5de6\u4e0a\u89d2\u6240\u5728\u7684\u6e38\u620f\u7f51\u683c\u7684\u54ea\u4e00\u884c\n\tbkmeshmapj = bkmeshgameleft \/ pixnum;\t\t\t\t\/\/ \u7f13\u5b58\u533a\u5de6\u4e0a\u89d2\u6240\u5728\u7684\u6e38\u620f\u7f51\u683c\u7684\u54ea\u4e00\u5217\n\tint bkdeskleft;\t\t\t\t\t\t\t\t\/\/ \u89c4\u5b9a\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u6e38\u620f\u80cc\u666f\u5bc4\u5b58\u533a\uff0c\u6b64\u5904\u8bb0\u5f55\u5176\u5de6\u4e0a\u89d2\u5728\u5c4f\u5e55\u4e0a\u7684\u50cf\u7d20\u5750\u6807\n\tint bkdesktop;\n\tint bkmeshdeskleft;\t\t\t\t\t\t\t\/\/ \u89c4\u5b9a\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u6e38\u620f\u80cc\u666f\u91c7\u6837\u533a\uff0c\u6b64\u5904\u8bb0\u5f55\u5176\u5de6\u4e0a\u89d2\u5728\u5c4f\u5e55\u4e0a\u7684\u50cf\u7d20\u5750\u6807\n\tint bkmeshdesktop;\n\tbkdeskleft = 200;\t\t\t\t\t\t\t\/\/ \u6e38\u620f\u80cc\u666f\u5de6\u4e0a\u89d2\u5c06\u4f1a\u5728\u5c4f\u5e55\u7684\uff08200\uff0c200) \u5904\n\tbkdesktop = 200;\n\tbkmeshdeskleft = 700;\t\t\t\t\t\t\/\/ \u6e38\u620f\u80cc\u666f\u7f13\u51b2\u533a\u5de6\u4e0a\u89d2\u5c06\u4f1a\u5728\u5c4f\u5e55\u7684\uff08700\uff0c0\uff09\u5904\n\tbkmeshdesktop = 0;\n\n\t\/\/ \u81ea\u6b64\u4e3a\u6b62\u5c31\u662f\u53d8\u91cf\u81ea\u9002\u5e94\u7ed3\u675f\n\n\tint** oldmesh;\n\toldmesh=new int*[bkmeshfreshi];\n\tfor(int i=0; i&lt;bkmeshfreshi; i++)\n\t{\n\t\toldmesh[i] =new int[bkmeshfreshj];\n\t\tfor(int j=0; j&lt;bkmeshfreshj; j++)\n\t\t{\n\t\t\toldmesh[i][j]=999999;\t\t\t\t\t\t\/\/ \u6b63\u6570\n\t\t}\n\t}\n\n\t\/\/ \u63d0\u51fa\u6765\u7684\u6027\u80fd\u4f18\u5316\u4ee3\u7801\uff0c\u7528\u4e8efreshmesh\u65f6\u5237\u65b0\u8fc7\u6ee4\u76f8\u540c\u7684\u6570\u5b57\u7684\u74e6\u7247\uff0c\u8fd9\u6837\u6570\u5b57\u76f8\u540c\uff0c\u74e6\u7247\u76f8\u540c\uff0c\u5c31\u4e0d\u7528\u7ed8\u5236\u4e86\n\n\tint pentableleft;\t\t\t\t\t\t\t\t\/\/ \u5fd8\u4e86\u521d\u59cb\u5316\u8c03\u8272\u76d8\u4e86\uff0c\u8fd9\u91cc\u8bbe\u7f6e\u8c03\u8272\u76d8\u5de6\u4e0a\u89d2\u5728\u5c4f\u5e55\u7684\u5750\u6807\n\tint pentabletop;\n\tint imagenum;\t\t\t\t\t\t\t\t\t\/\/ \u8c03\u8272\u677f\u6570\u91cf\u4e0a\u9650\uff0c\u7528\u4e8e\u6587\u4ef6\u8bfb\u53d6\u63a7\u5236\u5faa\u73af\u6b21\u6570\n\tIMAGE* pentable;\t\t\t\t\t\t\t\t\/\/ \u8c03\u8272\u677f\u5176\u5b9e\u5c31\u662f\u8d34\u56fe\u6570\u7ec4\n\tpentableleft = 0;\t\t\t\t\t\t\t\t\/\/ \u8c03\u8272\u76d8\u5de6\u4e0a\u89d2\u5c06\u4f1a\u5728\u5c4f\u5e55\u7684\uff080\uff0c0\uff09\u5904\n\tpentabletop = 0;\n\timagenum = 10;\n\tint pentablev2left;\t\t\t\t\t\t\t\t\/\/ \u81ea\u5b9a\u4e49\u8d34\u56fe\u63d2\u69fd\n\tint pentablev2top;\n\tint pentablev2high;\t\t\t\t\t\t\t\t\/\/ \u81ea\u5b9a\u4e49\u8d34\u56fe\u7684\u5bb9\u91cf\u5927\u5c0f\n\tint pentablev2wide;\n\tpentablev2left = 10;\n\tpentablev2top = 300;\n\tpentablev2high = 10;\n\tpentablev2wide = 4;\n\tIMAGE*** pentablev2;\n\tpentablev2 = new IMAGE **[pentablev2wide];\n\tfor (int i = 0; i &lt; pentablev2wide; i++)\n\t\tpentablev2[i] = new IMAGE * [pentablev2high];\n\tfor (int i = 0; i &lt; pentablev2wide; i++)\n\t\tfor (int j = 0; j &lt; pentablev2high; j++)\n\t\t\tpentablev2[i][j] = NULL;\n\/\/\tloadfile(pentablev2,pixnum);\t\t\t\t\t\t\t\/\/ \u52a0\u8f7d\u672c\u5730\u56fe\u7247\n\/\/ \u8c03\u8272\u76d8\u52a0\u8f7d\u6570\u636e\uff0c\u9700\u8981\u8c03\u6574\uff0c\u53ef\u4ee5\u52a0\u8f7d\u4efb\u610f\u5927\u5c0f\u7684\u56fe\u7247\uff0c\u7136\u540e\u5207\u5272\u6210\u591a\u4e2a\u5c0f\u56fe\u7247\u7136\u540e\u5bfc\u51fa\u3002\n\/\/ \u7ed8\u5236\u7684\u65f6\u5019\uff0c\u53ef\u4ee5\u9009\u4e2d\u591a\u4e2a\u74e6\u7247\uff0c\u4e00\u6b21\u7ed8\u5236\u591a\u4e2a\u74e6\u7247\uff0cmesh\u9664\u4ee5\u9009\u4e2d\u7684\u7f51\u683c\u6570\u3002\u753b\u533a\u5206\u7ebf\uff0c\u6bcf\u56db\u4e2a\u753b\u4e00\u4e2a\u7f51\u683c\u7ebf\u3002\n\/\/ \u74e6\u7247\u8bbe\u8ba1\u7684\u65f6\u5019\uff0c\u9700\u8981\u4e00\u4e2a\u518d\u7ed8\u56fe\u677f\u5b9e\u73b0\u6570\u7ec4\u5237\u65b0\u3002\u539f\u56fe\u653e\u7f29\u5c0f\u56fe\u7b14\u5237\n\tpentable = new IMAGE[imagenum];\n\tfor (int i = 0; i &lt; imagenum; i++)\n\t{\n\t\tpentable[i] = IMAGE(pixnum,pixnum);\t\t\t\t\/\/ \u9ed8\u8ba4\u8c03\u8272\u677f\u4e5f\u81ea\u9002\u5e94\u50cf\u7d20\u9ad8\u5ea6\n\t\tSetWorkingImage(&amp;pentable[i]);\t\t\t\t\t\/\/ \u7ed9\u8c03\u8272\u677f\u7ed8\u5236\u989c\u8272\n\t\tsetfillcolor(RGB(i * 20, i * 20, i * 20));\t\t\/\/ \u8fd9\u91cc\u521d\u59cb\u5316\u8c03\u8272\u76d8\u7684\u989c\u8272\n\t\tfillrectangle(-1, -1, pixnum, pixnum);\t\t\t\t\/\/ \u5728\u8c03\u8272\u677f\u4e0a\u7ed8\u5236\u989c\u8272\uff08\u7eb9\u7406\uff09\u8981\u4ece -1\uff0c-1 \u5f00\u59cb\u7ed8\u5236\uff0c\u628a\u8fb9\u6846\u753b\u5230\u5916\u90e8\uff0c\u4e0d\u4fdd\u7559\u8fb9\u6846\u3002\n\t}\n\n\t\/\/ \u8bfb\u53d6DLC\n\tloadgamemapv2(map, &amp;safemapi, &amp;safemapj, pentable, pentablev2, &amp;pixnum, &amp;imagenum);\n\n\tint left;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u521d\u59cb\u5316\u7ed8\u5236\u91c7\u6837\u533a\u6240\u9700\u7684\u5750\u6807\uff0c\u76f8\u5bf9\u4e8e\u91c7\u6837\u533a\uff0c\uff080\uff0c0\uff09\u5c31\u662f\u91c7\u6837\u533a\u5de6\u4e0a\u89d2\u9876\u70b9\u5750\u6807\n\tint top;\n\tleft = 0;\n\ttop = 0;\n\t\/\/\t\u5f80\u7f13\u51b2\u533a\u5237\u5165\u8d34\u56fe\n\tSetWorkingImage(bkmesh);\t\t\t\t\t\t\t\t\/\/ \u8bbe\u7f6e\u7ed8\u56fe\u76ee\u6807\u4e3a\u6e38\u620f\u80cc\u666f\u91c7\u6837\u533a\uff0c\u5237\u65b0\u91c7\u6837\u533a\uff0c\u5237\u65b0\u5bc4\u5b58\u533a\n\tsetbkcolor(RGB(200, 200, 200));\t\t\t\t\t\t\t\/\/ \u8bbe\u7f6e\u74e6\u7247\u8fb9\u7ebf\u989c\u8272\uff0c\u56fe\u7247\u6ca1\u6709\u8986\u76d6\u7684\u80cc\u666f\u5c31\u662f\u8fb9\u7ebf\n\tcleardevice();\n\tfor (int i = bkmeshmapi; i &lt; bkmeshmapi + bkmeshfreshi; i++)\n\t{\n\t\tleft = 0;\n\t\tfor (int j = bkmeshmapj; j &lt; bkmeshmapj + bkmeshfreshj; j++)\n\t\t{\n\t\t\tint pennumber = map[i][j];\t\t\t\t\t\t\t\/\/ \u8bfb\u53d6\u6e38\u620f\u5927\u5730\u56fe\u6570\u7ec4\u5e8f\u53f7\n\t\t\tif (pennumber == 9999)\n\t\t\t{\n\t\t\t\trectangle(left, top, left + pixnum, top + pixnum);\n\t\t\t}\n\t\t\tleft += pixnum;\t\t\t\t\t\t\t\t\t\t\/\/ \u5f80\u53f3\u79fb\u52a8\uff0c\u51c6\u5907\u4e0b\u4e00\u6b21\u7ed8\u5236\u4f4d\u7f6e,\n\t\t}\n\t\ttop += pixnum;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5f80\u4e0b\u79fb\u52a8\uff0c\u51c6\u5907\u4e0b\u4e00\u6b21\u7ed8\u5236\u4f4d\u7f6e\n\t}\n\tgetimage(bk, bkgameleft, bkgametop, bkwidth,bkheight);\t\t\t\t\/\/ \u4ece\u521a\u521a\u7ed8\u5236\u597d\u7684\u91c7\u6837\u533a\u53d6\u6837\uff0c\u5237\u65b0\u6e38\u620f\u80cc\u666f\u5bc4\u5b58\u533a\u3002\n\t\/\/\t\u5f00\u59cb\u5f80\u5c4f\u5e55\u4e0a\u7ed8\u56fe\n\tSetWorkingImage();\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bbe\u7f6e\u7535\u8111\u5c4f\u5e55\u4e3a\u7ed8\u5236\u5bf9\u8c61\n\tfor (int j = 0; j &lt; 10; j++)\n\t{\n\t\tputimage(pentableleft + 10, pentabletop + j * pixnum, &amp;pentable[j]); \t\t\/\/ \u7ed8\u5236\u7ed8\u56fe\u677f\n\t}\n\tfor (int i = 0; i &lt; pentablev2wide; i++)\t\t\t\t\t\t\t\t\t\/\/ \u7ed8\u5236\u81ea\u5b9a\u4e49\u8d34\u56fe\uff0c\u5370\u81ea\u5b9a\u4e49\u7b14\u5237\n\t\tfor (int j = 0; j &lt; pentablev2high; j++)\n\t\t\tif (pentablev2[i][j] != NULL)\n\t\t\t\tputimage(pentablev2left + i * pixnum, pentablev2top + j * pixnum, pentablev2[i][j]);\t\t\t\t\t\t\/\/ pixnum \u66ff\u6362 30\n\tputimage(bkdeskleft, bkdesktop, bk);\t\t\t\t\t\t\t\t\t\t\/\/ \u7ed8\u5236\u6e38\u620f\u80cc\u666f\n\tputimage(bkmeshdeskleft, bkmeshdesktop, bkmesh); \t\t\t\t\t\t\t\/\/ \u663e\u793a\u6e38\u620f\u80cc\u666f\u7f13\u51b2\u533a\n\t\/\/ \u6b64\u65f6\u7ed8\u5236\u5b8c\u6210\uff0c\u4ee5\u4e0a \u5237\u8d34\u56fe\uff0c\u91c7\u6837\uff0c\u7c98\u8d34\u5c31\u662f\u5b9e\u73b0 RPG \u6e38\u620f\u5927\u5730\u56fe\u7684\u538b\u7f29\n\t\/\/\t\u5f00\u59cb\u68c0\u6d4b\u9f20\u6807\u952e\u76d8\u529f\u80fd\n\tint drawflag;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bbe\u7f6e\u957f\u6309 flag\n\tint drawoldmx;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u4e0a\u4e00\u6b21\u7ed8\u5236\u65f6\u7684\u9f20\u6807\u5750\u6807\uff0c\u7528\u4e8e\u68c0\u6d4b\u662f\u5426\u91cd\u590d\u70b9\u51fb\u76f8\u540c\u50cf\u7d20\uff0c\u6765\u51cf\u5c11\u91cd\u590d\u7ed8\u5236\n\tint drawoldmy;\n\tint drawx;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u753b\u7b14\u5728\u6e38\u620f\u91cc\u7684\u4f4d\u7f6e\uff0c\u5355\u4f4d\u50cf\u7d20\n\tint drawy;\n\tint olddrawi;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u4e0a\u4e00\u6b21\u7ed8\u5236\u7684\u74e6\u7247\uff0c\u5224\u65ad\u662f\u5426\u9700\u8981\u91cd\u65b0\u7ed8\u5236\n\tint olddrawj;\n\tint drawsmallflag;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5728 drawflag=1 \u65f6\uff0c\u68c0\u6d4b\u662f\u5426\u5237\u65b0\n\tdrawsmallflag = 0;\n\tolddrawi = 0;\n\tolddrawj = 0;\n\tdrawx = 0;\n\tdrawy = 0;\n\tdrawflag = 0;\n\tdrawoldmx = 0;\n\tdrawoldmy = 0;\n\tint pentake;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bbe\u7f6e\u4e0d\u7ed8\u5236\u65f6\u8d34\u56fe\u4ee3\u53f7\u4e3a -1\n\tpentake = 9;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u9ed8\u8ba4\u767d\u8272\u7b14\u5237\uff0c\u5bf9\u5e94\u9ed1\u8272\u80cc\u666f\n\tint draftoldmx;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u521a\u521a\u62d6\u62fd\u65f6\u7684\u9f20\u6807\u7684\u4f4d\u7f6e\uff0c\u7528\u4e8e\u5750\u6807\u53d8\u6362\u8ba1\u7b97\u4f4d\u79fb\n\tint draftoldmy;\n\tint draftoldgamex;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u521a\u521a\u62d6\u62fd\u65f6\u7684\u6e38\u620f\u5730\u56fe\u4f4d\u7f6e\uff0c\u7528\u4e8e\u5750\u6807\u53d8\u6362\u8ba1\u7b97\u65b0\u7684\u6e38\u620f\u5750\u6807\n\tint draftoldgamey;\n\tint draftflag;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bbe\u7f6e\u62d6\u62fd flag\n\tdraftoldmx = 0;\n\tdraftoldmy = 0;\n\tdraftoldgamex = 0;\n\tdraftoldgamey = 0;\n\tdraftflag = 0;\n\tint moveflag;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u662f\u5426\u952e\u76d8\u63a7\u5236\u79fb\u52a8\n\tint flag_x;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u4f4d\u79fb\n\tint flag_y;\n\tint speed;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u952e\u76d8\u63a7\u5236\u89c6\u53e3\u7684\u79fb\u52a8\u901f\u5ea6\n\tspeed = 5;\n\tflag_x = 0;\n\tflag_y = 0;\n\tmoveflag = 0;\n\tint mousex;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u9f20\u6807\u4f4d\u7f6e\n\tint mousey;\n\tmousex = 0;\n\tmousey = 0;\n\tint oldbkmeshgamex;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5224\u65ad\u62d6\u62fd\u65f6\u662f\u5426\u9700\u8981\u5237\u65b0 bkmesh \u7f51\u683c\n\tint oldbkmeshgamey;\n\toldbkmeshgamex = -1;\n\toldbkmeshgamey = -1;\n\tint i = -1;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u7528\u4e8e\u6682\u5b58 mesh \u7f51\u683c\u5750\u6807\n\tint j = -1;\n\tint characterflag;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u7528\u4e8e\u6309\u952e\u65f6\u6e38\u620f\u5c0f\u4eba\u7684\u989c\u8272\u53d8\u5316\n\tcharacterflag = 5;\n\tExMessage m;\n\tcheckboundary(&amp;bkgameleft, &amp;bkgametop, gamelimitright, gamelimitbottom, &amp;bkmeshgameleft, &amp;bkmeshgametop, &amp;meshlimitright, &amp;meshlimitbottom, bkmeshcopyheight, bkmeshcopywidth);\t\t\t\/\/ move =pixnum * 9, size = 2*9* pinxum 2024.4.22 \u66ff\u6362 bkmeshcopyheight\n\tbkmeshmapi = bkmeshgametop \/ pixnum;\n\tbkmeshmapj = bkmeshgameleft \/ pixnum;\n\tfreshmesh(oldmesh, bkmesh,map, pentable, pentablev2, bkmeshmapi, bkmeshmapj, bkmeshfreshi,bkmeshfreshj, pixnum,defaultnum, defaultcolor);\t\t\t\/\/ \u5237\u65b0\uff0c\u91cd\u65b0\u6620\u5c04\uff0c\u5176\u5b9e\u5c31\u662f\u5f00\u5934\u521d\u59cb\u5316\u7684\u4ee3\u7801,\u8fd9\u91cc\u662f\u7ed9\u4e86\u4e00\u4e2a\u5c01\u88c5\u793a\u4f8b\uff0c\u7528\u4e86\u4e00\u4e2a\u6570\u7ec4\u8fc7\u6ee4\u91cd\u590d\u4f4d\u7f6e\u8fdb\u884c\u6027\u80fd\u4f18\u5316-2024.4.21\n\tfreshbk(bk, bkmesh, bkgameleft, bkgametop, bkmeshmapi, bkmeshmapj, bkwidth, bkheight, pixnum);\n\tshowbkmesh(bkmesh, bkmeshdeskleft, bkmeshdesktop);\n\tshowbk(bk, bkdeskleft, bkdesktop);\n\tint action=0;\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u73a9\u5bb6\u52a8\u4f5c\u8f93\u5165\n\n\tsrand((unsigned)time(NULL));\n\n\tsettextcolor(RGB(0, 254, 0));\n\tsettextstyle(30, 0, \"\u5fae\u8f6f\u96c5\u9ed1\");\n\touttextxy(50+100, 200-100, \"AWSD \u952e\u79fb\u52a8, K \u653b\u51fb, \u53f3 Shift \u5207\u6362\u52a0\u901f\u6a21\u5f0f\");\n\n\tbool win = false, dead = false;\n\n\tclock_t firerate = clock();\t\t\t\t\t\t\/\/ \u5c04\u51fb\u63a7\u5236\n\tclock_t e_firerate = clock();\t\t\t\t\t\/\/ \u63a7\u5236\u654c\u673a\u7684\u5c04\u51fb\n\tclock_t runtime = clock();\t\t\t\t\t\t\/\/ \u7528\u4e8e\u63a7\u5236\u753b\u9762\u5237\u65b0\u9891\u7387\n\tclock_t bleed_p = clock(), bleed_e = clock();\t\/\/ \u7528\u4e8e\u5b9e\u73b0\u53d7\u4f24\u95ea\u70c1\n\tclock_t backgroundline_generate = clock();\t\t\/\/ \u7528\u4e8e\u751f\u6210\u80cc\u666f\u7ebf\u6761\n\tSleep(3000);\n\/\/\tBeginBatchDraw();\n\n\tbool leftshift = false;\n\n\tbegin_time = clock();\n\n\tBeginBatchDraw();\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5f00\u542f\u53cc\u7f13\u51b2\u7ed8\u5236\uff0c\u907f\u514d\u5361\u987f\n\twhile (1)\n\t{\n\t\twhile (peekmessage(&amp;m, EX_KEY | EX_MOUSE))\t\t\/\/ \u4e00\u6b21\u6027\u5904\u7406\u5b8c\u9f20\u6807\u6d88\u606f\uff0c\u53c2\u8003\u81ea https:\/\/codebus.cn\/zhaoh\/handle-mouse-messages-correctly\n\t\t{\n\t\t\tswitch (m.message)\n\t\t\t{\n\t\t\t\tcase WM_LBUTTONDOWN:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u9f20\u6807\u5de6\u952e\u6309\u4e0b\uff0c\u6709\u4e24\u79cd\u60c5\u51b5\uff0c\u4e00\u662f\u9009\u62e9\u8d34\u56fe\uff0c\u53e6\u5916\u5c31\u662f\u7ed8\u5236\u8d34\u56fe\n\t\t\t\t\tif (drawflag == 0 &amp;&amp; m.x &gt; bkdeskleft &amp;&amp; m.y &gt; bkdesktop &amp;&amp; m.x &lt; bkdeskleft + bkwidth &amp;&amp; m.y &lt; bkdesktop + bkheight)\t\t\/\/ \u5982\u679c\u4e4b\u524d\u4e0d\u662f\u957f\u6309\u72b6\u6001\t\u4e14\u6309\u4e0b\u5de6\u952e\u65f6\uff0c\u9f20\u6807\u5728\u6e38\u620f\u80cc\u666f\u533a\u57df\u5185\n\t\t\t\t\t{\n\t\t\t\t\t\tdrawflag = 1;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u4e3a\u6b63\u5728\u7ed8\u5236\u7684\u72b6\u6001\n\t\t\t\t\t\tmousex = m.x;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u5750\u6807\u7528\u4e8e\u7ed8\u5236\n\t\t\t\t\t\tmousey = m.y;\n\t\t\t\t\t}\n\t\t\t\t\telse if (drawflag == 0 &amp;&amp; draftflag == 0 &amp;&amp; m.x &gt; 0 &amp;&amp; m.y &gt; 10 &amp;&amp; m.x &lt; 40 &amp;&amp; m.y &lt; 300)\n\t\t\t\t\t{\n\t\t\t\t\t\tpentake = m.y \/ pixnum;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u9009\u62e9\u8d34\u56fe\u5bf9\u5e94\u7684\u4ee3\u53f7\n\t\t\t\t\t\tprintf(\"pentake: %d\\n\", pentake);\n\t\t\t\t\t}\n\t\t\t\t\telse if (drawflag == 0 &amp;&amp; draftflag == 0 &amp;&amp; m.x &gt; 10 &amp;&amp; m.y &gt; 300 &amp;&amp; m.x &lt; 10 + pentablev2wide * 30 &amp;&amp; m.y &lt; 300 + pentablev2high * 30)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (pentablev2[(m.x - pentablev2left) \/ pixnum][(m.y - pentablev2top) \/ pixnum] != NULL)\n\t\t\t\t\t\t\tpentake = ((m.x - pentablev2left) \/ pixnum + 6) * 10 + (m.y - pentablev2top) \/ pixnum;\t\/\/ \u8ba1\u7b97 map \u7684\u4e8c\u4f4d\u6570\u4ee3\u53f7\n\t\t\t\t\t\tprintf(\"pentakev2: %d\\n\", pentake);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase WM_LBUTTONUP:\n\t\t\t\t\tdrawflag = 0;\n\t\t\t\t\tdrawsmallflag = 0;\n\t\t\t\t\tolddrawi = -1;\n\t\t\t\t\tolddrawj = -1;\n\t\t\t\t\tdrawoldmx = -1;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u6e05\u9664\u5750\u6807\u8bb0\u5f55\uff0c\u4fdd\u8bc1\u4e0b\u6b21\u6309\u952e\u4e00\u5b9a\u7ed8\u5236\n\t\t\t\t\tdrawoldmy = -1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase WM_RBUTTONDOWN:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u9f20\u6807\u53f3\u952e\u62d6\u52a8\n\t\t\t\t\tif (draftflag == 0 &amp;&amp; m.x &gt; bkdeskleft &amp;&amp; m.y &gt; bkdesktop &amp;&amp; m.x &lt; bkdeskleft + bkwidth &amp;&amp; m.y &lt; bkdesktop + bkheight)\n\t\t\t\t\t{\n\t\t\t\t\t\tdraftflag = 1;\n\t\t\t\t\t\tdraftoldmx = m.x;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u9f20\u6807\u5750\u6807\n\t\t\t\t\t\tdraftoldmy = m.y;\n\t\t\t\t\t\tmousex = m.x;\n\t\t\t\t\t\tmousey = m.y;\n\t\t\t\t\t\tdraftoldgamex = bkgameleft;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u6e38\u620f\u80cc\u666f\u5bc4\u5b58\u533a\u5de6\u4e0a\u89d2\u5750\u6807\n\t\t\t\t\t\tdraftoldgamey = bkgametop;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase WM_RBUTTONUP:\n\t\t\t\t\tdraftflag = 0;\n\t\t\t\t\tbkgameleft = draftoldgamex - (m.x - draftoldmx);\t\t\t\t\t\t\t\t\t\t\t\t\/\/ bkgameleft - draftoldgamex =- (m.x - draftoldmx)\n\t\t\t\t\tbkgametop = draftoldgamey - (m.y - draftoldmy);\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ bkgametop - draftoldgamey =- (m.y - draftoldmy)\n\t\t\t\t\tmousex = -1;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ draft \u548c draw \u5171\u7528 mousex mousey\n\t\t\t\t\tmousey = -1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase WM_KEYDOWN:\n\t\t\t\t\tswitch (m.vkcode)\t\t\t\t\/\/ \u952e\u76d8\u79fb\u52a8\u63a7\u5236\n\t\t\t\t\t{\n\t\t\t\t\t\tcase 0x41:\t\t\t\t\t\t\/\/ A\n\t\t\t\t\t\t\tif (flag_x - speed &gt; -10)\t\/\/ \u9650\u5236\u8303\u56f4\uff0c\u51cf\u5c11\u5185\u5b58\u8bfb\u5199\n\t\t\t\t\t\t\t\tflag_x -= speed;\n\t\t\t\t\t\t\tcharacterflag = 1;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x57:\t\t\t\t\t\t\/\/ W\n\t\t\t\t\t\t\tif (flag_y - speed &gt; -10)\n\t\t\t\t\t\t\t\tflag_y -= speed;\n\t\t\t\t\t\t\tcharacterflag = 2;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x44:\t\t\t\t\t\t\/\/ D\n\t\t\t\t\t\t\tif (flag_x + speed &lt; 10)\n\t\t\t\t\t\t\t\tflag_x += speed;\n\t\t\t\t\t\t\tcharacterflag = 3;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x53:\t\t\t\t\t\t\/\/ S\n\t\t\t\t\t\t\tmoveflag = 1;\n\t\t\t\t\t\t\tif (flag_y + speed &lt; 10)\n\t\t\t\t\t\t\t\tflag_y += speed;\n\t\t\t\t\t\t\tcharacterflag = 4;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase VK_F1:\n\t\t\t\t\t\t\tsavegamemap(map, mapi, mapj, pentable, pentablev2, pixnum, imagenum);\n\t\t\t\t\t\t\tbreak;\n\/\/\t\t\t\t\t\tcase VK_F2:\n\/\/\t\t\t\t\t\t\tloadgamemap(map, &amp;mapi, &amp;mapj, pentable, &amp;pixnum, &amp;imagenum);\n\/\/\t\t\t\t\t\t\tgamelimitright = pixnum * safemapi;\n\/\/\t\t\t\t\t\t\tgamelimitbottom = pixnum * safemapj;\n\/\/\t\t\t\t\t\t\tfor (int i = 0; i &lt; imagenum; i++)\t\t\t\t\t\/\/ \u5237\u65b0\u7ed8\u56fe\u677f\u989c\u8272\n\/\/\t\t\t\t\t\t\t{\n\/\/\t\t\t\t\t\t\t\tpentable[i] = IMAGE(pixnum, pixnum);\n\/\/\t\t\t\t\t\t\t\tSetWorkingImage(&amp;pentable[i]);\t\t\t\t\t\/\/ \u7ed9\u8c03\u8272\u677f\u7ed8\u5236\u989c\u8272\n\/\/\t\t\t\t\t\t\t\tsetfillcolor(RGB(i * 20, i * 20, i * 20));\t\t\/\/ \u8fd9\u91cc\u521d\u59cb\u5316\u8c03\u8272\u76d8\u7684\u989c\u8272\n\/\/\t\t\t\t\t\t\t\tfillrectangle(-1, -1, pixnum, pixnum);\t\t\t\/\/ \u5728\u8c03\u8272\u677f\u4e0a\u7ed8\u5236\u989c\u8272\uff08\u7eb9\u7406\uff09\u8981\u4ece -1\uff0c-1 \u5f00\u59cb\u7ed8\u5236\uff0c\u628a\u8fb9\u6846\u753b\u5230\u5916\u90e8\uff0c\u4e0d\u4fdd\u7559\u8fb9\u6846\u3002\n\/\/\t\t\t\t\t\t\t}\n\/\/\t\t\t\t\t\t\tSetWorkingImage();\n\/\/\t\t\t\t\t\t\tfreshmesh(oldmesh,bkmesh, map, pentable, pentablev2, bkmeshmapi, bkmeshmapj, bkmeshfreshi,bkmeshfreshj, pixnum, defaultnum, defaultcolor);\t\t\t\/\/ \u5237\u65b0\uff0c\u91cd\u65b0\u6620\u5c04\uff0c\u5176\u5b9e\u5c31\u662f\u5f00\u5934\u521d\u59cb\u5316\u7684\u4ee3\u7801,\u8fd9\u91cc\u662f\u7ed9\u4e86\u4e00\u4e2a\u5c01\u88c5\u793a\u4f8b\uff0c\u7528\u4e86\u4e00\u4e2a\u6570\u7ec4\u8fc7\u6ee4\u91cd\u590d\u4f4d\u7f6e\u8fdb\u884c\u6027\u80fd\u4f18\u5316-2024.4.21\n\/\/\t\t\t\t\t\t\tfreshbk(bk, bkmesh, bkgameleft, bkgametop, bkmeshmapi, bkmeshmapj, bkwidth, bkheight, pixnum);\t\t\t\t\t\t\t\t\/\/ 2024.4.21\u4fee\u6539\n\/\/\t\t\t\t\t\t\tshowbk(bk, bkdeskleft, bkdesktop);\n\/\/\t\t\t\t\t\t\tshowbkmesh(bkmesh, bkmeshdeskleft, bkmeshdesktop);\n\/\/\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x4A:\t\t\t\t\t\t\t\t\t\t\t\t\/\/ J\u952e\u653b\u51fb\n\t\t\t\t\t\t\taction=1;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x55:\t\t\t\t\t\t\t\t\t\t\t\/\/ U\u952e\u653b\u51fb\n\t\t\t\t\t\t\taction=2;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase WM_KEYUP:\n\t\t\t\t\tswitch (m.vkcode)\n\t\t\t\t\t{\n\t\t\t\t\t\tcase 0x41:\t\t\t\t\t\t\/\/ A\n\t\t\t\t\t\t\tflag_x = 0;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x57:\t\t\t\t\t\t\/\/ W\n\t\t\t\t\t\t\tflag_y = 0;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x44:\t\t\t\t\t\t\/\/ D\n\t\t\t\t\t\t\tflag_x = 0;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0x53:\t\t\t\t\t\t\/\/ S\n\t\t\t\t\t\t\tflag_y = 0;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (flag_x == 0 &amp;&amp; flag_y == 0)\n\t\t\t\t\t\tcharacterflag = 5;\n\t\t\t\t\tbreak;\n\t\t\t\tcase WM_MOUSEMOVE:\n\t\t\t\t\tif (mousex != m.x || mousey != m.y)\n\t\t\t\t\t{\n\t\t\t\t\t\tmousex = m.x;\n\t\t\t\t\t\tmousey = m.y;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\/\/\t\t\u5f00\u59cb\u6839\u636e\u6307\u4ee4\u8fd0\u884c\u5750\u6807\u53d8\u5316\n\t\tif (draftflag == 1)\n\t\t{\n\t\t\tif (flag_x != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5b9e\u73b0\u62d6\u62fd\u65f6\u952e\u76d8\u4e5f\u80fd\u63a7\u5236\u79fb\u52a8\n\t\t\t\tdraftoldgamex += flag_x;\n\t\t\tif (flag_y != 0)\n\t\t\t\tdraftoldgamey += flag_y;\n\t\t\tbkgameleft = draftoldgamex - (mousex - draftoldmx);\t\t\t\t\t\t\t\t\t\/\/ bkgameleft-draftoldgamex=-(mousex-draftoldmx)\n\t\t\tbkgametop = draftoldgamey - (mousey - draftoldmy);\t\t\t\t\t\t\t\t\t\/\/ bkgametop-draftoldgamey=-(mousey - draftoldmy)\n\t\t\tif (drawflag == 1 &amp;&amp; mousex &gt; bkdeskleft &amp;&amp; mousey &gt; bkdesktop &amp;&amp; mousex &lt; bkdeskleft + bkwidth &amp;&amp; mousey &lt; bkdesktop + bkheight)\t\t\/\/ \u5b9e\u73b0\u8fb9\u62d6\u62fd\u8fb9\u79fb\u52a8\u8fb9\u7ed8\u5236\n\t\t\t{\n\t\t\t\tdrawx = bkgameleft + (mousex - bkdeskleft);\t\t\t\t\t\t\t\t\t\t\/\/ drawx-bkgameleft=m.x-bkdeskleft\t\u6a2a\u5750\u6807\u65b9\u5411\u79fb\u52a8\u8ddd\u79bb\u76f8\u540c\n\t\t\t\tdrawy = bkgametop + (mousey - bkdesktop);\t\t\t\t\t\t\t\t\t\t\/\/ drawy-bkgametop=m.y-bkdesktop\t\u7eb5\u5750\u6807\u65b9\u5411\u79fb\u52a8\u8ddd\u79bb\u76f8\u540c\n\t\t\t\ti = drawy \/ pixnum;\n\t\t\t\tj = drawx \/ pixnum;\n\t\t\t\tif (olddrawi != i || olddrawj != j)\n\t\t\t\t{\n\t\t\t\t\tif (i &gt; safemapi)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ map \u6570\u7ec4\u8d8a\u754c\u68c0\u6d4b\n\t\t\t\t\t\ti = safemapi;\n\t\t\t\t\telse if (i &lt; 0)\n\t\t\t\t\t\ti = 0;\n\t\t\t\t\tif (j &gt; safemapj)\n\t\t\t\t\t\tj = safemapj;\n\t\t\t\t\telse if (j &lt; 0)\n\t\t\t\t\t\tj = 0;\n\t\t\t\t\tdrawsmallflag = 1;\n\t\t\t\t\tmap[i][j] = pentake;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u6ce8\u610f map[y][x]\uff0c\u800c\u4e0d\u662f map[x][y]\uff0c\u56e0\u4e3a\u5224\u65ad\u7b2c\u51e0\u884c\uff0c\u662f\u901a\u8fc7 y \u6765\u63a7\u5236\u4e0a\u4e0b\u79fb\u52a8\u7684\uff0c\u5224\u65ad\u7b2c\u51e0\u5217\uff0c\u662f\u901a\u8fc7 x \u5de6\u53f3\u79fb\u52a8\u7684\u3002\n\t\t\t\t\tolddrawi = i;\n\t\t\t\t\tolddrawj = j;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tdrawsmallflag = 0;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u6d4b\u5230\u662f\u4e0a\u4e00\u6b21\u7ed8\u5236\u7684\u74e6\u7247\uff0c\u5219\u4e0d\u518d\u5237\u65b0\u8d34\u56fe\u4e0e\u7f13\u51b2\u533a\u3002\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (drawflag == 1 &amp;&amp; flag_x == 0 &amp;&amp; flag_y == 0 &amp;&amp; (drawoldmx != mousex || drawoldmy != mousey) &amp;&amp; mousex &gt; bkdeskleft &amp;&amp; mousey &gt; bkdesktop &amp;&amp; mousex &lt; bkdeskleft + bkwidth &amp;&amp; mousey &lt; bkdesktop + bkheight)\n\t\t{\n\t\t\t\/\/ \u6ce8\u610f\u4e0d\u8981\u8d8a\u754c\uff0c\u5426\u5219 gamex \u4e3a\u8d1f\u6570\uff0c\u5bfc\u81f4\u6570\u7ec4\u8d8a\u754c\u95ea\u9000\u3002\n\t\t\t\/\/ \u901a\u8fc7\u5b9e\u73b0\u5750\u6807\u53d8\u6362\u4e0e\u8d4b\u503c\u8fbe\u5230\u4fee\u6539\u6e38\u620f\u5927\u5730\u56fe\uff08\u6570\u7ec4\uff09\n\t\t\tmoveflag = 0;\n\t\t\tdrawoldmx = mousex;\n\t\t\tdrawoldmy = mousey;\n\t\t\tdrawx = bkgameleft + (mousex - bkdeskleft);\t\t\t\t\t\t\t\t\t\t\/\/ drawx-bkgameleft=mousex-bkdeskleft\t\u6a2a\u5750\u6807\u65b9\u5411\u79fb\u52a8\u8ddd\u79bb\u76f8\u540c\n\t\t\tdrawy = bkgametop + (mousey - bkdesktop);\t\t\t\t\t\t\t\t\t\t\/\/ drawy-bkgametop=mousey-bkdesktop\t\u7eb5\u5750\u6807\u65b9\u5411\u79fb\u52a8\u8ddd\u79bb\u76f8\u540c\n\t\t\ti = drawy \/ pixnum;\n\t\t\tj = drawx \/ pixnum;\n\n\t\t\tif (olddrawi != i || olddrawj != j)\n\t\t\t{\n\t\t\t\tif (i &gt; safemapi)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ map \u6570\u7ec4\u8d8a\u754c\u68c0\u6d4b\uff0c\u653e\u5185\u90e8\u5219\u8fb9\u754c\u68c0\u6d4b\u4f1a\u591a\u5199\uff0c\u653e\u5916\u90e8\u5219\u7ed8\u5236\u65f6\u4f1a\u591a\u5199\u6d88\u8017\n\t\t\t\t\ti = safemapi;\n\t\t\t\telse if (i &lt; 0)\n\t\t\t\t\ti = 0;\n\t\t\t\tif (j &gt; safemapj)\n\t\t\t\t\tj = safemapj;\n\t\t\t\telse if (j &lt; 0)\n\t\t\t\t\tj = 0;\n\t\t\t\tdrawsmallflag = 1;\n\t\t\t\t\/\/ \u8fd9\u91cc\u53ef\u4ee5\u6539\u6210\u6e38\u620f\u91cc\u7684\u6309\u952e\u63d0\u793a\u533a\u57df\n\/\/\t\t\t\tmap[i][j] = pentake;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u6ce8\u610f map[y][x]\uff0c\u800c\u4e0d\u662f map[x][y]\uff0c\u56e0\u4e3a\u5224\u65ad\u7b2c\u51e0\u884c\uff0c\u662f\u901a\u8fc7 y \u6765\u63a7\u5236\u4e0a\u4e0b\u79fb\u52a8\u7684\uff0c\u5224\u65ad\u7b2c\u51e0\u5217\uff0c\u662f\u901a\u8fc7 x \u5de6\u53f3\u79fb\u52a8\u7684\u3002\n\t\t\t\tolddrawi = i;\n\t\t\t\tolddrawj = j;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdrawsmallflag = 0;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u6d4b\u5230\u662f\u4e0a\u4e00\u6b21\u7ed8\u5236\u7684\u74e6\u7247\uff0c\u5219\u4e0d\u518d\u5237\u65b0\u8d34\u56fe\u4e0e\u7f13\u51b2\u533a\u3002\n\t\t\t}\n\t\t}\t\/\/\t\u5bf9\u7ed8\u5236\u8fdb\u884c\u5206\u7c7b\u8ba1\u7b97\u6570\u636e\uff0c\u5265\u79bb\u7279\u6b8a\u60c5\u51b5\u7684\u91cd\u590d\u7ed8\u5236\uff0c\u4ec5\u4ec5\u662f flag_x\uff0c\u6216\u8005 flag_y \u4e0d\u4e3a\u96f6\u65f6\u53d6\u6d88\u91cd\u590d\u7ed8\u5236\u5224\u65ad\n\t\telse if (drawflag == 1 &amp;&amp; mousex &gt; bkdeskleft &amp;&amp; mousey &gt; bkdesktop &amp;&amp; mousex &lt; bkdeskleft + bkwidth &amp;&amp; mousey &lt; bkdesktop + bkheight)\n\t\t{\n\t\t\tmoveflag = 1;\n\t\t\tbkgameleft += flag_x;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u66f4\u65b0\u6e38\u620f\u80cc\u666f\u5bc4\u5b58\u533a\u5de6\u4e0a\u89d2\u5750\u6807\n\t\t\tbkgametop += flag_y;\n\t\t\tdrawx = bkgameleft + (mousex - bkdeskleft);\t\t\t\t\t\t\t\t\t\t\/\/ drawx-bkgameleft=m.x-bkdeskleft\t\u6a2a\u5750\u6807\u65b9\u5411\u79fb\u52a8\u8ddd\u79bb\u76f8\u540c\n\t\t\tdrawy = bkgametop + (mousey - bkdesktop);\t\t\t\t\t\t\t\t\t\t\/\/ drawy-bkgametop=m.y-bkdesktop\t\u7eb5\u5750\u6807\u65b9\u5411\u79fb\u52a8\u8ddd\u79bb\u76f8\u540c\n\t\t\ti = drawy \/ pixnum;\n\t\t\tj = drawx \/ pixnum;\n\t\t\tif (olddrawi != i || olddrawj != j)\n\t\t\t{\n\t\t\t\tif (i &gt; safemapi)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ map \u6570\u7ec4\u8d8a\u754c\u68c0\u6d4b\n\t\t\t\t\ti = safemapi;\n\t\t\t\telse if (i &lt; 0)\n\t\t\t\t\ti = 0;\n\t\t\t\tif (j &gt; safemapj)\n\t\t\t\t\tj = safemapj;\n\t\t\t\telse if (j &lt; 0)\n\t\t\t\t\tj = 0;\n\t\t\t\tprintf(\"draw j,i=%d,%d\\n\",j,i);\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u6d4b\u8bd5\u6570\u636e\n\t\t\t\tprintf(\"bkgamex,y %d %d\\n\",bkgameleft,bkgametop);\n\t\t\t\tprintf(\"bkmeshmapi,bkmeshmapj %d %d\\n\",bkmeshmapi,bkmeshmapj);\n\t\t\t\tdrawsmallflag = 1;\n\t\t\t\t\/\/ \u8fd9\u91cc\u53ef\u4ee5\u6539\u6210\u6e38\u620f\u91cc\u7684\u6309\u952e\u63d0\u793a\u533a\u57df\n\/\/\t\t\t\tmap[i][j] = pentake;\t\t\t\t\t\t\t\t\t\t\t\/\/ \u6ce8\u610f map[y][x]\uff0c\u800c\u4e0d\u662f map[x][y]\uff0c\u56e0\u4e3a\u5224\u65ad\u7b2c\u51e0\u884c\uff0c\u662f\u901a\u8fc7 y \u6765\u63a7\u5236\u4e0a\u4e0b\u79fb\u52a8\u7684\uff0c\u5224\u65ad\u7b2c\u51e0\u5217\uff0c\u662f\u901a\u8fc7 x \u5de6\u53f3\u79fb\u52a8\u7684\u3002\n\t\t\t\tolddrawi = i;\n\t\t\t\tolddrawj = j;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdrawsmallflag = 0;\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u6d4b\u5230\u662f\u4e0a\u4e00\u6b21\u7ed8\u5236\u7684\u74e6\u7247\uff0c\u5219\u4e0d\u518d\u5237\u65b0\u8d34\u56fe\u4e0e\u7f13\u51b2\u533a\u3002\n\t\t\t}\n\t\t}\n\t\telse if ((drawflag == 0 &amp;&amp; flag_x != 0 )|| flag_y != 0)\n\t\t{\n\t\t\tmoveflag = 1;\n\t\t\tbkgameleft += flag_x;\n\t\t\tbkgametop += flag_y;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t\/\/ \u65e2\u4e0d\u7ed8\u5236\u4e5f\u4e0d\u79fb\u52a8\u4e5f\u4e0d\u62d6\u62fd\n\t\t}\n\t\t\/\/ \u6839\u636e\u8ba1\u7b97\u51fa\u7684\u5750\u6807\u6570\u636e\u8fdb\u884c\u7ed8\u5236\uff0c\u5206\u591a\u79cd\u60c5\u51b5\u5206\u522b\u7ed8\u5236\uff0c\u51cf\u5c11\u51fd\u6570\u91cd\u590d\u8c03\u7528\u4e0e\u65e0\u6548\u8c03\u7528\n\t\tif (drawsmallflag == 1 &amp;&amp; moveflag == 0)\n\t\t{\n\t\t\tfreshmesh(oldmesh, bkmesh,map, pentable, pentablev2, bkmeshmapi, bkmeshmapj, bkmeshfreshi,bkmeshfreshj, pixnum,defaultnum, defaultcolor);\t\t\t\/\/ \u5237\u65b0\uff0c\u91cd\u65b0\u6620\u5c04\uff0c\u5176\u5b9e\u5c31\u662f\u5f00\u5934\u521d\u59cb\u5316\u7684\u4ee3\u7801,\u8fd9\u91cc\u662f\u7ed9\u4e86\u4e00\u4e2a\u5c01\u88c5\u793a\u4f8b\uff0c\u7528\u4e86\u4e00\u4e2a\u6570\u7ec4\u8fc7\u6ee4\u91cd\u590d\u4f4d\u7f6e\u8fdb\u884c\u6027\u80fd\u4f18\u5316-2024.4.21\n\t\t\tfreshbk(bk, bkmesh, bkgameleft, bkgametop, bkmeshmapi, bkmeshmapj, bkwidth, bkheight, pixnum);\n\t\t\tshowbk(bk, bkdeskleft, bkdesktop);\n\t\t\tshowbkmesh(bkmesh, bkmeshdeskleft, bkmeshdesktop);\n\t\t}\n\t\telse if (moveflag == 1 &amp;&amp; drawsmallflag == 1)\n\t\t{\n\t\t\tcheckboundary(&amp;bkgameleft, &amp;bkgametop, gamelimitright, gamelimitbottom, &amp;bkmeshgameleft, &amp;bkmeshgametop, &amp;meshlimitright, &amp;meshlimitbottom, bkmeshcopyheight, bkmeshcopywidth);\t\t\t\/\/ move =pixnum * 9, size = 2*9* pinxum 2024.4.22 \u66ff\u6362 bkmeshcopyheight\n\t\t\tbkmeshmapi = bkmeshgametop \/ pixnum;\n\t\t\tbkmeshmapj = bkmeshgameleft \/ pixnum;\n\t\t\tfreshmesh(oldmesh, bkmesh,map, pentable, pentablev2, bkmeshmapi, bkmeshmapj, bkmeshfreshi,bkmeshfreshj, pixnum,defaultnum, defaultcolor);\t\t\t\/\/ \u5237\u65b0\uff0c\u91cd\u65b0\u6620\u5c04\uff0c\u5176\u5b9e\u5c31\u662f\u5f00\u5934\u521d\u59cb\u5316\u7684\u4ee3\u7801,\u8fd9\u91cc\u662f\u7ed9\u4e86\u4e00\u4e2a\u5c01\u88c5\u793a\u4f8b\uff0c\u7528\u4e86\u4e00\u4e2a\u6570\u7ec4\u8fc7\u6ee4\u91cd\u590d\u4f4d\u7f6e\u8fdb\u884c\u6027\u80fd\u4f18\u5316-2024.4.21\n\t\t\tfreshbk(bk, bkmesh, bkgameleft, bkgametop, bkmeshmapi, bkmeshmapj, bkwidth, bkheight, pixnum);\n\t\t\tshowbkmesh(bkmesh, bkmeshdeskleft, bkmeshdesktop);\n\t\t\tshowbk(bk, bkdeskleft, bkdesktop);\n\t\t}\n\t\telse if (moveflag == 1 || draftflag)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5206\u7c7b\u6e32\u67d3, drawflag==0 \u65f6\uff0c\u518d\u9009\u62e9\u6027\u5237\u65b0\u7f13\u51b2\u533a\n\t\t{\n\t\t\tcheckboundary(&amp;bkgameleft, &amp;bkgametop, gamelimitright, gamelimitbottom, &amp;bkmeshgameleft, &amp;bkmeshgametop, &amp;meshlimitright, &amp;meshlimitbottom,bkmeshcopyheight, bkmeshcopywidth);\t\t\t\/\/ move =pixnum * 9, size = 2*9* pinxum\n\t\t\tbkmeshmapi = bkmeshgametop \/ pixnum;\n\t\t\tbkmeshmapj = bkmeshgameleft \/ pixnum;\n\t\t\tif (oldbkmeshgamex != bkmeshgameleft || oldbkmeshgamey != bkmeshgametop)\t\t\t\t\t\/\/ \u5224\u65ad\u662f\u5426\u66f4\u65b0\u91c7\u6837\u533a\n\t\t\t{\n\t\t\t\tfreshmesh(oldmesh,bkmesh, map, pentable, pentablev2, bkmeshmapi, bkmeshmapj, bkmeshfreshi,bkmeshfreshj, pixnum,defaultnum, defaultcolor);\t\t\t\/\/ \u5237\u65b0\uff0c\u91cd\u65b0\u6620\u5c04\uff0c\u5176\u5b9e\u5c31\u662f\u5f00\u5934\u521d\u59cb\u5316\u7684\u4ee3\u7801,\u8fd9\u91cc\u662f\u7ed9\u4e86\u4e00\u4e2a\u5c01\u88c5\u793a\u4f8b\uff0c\u7528\u4e86\u4e00\u4e2a\u6570\u7ec4\u8fc7\u6ee4\u91cd\u590d\u4f4d\u7f6e\u8fdb\u884c\u6027\u80fd\u4f18\u5316-2024.4.21\n\t\t\t\toldbkmeshgamex = bkmeshgameleft;\n\t\t\t\toldbkmeshgamey = bkmeshgametop;\n\t\t\t\tshowbkmesh(bkmesh, bkmeshdeskleft, bkmeshdesktop);\n\t\t\t}\n\t\t\tfreshbk(bk, bkmesh, bkgameleft, bkgametop, bkmeshmapi, bkmeshmapj, bkwidth, bkheight, pixnum);\n\t\t\tshowbk(bk, bkdeskleft, bkdesktop);\n\t\t}\n\t\tanimationv2(characterflag, bkgameleft, bkgametop, bkmeshgameleft, bkmeshgametop, bkmeshdeskleft, bkmeshdesktop);\t\t\/\/ \u5c0f\u65b9\u5757\u52a8\u753b\n\n\t\t\/\/ \u663e\u793a\u73a9\u5bb6\n\t\tfillrectangle(bkdeskleft+bkwidth\/2-pixnum\/2,bkdesktop+bkheight\/2-pixnum\/2,bkdeskleft+bkwidth\/2+pixnum\/2,bkdesktop+bkheight\/2+pixnum\/2);\n\n\t\tif(action==1)\n\t\t{\n\t\t\tSetWorkingImage(bk); \n\t\t\tstatic int cnt=0;\n\t\t\tif(action==1&amp;&amp;cnt==0)\n\t\t\t\tcnt=1;\n\t\t\tif(cnt&gt;=60&amp;&amp;action==1)\n\t\t\t{\n\t\t\t\tcnt=0;\n\t\t\t\taction=0;\n\t\t\t}\n\t\t\telse if(action==1)\n\t\t\t{\n\n\t\t\t\tfor(int i=0; i&lt;5; i++)\n\t\t\t\t{\n\t\t\t\t\t\n\t\t\t\t\tsetfillcolor(RGB(cnt%255,cnt*2%255,cnt*9%255));\n\t\t\t\t\tsolidcircle(bkwidth\/2,bkheight\/2,i+cnt);\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tcnt++;\n\t\t\t}\n\t\t\tprintf(\"cnt %d\\n\",cnt);\n\t\t\tSetWorkingImage(); \n\t\t}\n\n\t\tif (clock() - runtime &gt;= FRAMERATE)\n\t\t{\n\t\t\truntime = clock();\n\/\/\t\t\tcleardevice();\n\/\/\t\t\tdraw_background();\n\t\t\tsetfillcolor(GREEN);\n\t\t\tfillrectangle(0,650,685,940);\n\t\t\tshow_buffs();\n\t\t\thp_bar();\/\/ \u753b\u8840\u6761\n\n\n\t\t\tSetWorkingImage(bk);\n\t\t\tshow_player();\n\t\t\tshow_enemy();\n\n\t\t\tint n_p_b = 1, n_e_b = 1;\t\t\t\t\t\/\/ \u8ba1\u6570,\u904d\u5386\u5b50\u5f39\uff0c\u5237\u65b0\u4f4d\u7f6e\n\t\t\tint p_b_toprocess = number_p_b, e_b_toprocess = number_e_b;\t\/\/ \u9700\u8981\u5904\u7406\u7684\u5b50\u5f39\u6570\n\t\t\tfor (int i = 0; i &lt; MAX_PLAYER_BULLETS &amp;&amp; (n_p_b &lt;= p_b_toprocess || n_e_b &lt;= e_b_toprocess); ++i)\n\t\t\t{\n\t\t\t\tif (n_p_b &lt;= p_b_toprocess)\t\t\t\t\/\/ \u5982\u679c\u5b50\u5f39\u5df2\u7ecf\u5904\u7406\u5b8c\u5c31\u4e0d\u5904\u7406\u4e86\n\t\t\t\t{\n\t\t\t\t\tif (p_b_slots[i] == true)\n\t\t\t\t\t{\n\t\t\t\t\t\t++n_p_b;\n\t\t\t\t\t\tplayer_bullet[i][0] += 3;\n\t\t\t\t\t\tsetfillcolor(RGB(150, 180, 210));\n\t\t\t\t\t\tif (player_bullet[i][0] &gt;= 635)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdestroy_p_b(i);\t\/\/ \u5230\u8fbe\u4e86\u5c4f\u5e55\u6700\u53f3\u7aef\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\/\/ \u78b0\u649e\u68c0\u6d4b\uff0c\u4e24\u4e2a\u77e9\u5f62\n\t\t\t\t\t\tif ((player_bullet[i][0] + 5 &gt;= enemy_pos[0] - 20 &amp;&amp; player_bullet[i][0] - 5 &lt;= enemy_pos[0] + 20) &amp;&amp; (player_bullet[i][1] - 5 &lt; enemy_pos[1] + 40 &amp;&amp; player_bullet[i][1] + 5 &gt; enemy_pos[1] - 40))\n\t\t\t\t\t\t\t\/\/ \u51fb\u4e2d\u654c\u4eba\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdestroy_p_b(i);\n\t\t\t\t\t\t\tenemy_health -= 8;\n\t\t\t\t\t\t\tisBleeding_e = true;\n\t\t\t\t\t\t\tbleed_e = clock();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfillrectangle(player_bullet[i][0] - 5, player_bullet[i][1] - 5, player_bullet[i][0] + 5, player_bullet[i][1] + 5);\t\t\/\/ \u753b\u5b50\u5f39\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif (n_e_b &lt;= e_b_toprocess)\t\t\t\t\/\/ \u654c\u4eba\u7684\u5b50\u5f39\n\t\t\t\t{\n\t\t\t\t\tif (e_b_slots[i] == true)\n\t\t\t\t\t{\n\t\t\t\t\t\t++n_e_b;\n\t\t\t\t\t\tenemy_bullet[i][0] -= 3;\n\t\t\t\t\t\tsetfillcolor(RGB(255, 180, 20));\n\t\t\t\t\t\tif (enemy_bullet[i][0] &lt; 5)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdestroy_e_b(i);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\/\/ \u78b0\u649e\u68c0\u6d4b\uff0c\u4e24\u4e2a\u77e9\u5f62\n\t\t\t\t\t\tif (enemy_bullet[i][0] - 5 &lt; player_pos[0] + 25 &amp;&amp; enemy_bullet[i][0] + 5 &gt; player_pos[0] - 25 &amp;&amp; enemy_bullet[i][1] - 5 &lt; player_pos[1] + 25 &amp;&amp; enemy_bullet[i][1] + 5 &gt; player_pos[1] - 25)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\/\/ \u51fb\u4e2d\u81ea\u673a\n\t\t\t\t\t\t\tisBleeding_p = true;\n\t\t\t\t\t\t\tdestroy_e_b(i);\n\t\t\t\t\t\t\tplayer_health -= 8;\n\t\t\t\t\t\t\tbleed_p = clock();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfillrectangle(enemy_bullet[i][0] - 5, enemy_bullet[i][1] - 5, enemy_bullet[i][0] + 5, enemy_bullet[i][1] + 5);\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\t\t\tSetWorkingImage();\n\t\t\tshowbk(bk, bkdeskleft, bkdesktop);\n\t\t\tif (win || dead)\n\t\t\t\tbreak;\n\t\t\tFlushBatchDraw();\t\t\t\t\t\t\t\/\/ \u5728\u8fd9\u91cc\u5237\u65b0\u624d\u6709\u6548 \u4e0d\u95ea\u5c4f\n\n\t\t\tmove_enemy();\n\t\t\tcheck_move();\t\t\t\t\t\t\t\t\/\/ \u66ff\u6362\u79fb\u52a8 \n\t\t\tif (player_health &lt;= 0)\n\t\t\t\tdead = true;\n\t\t\tif (enemy_health &lt;= 0)\n\t\t\t{\n\t\t\t\twin = true;\n\t\t\t}\n\n\/\/\t\t\tif (GetAsyncKeyState(VK_LSHIFT) &amp; 0x8000)\t\/\/ \u6309\u4f4f Shift \u51cf\u901f\n\/\/\t\t\t{\n\/\/\t\t\t\tleftshift = true;\n\/\/\t\t\t}\n\/\/\t\t\telse\n\/\/\t\t\t{\n\/\/\t\t\t\tleftshift = false;\n\/\/\t\t\t}\n\/\/\n\/\/\t\t\tif (GetAsyncKeyState(VK_UP) &amp; 0x8000)\n\/\/\t\t\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\/\/\t\t\t{\n\/\/\t\t\t\tif (player_pos[1] &gt;= 28)\n\/\/\t\t\t\t{\n\/\/\t\t\t\t\tif (leftshift)\n\/\/\t\t\t\t\t\tplayer_pos[1] -= 2;\t\t\t\t\/\/ y \u7684\u6b63\u65b9\u5411\u662f\u5411\u4e0b\u7684\n\/\/\t\t\t\t\telse\n\/\/\t\t\t\t\t\tplayer_pos[1] -= 5;\n\/\/\t\t\t\t}\n\/\/\n\/\/\t\t\t}\n\t\t\tif (clock() - firerate &gt;= FIRERATE &amp;&amp; GetAsyncKeyState('K') &amp; 0x8000)\n\t\t\t\t\/\/ \u73a9\u5bb6\u5f00\u706b\n\t\t\t{\n\t\t\t\tfirerate = clock();\n\t\t\t\tcreate_p_b();\n\t\t\t}\n\/\/\t\t\tif (GetAsyncKeyState(VK_DOWN) &amp; 0x8000)\n\/\/\t\t\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\/\/\t\t\t{\n\/\/\t\t\t\tif (player_pos[1] &lt;= 452)\n\/\/\t\t\t\t{\n\/\/\t\t\t\t\tif (leftshift)\n\/\/\t\t\t\t\t\tplayer_pos[1] += 2;\n\/\/\t\t\t\t\telse\n\/\/\t\t\t\t\t\tplayer_pos[1] += 5;\n\/\/\t\t\t\t}\n\/\/\t\t\t}\n\/\/\t\t\tif (GetAsyncKeyState(VK_LEFT) &amp; 0x8000)\n\/\/\t\t\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\/\/\t\t\t{\n\/\/\t\t\t\tif (player_pos[0] &gt;= 30)\n\/\/\t\t\t\t{\n\/\/\t\t\t\t\tif (leftshift)\n\/\/\t\t\t\t\t\tplayer_pos[0] -= 2;\n\/\/\t\t\t\t\telse\n\/\/\t\t\t\t\t\tplayer_pos[0] -= 5;\n\/\/\t\t\t\t}\n\/\/\t\t\t}\n\/\/\t\t\tif (GetAsyncKeyState(VK_RIGHT) &amp; 0x8000)\n\/\/\t\t\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\/\/\t\t\t{\n\/\/\t\t\t\tif (player_pos[0] &lt;= 320)\n\/\/\t\t\t\t\tif (leftshift)\n\/\/\t\t\t\t\t\tplayer_pos[0] += 2;\n\/\/\t\t\t\t\telse\n\/\/\t\t\t\t\t\tplayer_pos[0] += 5;\n\/\/\t\t\t}\n\n\n\t\t\tif (clock() - e_firerate &gt;= E_FIRERATE)\n\t\t\t{\n\t\t\t\te_firerate = clock();\n\t\t\t\tcreate_e_b();\n\t\t\t}\n\n\n\t\t\tif (clock() - bleed_p &gt;= BLEED_TIME)\t\t\/\/ \u53d7\u4f24\u65f6\u95f4\u7ed3\u675f\u540e\u5173\u95ed\u53d7\u4f24\u95ea\u70c1\u6548\u679c\n\t\t\t{\n\t\t\t\tisBleeding_p = false;\n\t\t\t}\n\n\t\t\tif (clock() - bleed_e &gt;= BLEED_TIME)\t\t\/\/ \u53d7\u4f24\u65f6\u95f4\u7ed3\u675f\u540e\u5173\u95ed\u53d7\u4f24\u95ea\u70c1\u6548\u679c\n\t\t\t{\n\t\t\t\tisBleeding_e = false;\n\t\t\t}\n\n\t\t\tif (clock() - backgroundline_generate &gt;= BACKGROUND)\n\t\t\t{\n\t\t\t\tbackgroundline_generate = clock();\n\t\t\t\tgenerate_line();\n\t\t\t}\n\t\t}\n\/\/\t\telse if(action==2)\n\/\/\t\t{\n\/\/\t\t\tstatic int cnt=0;\n\/\/\t\t\tif(cnt==20)\n\/\/\t\t\t{\n\/\/\t\t\t\tcnt==0;\n\/\/\t\t\t\taction=0;\n\/\/\t\t\t}\n\/\/\t\t\telse\n\/\/\t\t\t{\n\/\/\t\t\t\tcnt++;\n\/\/\t\t\t}\n\/\/\n\/\/\t\t}\n\n\/\/\t\tanimation(characterflag, bkgameleft, bkgametop, bkmeshgameleft, bkmeshgametop, bkmeshdeskleft, bkmeshdesktop);\n\/\/\t\tFlushBatchDraw();\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u53cc\u7f13\u51b2\u6279\u91cf\u7ed8\u5236\n\t\tSleep(2);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u4f11\u7720 2 \u6beb\u79d2\uff0c\u51cf\u5c11 CPU \u5360\u7528\n\t}\n\tif (win)\n\t{\n\t\tsettextcolor(RGB(0, 254, 0));\n\t\tsettextstyle(35, 0,  \"\u9ed1\u4f53\");\n\t\touttextxy(150, 200,  \"\u4f60\u6253\u8d25\u4e86boss!\u4f60\u8d62\u4e86\uff01\uff01\");\n\t}\n\telse\n\t{\n\t\tsettextcolor(RGB(254, 0, 0));\n\t\tsettextstyle(35, 0,  \"\u9ed1\u4f53\");\n\t\touttextxy(140, 200,  \"\u4f60\u88abboss\u6253\u8d25\u4e86\uff01\");\n\t}\n\tFlushBatchDraw();\n\tSleep(5000);\n\tEndBatchDraw();\n\treturn 0;\n}\n\n\nvoid hp_bar()\n{\n\tsetlinecolor(RGB(255, 255, 255));\n\tline(0, 481+200, 640, 481+200);\t\t\t\t\t\t\t\t\t\t\/\/ \u4e00\u6761\u5206\u5272\u7ebf\n\tsettextstyle(20, 0,  \"\u9ed1\u4f53\");\n\/\/\tsettextstyle(20,0,\"\u534e\u6587\u65b0\u9b4f\");\n\touttextxy(10, 485+200,  \"BOSS\u7684\u751f\u547d\u503c:\");\n\touttextxy(10, 520+200,  \"\u73a9\u5bb6\u7684\u751f\u547d\u503c:\");\n\tsetfillcolor(RGB(0, 255, 1));\n\tsetlinecolor(WHITE);\n\trectangle(160, 515+200, 560, 540+200);\t\t\t\t\t\t\t\t\/\/ \u8840\u6761\u5916\u6846\n\tsetfillcolor(RGB(0, 255, 1));\n\tsetlinecolor(RGB(255, 255, 255));\n\tif (player_health &gt; 0)\n\t\tfillrectangle(160, 515+200, 160 + player_health * 4, 540+200);\t\/\/ \u73a9\u5bb6\u8840\u6761\n\tsetlinecolor(WHITE);\n\trectangle(160, 485+200, 560, 510+200);\t\t\t\t\t\t\t\t\/\/ \u654c\u4eba\u8840\u6761\u5916\u6846\n\tsetfillcolor(RGB(230, 0, 1));\n\tsetlinecolor(RGB(255, 255, 255));\n\tif (enemy_health &gt; 0)\n\t\tfillrectangle(160, 485+200, 160 + enemy_health * 4, 510+200);\t\/\/ \u654c\u4eba\u8840\u6761\n\n}\n\nvoid show_buffs()\n{\n\tsetlinecolor(RGB(255,255,255));\n\tline(0,481+200,640,481+200);\n\tsettextstyle(20,0,\"\u9ed1\u4f53\");\n\touttextxy(10,620+200,\"\u73a9\u5bb6\u7684\u84dd\u6761:\");\n\tsetfillcolor(RGB(255,0,255));\n\trectangle(160,615+200,560,640+200);\n\n\tsetfillcolor(RGB(0,255,255));\n\tsetlinecolor(RGB(255,255,255));\n\tif(buffs&gt;0)\n\t\tfillrectangle(160,615+200,160+buffs*2,640+200);\n\n}\n\nvoid check_move()\n{\n\tif(canbuff==1&amp;&amp;buffs&lt;=0)\t\t\t\t\t\t\t\t\/\/ \u5355\u5411\u9650\u5236\uff0c\u7b2c\u4e00\u6b21\u5012\u9000\u5230 0 \u7684\u65f6\u5019\uff0c\u53d6\u6d88 shift \u51cf\u901f\u529f\u80fd\n\t\tcanbuff=0;\n\telse if(canbuff==0&amp;&amp;buffs&gt;50)\t\t\t\t\t\t\t\/\/ \u5f53\u56de\u590d\u5230 50 \u7684\u65f6\u5019\uff0c\u91cd\u542f\u5141\u8bb8\u68c0\u6d4b shift \u51cf\u901f\u529f\u80fd\n\t\tcanbuff=1;\n\tif (canbuff==1&amp;&amp;GetAsyncKeyState(VK_RSHIFT) &amp; 0x8000)\t\/\/ \u6309\u4f4f Shift \u51cf\u901f\n\t\tleftshift = true;\n\telse\n\t\tleftshift = false;\n\tif(leftshift==true&amp;&amp;buffs&gt;0)\t\t\t\t\t\t\t\/\/ \u6d88\u8017\u84dd\u6761\n\t\tbuffs-=2;\n\telse if(buffs&lt;200)\t\t\t\t\t\t\t\t\t\t\/\/ \u6062\u590d\u84dd\u6761\n\t\tbuffs+=1;\n\tif (GetAsyncKeyState(0x57) &amp; 0x8000)\n\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\t\tif (player_pos[1] &gt;= 28)\n\t\t\tif (leftshift)\n\t\t\t\tplayer_pos[1] -= 12;\t\t\t\t\t\t\t\/\/ y \u7684\u6b63\u65b9\u5411\u662f\u5411\u4e0b\u7684\n\t\t\telse\n\t\t\t\tplayer_pos[1] -= 5;\n\tif (GetAsyncKeyState(0x53) &amp; 0x8000)\n\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\t\tif (player_pos[1] &lt;= 452)\n\t\t\tif (leftshift)\n\t\t\t\tplayer_pos[1] += 12;\n\t\t\telse\n\t\t\t\tplayer_pos[1] += 5;\n\tif (GetAsyncKeyState(0x41) &amp; 0x8000)\n\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\t\tif (player_pos[0] &gt;= 30)\n\t\t\tif (leftshift)\n\t\t\t\tplayer_pos[0] -= 12;\n\t\t\telse\n\t\t\t\tplayer_pos[0] -= 5;\n\tif (GetAsyncKeyState(0x44) &amp; 0x8000)\n\t\t\/\/ \u73a9\u5bb6\u79fb\u52a8\n\t\tif (player_pos[0] &lt;= 320)\n\t\t\tif (leftshift)\n\t\t\t\tplayer_pos[0] += 12;\n\t\t\telse\n\t\t\t\tplayer_pos[0] += 5;\n}\n\nvoid show_player()\n{\n\tif (isBleeding_p)\n\t\tsetfillcolor(RGB(255, 0, 0));\n\telse\n\t\tsetfillcolor(RGB(150, 180, 210));\n\tfillrectangle(player_pos[0] - 25, player_pos[1] - 25, player_pos[0] + 25, player_pos[1] + 25);\n\tsetfillcolor(RGB(100, 200, 180));\n\tfillrectangle(player_pos[0], player_pos[1] + 5, player_pos[0] + 40, player_pos[1] - 5);\n}\n\nvoid show_enemy()\n{\n\tif (isBleeding_e)\n\t\tsetfillcolor(RGB(255, 0, 0));\n\telse\n\t\tsetfillcolor(RGB(0, 130, 125));\n\tfillrectangle(enemy_pos[0] - 20, enemy_pos[1] - 40, enemy_pos[0] + 20, enemy_pos[1] + 40);\n\tsetfillcolor(RGB(100, 200, 180));\n\tfillrectangle(enemy_pos[0], enemy_pos[1] + 5, enemy_pos[0] - 40, enemy_pos[1] - 5);\n}\n\nvoid move_enemy()\n{\n\tstatic bool angle_v;\t\t\/\/ \u63a7\u5236\u654c\u673a\u7684\u7ad6\u76f4\u79fb\u52a8\u65b9\u5411\uff0ctrue \u4e3a\u5411\u4e0a\uff0c\u5230\u8fb9\u7f18\u5c31\u6362\u5411\n\tstatic bool angle_h;\t\t\/\/ \u63a7\u5236\u654c\u673a\u7684\u6c34\u5e73\u79fb\u52a8\u65b9\u5411\uff0ctrue \u4e3a\u5411\u5de6\uff0c\u5230\u8fb9\u7f18\u5c31\u6362\u5411\n\tstatic clock_t interval;\t\/\/ \u5b9a\u65f6\u968f\u673a\u6362\u5411\n\n\tif (clock() - interval &gt;= 2000)\n\t{\n\t\tinterval = clock();\n\t\tif (rand() % 2)\t\t\t\/\/ \u4e00\u822c\u7684\u6982\u7387\u6362\u5411\n\t\t\tangle_v = !angle_v;\n\t\tif (rand() % 2)\n\t\t\tangle_h = !angle_h;\n\t}\n\n\tif (angle_v == true)\t\t\/\/ \u5230\u4e86\u5730\u56fe\u8fb9\u7f18\u5c31\u8c03\u5934\n\t\tenemy_pos[1] -= 3;\n\telse\n\t\tenemy_pos[1] += 3;\n\tif (angle_h == true)\n\t\tenemy_pos[0] -= 3;\n\telse\n\t\tenemy_pos[0] += 3;\n\n\n\tif (enemy_pos[1] &gt;= 440)\n\t\tangle_v = true;\n\telse if (enemy_pos[1] &lt;= 40)\n\t\tangle_v = false;\n\n\n\tif (enemy_pos[0] &gt;= 580)\n\t\tangle_h = true;\n\telse if (enemy_pos[0] &lt;= 380)\n\t\tangle_h = false;\n\n}\n\n\/\/void draw_background()\n\/\/{\n\/\/\tsetlinecolor(WHITE);\n\/\/\tint n_b_l = number_lines;\t\t\/\/ \u5f85\u5904\u7406\u7ebf\u6761\u6570\u76ee\n\/\/\tfor (int i = 0; i &lt; MAX_LINES &amp;&amp; (n_b_l &gt; 0); ++i)\n\/\/\t{\n\/\/\t\tif (line_slots[i] == true)\n\/\/\t\t{\n\/\/\t\t\tif (background_line[i][0] + background_line[i][2] &lt;= 0)\t\t\/\/ \u8bf4\u660e\u7ebf\u6761\u51fa\u4e86\u5c4f\u5e55\n\/\/\t\t\t{\n\/\/\t\t\t\t--number_lines;\n\/\/\t\t\t\tline_slots[i] = false;\n\/\/\t\t\t}\n\/\/\t\t\telse\n\/\/\t\t\t{\n\/\/\t\t\t\tbackground_line[i][0] -= 10;\t\t\t\t\/\/ \u7ebf\u6761\u79fb\u52a8\n\/\/\t\t\t\tline(background_line[i][0], background_line[i][1], background_line[i][0] + background_line[i][2], background_line[i][1]);\n\/\/\t\t\t}\n\/\/\t\t\t--n_b_l;\n\/\/\t\t}\n\/\/\n\/\/\t}\n\/\/}\n\nint generate_line()\n{\n\tif (number_lines &gt;= MAX_LINES)\n\t\treturn -1;\n\t++number_lines;\n\tfor (int i = 0; i &lt; MAX_LINES; ++i)\n\t{\n\t\tif (line_slots[i] == false)\n\t\t{\n\t\t\tline_slots[i] = true;\n\t\t\tbackground_line[i][0] = 640;\t\t\t\t\/\/ \u7ebf\u6761\u51fa\u73b0\u4e8e\u5c4f\u5e55\u6700\u53f3\u8fb9\n\t\t\tbackground_line[i][1] = rand() % 480;\t\t\/\/ \u7ebf\u6761\u9ad8\u5ea6\u968f\u673a\n\t\t\tbackground_line[i][2] = 10 + rand() % 50;\t\/\/ \u7ebf\u6761\u957f\u5ea6\u968f\u673a\u5728 10-50 \u50cf\u7d20\u4e4b\u95f4\n\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn 0;\n}\n\nint create_p_b()\n{\n\tif (number_p_b &gt; MAX_PLAYER_BULLETS)\t\t\t\/\/ \u7a7a\u95f4\u4e0d\u591f\n\t\treturn -1;\n\tfor (int i = 0; i &lt; MAX_PLAYER_BULLETS; ++i)\t\/\/ \u641c\u7d22 slots\uff0c\u5bfb\u627e\u7a7a\u4f4d\n\t{\n\t\tif (p_b_slots[i] == false)\n\t\t{\n\t\t\tp_b_slots[i] = true;\n\t\t\tplayer_bullet[i][0] = player_pos[0] + 45;\n\t\t\tplayer_bullet[i][1] = player_pos[1];\t\/\/ \u521b\u5efa\u5b50\u5f39\n\t\t\t++number_p_b;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn 0;\n}\n\nint create_e_b()\n{\n\tif (number_e_b &gt; MAX_ENEMY_BULLETS)\t\t\t\t\/\/ \u7a7a\u95f4\u4e0d\u591f\n\t\treturn -1;\n\tfor (int i = 0; i &lt; MAX_ENEMY_BULLETS; ++i)\t\t\/\/ \u641c\u7d22 slots\uff0c\u5bfb\u627e\u7a7a\u4f4d\n\t{\n\t\tif (e_b_slots[i] == false)\n\t\t{\n\t\t\te_b_slots[i] = true;\n\t\t\tenemy_bullet[i][0] = enemy_pos[0] - 45;\n\t\t\tenemy_bullet[i][1] = enemy_pos[1];\t\t\/\/ \u521b\u5efa\u5b50\u5f39\n\t\t\t++number_e_b;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn 0;\n}\n\nint destroy_p_b(int index)\n{\n\tif (index &gt; MAX_PLAYER_BULLETS - 1)\n\t\treturn -2;\n\tif (p_b_slots[index] == false)\n\t\treturn -1;\n\tp_b_slots[index] = false;\n\t--number_p_b;\n\treturn 0;\n}\n\nint destroy_e_b(int index)\n{\n\tif (index &gt; MAX_ENEMY_BULLETS - 1)\n\t\treturn -2;\n\tif (e_b_slots[index] == false)\n\t\treturn -1;\n\te_b_slots[index] = false;\n\t--number_e_b;\n\treturn 0;\n}\n\n\/\/ \u4fdd\u5b58\u6e38\u620f\u5730\u56fe\u7684\u5168\u90e8\u6570\u636e\nvoid savegamemap(int** map, int gamemapi, int gamemapj, IMAGE* pentable, IMAGE*** pentablev2, int pixnum, int imagenum)\n{\n\tFILE* fp;\n\tint i = 0;\n\tint j = 0;\n\tchar dirpath[400] = { '\\0' };\n\tchar filepath[400] = { '\\0' };\n\tfor (i = 0; i &lt; 100; i++)\n\t{\n\t\tsprintf(dirpath, \"DLC%d\", i);\n\t\tif (access(dirpath, 0) == -1) \t\t\t\t\t\t\t\t\t\/\/ \u68c0\u67e5 DLC \u662f\u5426\u5b58\u5728\uff0c\u4e0d\u5b58\u5728\u4e3a -1\n\t\t{\n\t\t\tbreak;\n\t\t}\n\t}\n\tmkdir(dirpath);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u521b\u5efa\u6587\u4ef6\u5939\n\tchar filename[400] = \"gamemap.txt\";\n\tconst char* next = \".\/\";\n\tstrcat(filepath, dirpath);\n\tstrcat(filepath, next);\n\tstrcat(filepath, filename);\n\tfp = fopen(filepath, \"w+\");\t\t\t\t\t\t\t\t\t\t\t\/\/ \u521b\u5efa .txt \u6587\u4ef6\n\tfprintf(fp, \"\u6ce8\u610f\u6b64\u5bfc\u51fa\u7684\u6e38\u620f\u6587\u4ef6\u4e3a\u6309\u952e F1 \u540e\u81ea\u52a8\u751f\u6210 \u4fee\u6539\u6c49\u8bed\u5b57\u7b26\u6216\u8005\u82f1\u6587\u5b57\u7b26 \u6216\u5bfc\u81f4\u8be5 .txt \u6587\u4ef6\u4e0d\u53ef\u8bfb\u53d6\\n\");\n\tfprintf(fp, \"warning this saved gamefile is automatically create after F1 pressed change Chinesse character or English character lead to read failed\");\n\tfprintf(fp, \"pixnum %d\\n\", pixnum);\t\t\t\t\t\t\t\t\t\/\/ \u6b63\u65b9\u5f62\u74e6\u7247\u8d34\u56fe\u8fb9\u957f\u4fe1\u606f\uff1a\u5355\u4f4d\uff1a\u50cf\u7d20\n\tfprintf(fp, \"imagenum %d\\n\", imagenum);\t\t\t\t\t\t\t\t\/\/ \u74e6\u7247\u4e2a\u6570\n\tchar imageindix[400] = { '\\0' };\n\tfor (i = 0; i &lt; imagenum; i++)\n\t{\n\t\tsprintf(imageindix, \"tile_%d.png\", i);\n\t\tfprintf(fp, \"%s\\n\", imageindix);\n\t}\n\tfprintf(fp, \"gamemapi %d gamemapj %d\\n\", gamemapi, gamemapj);\n\tfor (i = 0; i &lt; gamemapi; i++)\n\t{\n\t\tfprintf(fp, \"%d\", map[i][j]);\n\t\tfor (j = 0; j &lt; gamemapj; j++)\n\t\t{\n\t\t\tfprintf(fp, \" %d\", map[i][j]);\n\t\t}\n\t\tfprintf(fp, \"\\n\");\n\t}\n\tfclose(fp);\n\tchar imagename[400] = { '\\0' };\n\tchar imagepath[400] = { '\\0' };\n\tfor (i = 0; i &lt; imagenum; i++)\n\t{\n\t\tsprintf(imagename, \"tile_%d.png\", i);\t\t\t\t\t\t\t\/\/ \u6570\u5b57\u8f6c\u5b57\u7b26\u4e32\n\t\tstrcpy(imagepath, dirpath);\t\t\t\t\t\t\t\t\t\t\/\/ \u51fd\u6570\u76f4\u63a5\u4ece\u5934\u5f00\u59cb\u7c98\u8d34\uff0c\u81ea\u52a8\u6e05\u9664\u5f00\u5934\u7684\u5b57\u7b26\n\t\tstrcat(imagepath, next);\n\t\tstrcat(imagepath, imagename);\n\t\tsaveimage(imagepath, &amp;pentable[i]);\t\t\t\t\t\t\t\t\/\/ \u6279\u91cf\u5bfc\u51fa\u8d34\u56fe\n\t}\n\tsavepersonalfile(dirpath, pentablev2);\t\t\t\t\t\t\t\t\/\/ \u521b\u5efa\u9ed8\u8ba4\u6587\u4ef6\u5939\u5e76\u4fdd\u5b58\u81ea\u5b9a\u4e49\u8d34\u56fe\n}\n \u8bfb\u53d6 DLC \u7ee7\u7eed\u5f00\u53d1\n\/\/void loadgamemap(int** map, int* gamemapi, int* gamemapj, IMAGE* pentable, int* pixnum, int* imagenum)\n\/\/{\n\/\/\tFILE* fp;\n\/\/\tint i = 0;\n\/\/\tint j = 0;\n\/\/\tchar dirpath[400] = { '\\0' };\n\/\/\tchar filepath[400] = { '\\0' };\n\/\/\tfor (i = 0; i &lt; 100; i++)\n\/\/\t{\n\/\/\t\tsprintf(dirpath, \"DLC%d\", i);\n\/\/\t\tif (access(dirpath, 0) == 0) \t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u67e5 DLC \u662f\u5426\u5b58\u5728\uff0c\u5b58\u5728\u4e3a 0\n\/\/\t\t{\n\/\/\t\t\tbreak;\n\/\/\t\t}\n\/\/\t}\n\/\/\tif (i == 100)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ 100 \u6b21\u67e5\u627e\u5931\u8d25\uff0c\u5219\u8fd4\u56de\uff0c\u4e0d\u518d\u8bfb\u53d6\n\/\/\t\treturn;\n\/\/\tchar filename[400] = \"gamemap.txt\";\n\/\/\tconst char* next = \".\/\";\n\/\/\tstrcat(filepath, dirpath);\n\/\/\tstrcat(filepath, next);\n\/\/\tstrcat(filepath, filename);\n\/\/\tfp = fopen(filepath, \"r\");\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bfb\u53d6 .txt \u6587\u4ef6\n\/\/\tfscanf(fp, \"\u6ce8\u610f\u6b64\u5bfc\u51fa\u7684\u6e38\u620f\u6587\u4ef6\u4e3a\u6309\u952e F1 \u540e\u81ea\u52a8\u751f\u6210 \u4fee\u6539\u6c49\u8bed\u5b57\u7b26\u6216\u8005\u82f1\u6587\u5b57\u7b26 \u6216\u5bfc\u81f4\u8be5 .txt \u6587\u4ef6\u4e0d\u53ef\u8bfb\u53d6\\n\");\n\/\/\tfscanf(fp, \"warning this saved gamefile is automatically create after F1 pressed change Chinesse character or English character lead to read failed\");\n\/\/\tfscanf(fp, \"pixnum %d\\n\", pixnum);\t\t\t\t\t\t\t\t\t\/\/ \u6b63\u65b9\u5f62\u74e6\u7247\u8d34\u56fe\u8fb9\u957f\u4fe1\u606f\uff1a\u5355\u4f4d\uff1a\u50cf\u7d20\n\/\/\tfscanf(fp, \"imagenum %d\\n\", imagenum);\t\t\t\t\t\t\t\t\/\/ \u74e6\u7247\u4e2a\u6570\n\/\/\tchar imageindix[400] = { '\\0' };\n\/\/\tchar imagepath[400] = { '\\0' };\n\/\/\tfor (i = 0; i &lt; *imagenum; i++)\n\/\/\t{\n\/\/\t\tfscanf(fp, \"%s\\n\", imageindix);\n\/\/\t\tstrcpy(imagepath, dirpath);\n\/\/\t\tstrcat(imagepath, next);\n\/\/\t\tstrcat(imagepath, imageindix);\n\/\/\t\tloadimage(&amp;pentable[i], imagepath, *pixnum, *pixnum, false);\t\/\/ \u6279\u91cf\u5bfc\u5165\u8d34\u56fe\n\/\/\t}\n\/\/\tfscanf(fp, \"gamemapi %d gamemapj %d\\n\", gamemapi, gamemapj);\n\/\/\tfor (i = 0; i &lt; *gamemapi; i++)\n\/\/\t{\n\/\/\t\tfscanf(fp, \"%d\", &amp;map[i][j]);\n\/\/\t\tfor (j = 0; j &lt; *gamemapj; j++)\n\/\/\t\t{\n\/\/\t\t\tfscanf(fp, \" %d\", &amp;map[i][j]);\n\/\/\t\t}\n\/\/\t\tfscanf(fp, \"\\n\");\n\/\/\t}\n\/\/\tfclose(fp);\n\/\/}\n\n\/\/ \u8bfb\u53d6 DLC \u7ee7\u7eed\u5f00\u53d1\nvoid loadgamemapv2(int** map, int* gamemapi, int* gamemapj, IMAGE* pentable, IMAGE*** pentablev2, int* pixnum, int* imagenum)\n{\n\tFILE* fp;\n\tint i = 0;\n\tint j = 0;\n\tchar dirpath[400] = { '\\0' };\n\tchar filepath[400] = { '\\0' };\n\tfor (i = 0; i &lt; 100; i++)\n\t{\n\t\tsprintf(dirpath, \"DLC%d\", i);\n\t\tif (access(dirpath, 0) == 0) \t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u67e5 DLC \u662f\u5426\u5b58\u5728\uff0c\u5b58\u5728\u4e3a 0\n\t\t{\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (i == 100)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ 100 \u6b21\u67e5\u627e\u5931\u8d25\uff0c\u5219\u8fd4\u56de\uff0c\u4e0d\u518d\u8bfb\u53d6\n\t\treturn;\n\tchar filename[400] = \"gamemap.txt\";\n\tconst char* next = \".\/\";\n\tstrcat(filepath, dirpath);\n\tstrcat(filepath, next);\n\tstrcat(filepath, filename);\n\tfp = fopen(filepath, \"r\");\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bfb\u53d6 .txt \u6587\u4ef6\n\tfscanf(fp, \"\u6ce8\u610f\u6b64\u5bfc\u51fa\u7684\u6e38\u620f\u6587\u4ef6\u4e3a\u6309\u952e F1 \u540e\u81ea\u52a8\u751f\u6210 \u4fee\u6539\u6c49\u8bed\u5b57\u7b26\u6216\u8005\u82f1\u6587\u5b57\u7b26 \u6216\u5bfc\u81f4\u8be5 .txt \u6587\u4ef6\u4e0d\u53ef\u8bfb\u53d6\\n\");\n\tfscanf(fp, \"warning this saved gamefile is automatically create after F1 pressed change Chinesse character or English character lead to read failed\");\n\tfscanf(fp, \"pixnum %d\\n\", pixnum);\t\t\t\t\t\t\t\t\t\t\/\/ \u6b63\u65b9\u5f62\u74e6\u7247\u8d34\u56fe\u8fb9\u957f\u4fe1\u606f\uff1a\u5355\u4f4d\uff1a\u50cf\u7d20\n\tfscanf(fp, \"imagenum %d\\n\", imagenum);\t\t\t\t\t\t\t\t\t\/\/ \u74e6\u7247\u4e2a\u6570\n\tchar imageindix[400] = { '\\0' };\n\tchar imagepath[400] = { '\\0' };\n\tfor (i = 0; i &lt; *imagenum; i++)\n\t{\n\t\tfscanf(fp, \"%s\\n\", imageindix);\n\t\tstrcpy(imagepath, dirpath);\n\t\tstrcat(imagepath, next);\n\t\tstrcat(imagepath, imageindix);\n\t\tloadimage(&amp;pentable[i], imagepath, *pixnum, *pixnum, false);\t\t\/\/ \u6279\u91cf\u5bfc\u5165\u8d34\u56fe\n\t}\n\tfscanf(fp, \"gamemapi %d gamemapj %d\\n\", gamemapi, gamemapj);\n\tfor (i = 0; i &lt; *gamemapi; i++)\n\t{\n\t\tfscanf(fp, \"%d\", &amp;map[i][j]);\n\t\tfor (j = 0; j &lt; *gamemapj; j++)\n\t\t{\n\t\t\tfscanf(fp, \" %d\", &amp;map[i][j]);\n\t\t}\n\t\tfscanf(fp, \"\\n\");\n\t}\n\tfclose(fp);\n\tprintf(\"\u5bfc\u5165 map \u90e8\u5206\u6b63\u5e38\\n\");\n\tloadfilev2(dirpath, pentablev2);\n}\n\/\/ \u4ece\u9ed8\u8ba4\u6587\u4ef6\u5939\u4e2d\u8bfb\u53d6\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfilev2(char* DLC, IMAGE*** pentablev2)\n{\n\tchar brick[100] = \"aa_birck_6_family\";\n\tchar ground[100] = \"ab_ground_7_family\";\n\tchar change[100] = \"ac_change_8_family\";\n\tchar trick[100] = \"ad_trick_9_family\";\n\tchar next[100] = \".\/\";\n\tchar png[100] = \"*.png\";\n\tchar dirpath[100] = {};\n\tstrcpy(dirpath, DLC);\n\tstrcat(dirpath, next);\n\tstrcat(dirpath, brick);\n\tloadfile_scanf(dirpath, next, png, pentablev2[0]);\t\t\t\t\t\t\t\t\/\/ \u52a0\u8f7d\u7528\u4e8e\u5f53\u7816\u5934\u7c7b\u578b\u7684\u56fe\u7247\n\tstrcpy(dirpath, DLC);\n\tstrcat(dirpath, next);\n\tstrcat(dirpath, ground);\n\tloadfile_scanf(dirpath, next, png, pentablev2[1]);\n\tstrcpy(dirpath, DLC);\n\tstrcat(dirpath, next);\n\tstrcat(dirpath, change);\n\tloadfile_scanf(dirpath, next, png, pentablev2[2]);\n\tstrcpy(dirpath, DLC);\n\tstrcat(dirpath, next);\n\tstrcat(dirpath, trick);\n\tloadfile_scanf(dirpath, next, png, pentablev2[3]);\n}\n\/\/ \u52a0\u8f7d\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfile_scanf(char* dirname, char* next, char* kind, IMAGE** pentablev2)\n{\n\t\/\/ \u6587\u4ef6\u5b58\u50a8\u4fe1\u606f\u7ed3\u6784\u4f53\n\tstruct _finddata_t fileinfo;\n\t\/\/ \u4fdd\u5b58\u6587\u4ef6\u53e5\u67c4\n\tlong fHandle;\n\t\/\/ \u6587\u4ef6\u6570\u8bb0\u5f55\u5668\n\tchar dirpath[100];\n\tstrcpy(dirpath, dirname);\n\tif (access(dirpath, 0) == -1)\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u67e5\u6587\u4ef6\u5939\u662f\u5426\u5b58\u5728\uff0c\u4e0d\u5b58\u5728\u4e3a -1\n\t{\n\t\treturn;\n\t}\n\telse\n\t{\n\t\tint i = -1;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u6587\u4ef6\u6570\u91cf\n\t\tchar kindpath[100];\n\t\tstrcpy(kindpath, dirpath);\n\t\tstrcat(kindpath, next);\n\t\tstrcat(kindpath, kind);\n\t\tif ((fHandle = _findfirst(kindpath, &amp;fileinfo)) == -1L) \t\t\t\t\t\/\/ *\u662f\u901a\u914d\u7b26\uff0c\u9ed8\u8ba4\u5728\u5f53\u524d\u6587\u4ef6\u5939\u5185\u67e5\u627e\u6587\u4ef6\uff0c\u8fd9\u91cc\u67e5\u627e .png \u6587\u4ef6\n\t\t{\n\t\t\tprintf(\"\u5f53\u524d\u76ee\u5f55: %s \u4e0b\u6ca1\u6709\u6240\u9700\u6587\u4ef6\\n\", dirname);\n\t\t\treturn;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tchar path[100];\n\t\t\tdo\n\t\t\t{\n\t\t\t\ti++;\n\t\t\t\tprintf(\"\u5728%s \u4e0b\u627e\u5230\u6587\u4ef6:%s\uff0c\u6587\u4ef6\u5927\u5c0f\uff1a%ld bit\\n\", dirname, fileinfo.name, fileinfo.size);\n\t\t\t\tstrcpy(path, dirname);\n\t\t\t\tstrcat(path, next);\n\t\t\t\tstrcat(path, fileinfo.name);\n\t\t\t\twhile (pentablev2[i] != NULL)\n\t\t\t\t{\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tpentablev2[i] = new IMAGE(30, 30);\n\t\t\t\tloadimage(pentablev2[i], path, 30, 30);\t\t\t\t\t\t\t\t\/\/ \u6839\u636e\u540d\u79f0\u8bfb\u53d6\u6587\u4ef6\n\t\t\t}\n\t\t\twhile (_findnext(fHandle, &amp;fileinfo) == 0);\n\t\t}\n\t\t\/\/ \u5173\u95ed\u6587\u4ef6\n\t\t_findclose(fHandle);\n\n\t\tprintf(\"\u6587\u4ef6\u6570\u91cf\uff1a%d\\n\", i + 1);\n\t}\n}\n\/\/ \u68c0\u67e5\u8fb9\u754c\ninline void checkboundary(int* bkgameleft, int* bkgametop, int gamelimitright, int gamelimitbottom, int* bkmeshgameleft, int* bkmeshgametop, int* meshlimitright, int* meshlimitbuttom, int bkmeshcopywidth, int bkmeshcopyheight)\n{\n\tif (*bkgameleft &lt; 0)\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u7f51\u683c\u8d8a\u754c\u68c0\u6d4b\u5e76\u8c03\u6574\n\t\t*bkgameleft = 0;\n\telse if (*bkgameleft &gt; gamelimitright)\t\t\t\t\t\t\t\t\/\/ \u8d85\u8fc7\u4e5d\u5bab\u683c\u7684\u8fb9\u754c\u5c31\u4f1a\u5237\u65b0\uff0c\u6240\u4ee5\u8981 gamelimiright = mapwidth - bkmeshcopywidth,\u8fd9\u6837\u5c31\u4e0d\u8d85\u8fc7\u4e5d\u5bab\u683c\u8fb9\u754c\u4e86\u3002\n\t\t*bkgameleft = gamelimitright;\n\tif (*bkgametop &lt; 0)\n\t\t*bkgametop = 0;\n\telse if (*bkgametop &gt; gamelimitbottom)\t\t\t\t\t\t\t\t\/\/ \u8d85\u8fc7\u4e5d\u5bab\u683c\u7684\u8fb9\u754c\u5c31\u4f1a\u5237\u65b0\uff0c\u6240\u4ee5\u8981 gamelimitbottom = mapheight - bkmeshcopyheight,\u8fd9\u6837\u5c31\u4e0d\u8d85\u8fc7\u4e5d\u5bab\u683c\u8fb9\u754c\u4e86\u3002\n\t\t*bkgametop = gamelimitbottom;\n\tif (*bkgameleft &lt; *bkmeshgameleft)\t\t\t\t\t\t\t\t\t\/\/ \u66f4\u65b0\u6e38\u620f\u91c7\u6837\u533a\u5750\u6807\uff0c\u4e00\u4e9b\u7b80\u5355\u6362\u7b97\uff0c\u7531\u4e8e\u9891\u7e41\u8c03\u7528\u51fd\u6570\u5728\u8fd9\u91cc\u4ea7\u751f\u4e86\u660e\u663e\u7684\u5361\u987f\u5f71\u54cd\uff0c\u6240\u4ee5\u8fd9\u91cc\u5c31\u4e0d\u518d\u5c01\u88c5\u6210\u51fd\u6570\n\t{\n\t\t*bkmeshgameleft -= bkmeshcopywidth;\t\t\t\t\t\t\t\t\/\/ \u8ffd\u968f\u73a9\u5bb6\uff0c\u4e5d\u5bab\u683c\u5de6\u79fb\u4e00\u683c\u5bab\u683c\uff0c\u5219\u754c\u9650\u4e5f\u5de6\u79fb\u4e00\u683c\u5bab\u683c\u7684\u50cf\u7d20\u5bbd\u5ea6\n\t\t*meshlimitright -= bkmeshcopywidth;\t\t\t\t\t\t\t\/\/ \u7f13\u5b58\u533a\u7f51\u683c\u5de6\u4e0a\u89d2\u7684\u50cf\u7d20\u5750\u6807\u5728\u53f3\u754c\u9650,\u79fb\u52a8\u76f8\u540c\u8ddd\u79bb\uff0c\u8fd9\u91cc\u6539\u5b8c\uff0c\u53d1\u73b0\u9700\u8981\u5728\u521d\u59cb\u5316\u65f6\u89c4\u5b9a\u597d\u8fb9\u754c\u8ddd\u79bb\u6574\u597d\u662f\u56db\u5bab\u683c\u7684\u5bbd\u9ad8\n\t}\n\telse if (*bkgameleft &gt; *meshlimitright)\n\t{\n\t\t*meshlimitright += bkmeshcopywidth;\n\t\t*bkmeshgameleft += bkmeshcopywidth ;\t\t\t\t\t\t\t\/\/ \u7f13\u5b58\u533a\u7f51\u683c\u5de6\u4e0a\u89d2\u7684\u50cf\u7d20\u5750\u6807\u5728\u53f3\u754c\u9650,\u79fb\u52a8\u76f8\u540c\u8ddd\u79bb\uff0c\u8fd9\u91cc\u6539\u5b8c\uff0c\u53d1\u73b0\u9700\u8981\u5728\u521d\u59cb\u5316\u65f6\u89c4\u5b9a\u597d\u8fb9\u754c\u8ddd\u79bb\u6574\u597d\u662f\u56db\u5bab\u683c\u7684\u5bbd\u9ad8\n\t}\n\tif (*bkgametop &lt; *bkmeshgametop)\n\t{\n\t\t*bkmeshgametop -= bkmeshcopyheight;\n\t\t*meshlimitbuttom -= bkmeshcopyheight;\t\t\t\t\t\t\t\/\/ \u7f13\u5b58\u533a\u7f51\u683c\u5de6\u4e0a\u89d2\u7684\u50cf\u7d20\u5750\u6807\u5728\u53f3\u754c\u9650,\u79fb\u52a8\u76f8\u540c\u8ddd\u79bb\uff0c\u8fd9\u91cc\u6539\u5b8c\uff0c\u53d1\u73b0\u9700\u8981\u5728\u521d\u59cb\u5316\u65f6\u89c4\u5b9a\u597d\u8fb9\u754c\u8ddd\u79bb\u6574\u597d\u662f\u56db\u5bab\u683c\u7684\u5bbd\u9ad8\n\t}\n\telse if (*bkgametop &gt; *meshlimitbuttom)\n\t{\n\t\t*meshlimitbuttom += bkmeshcopyheight;\n\t\t*bkmeshgametop += bkmeshcopyheight;\t\t\t\t\t\t\t\t\/\/ \u7f13\u5b58\u533a\u7f51\u683c\u5de6\u4e0a\u89d2\u7684\u50cf\u7d20\u5750\u6807\u5728\u53f3\u754c\u9650,\u79fb\u52a8\u76f8\u540c\u8ddd\u79bb\uff0c\u8fd9\u91cc\u6539\u5b8c\uff0c\u53d1\u73b0\u9700\u8981\u5728\u521d\u59cb\u5316\u65f6\u89c4\u5b9a\u597d\u8fb9\u754c\u8ddd\u79bb\u6574\u597d\u662f\u56db\u5bab\u683c\u7684\u5bbd\u9ad8\n\t}\n}\n\/\/ \u6027\u80fd\uff1aCPU 2% \u5360\u6709\u7387\uff0c\u5cf0\u503c 1.20GHz\uff0c\u6838\u663e GPU 10% \u4f7f\u7528\u7387\ninline void animation(int characterflag, int bkgameleft, int bkgametop, int bkmeshgameleft, int bkmeshgametop, int bkmeshdeskleft, int bkmeshdesktop)\n{\n\tstatic int i = 1;\n\tstatic int x = 10;\n\tstatic int y = 10;\n\tif (i % 3 == 0)\n\t{\n\t\tx = bkmeshdeskleft + bkgameleft - bkmeshgameleft;\n\t\ty = bkmeshdesktop + bkgametop - bkmeshgametop;\n\t\ti %= 125;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ i \u7684\u4e0a\u9650 * \u653e\u5927\u500d\u6570 \u4e0d\u8d85\u8fc7 255\n\t\tswitch (characterflag)\t\t\t\t\t\t\t\t\t\t\t\/\/ \u9009\u53d6\u989c\u8272\n\t\t{\n\t\t\tcase 1:\n\t\t\t\tsetfillcolor(RGB(i * 2, i * 2, 0));\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tsetfillcolor(RGB(i * 2, 0, i * 2));\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tsetfillcolor(RGB(i * 2, 0, 0));\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tsetfillcolor(RGB(0, i * 2, 0));\n\t\t\t\tbreak;\n\t\t\tcase 5:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5982\u679c\u6ca1\u6709\u6309\u952e\uff0c\u5219\u4f7f\u7528\u9ed8\u8ba4\u989c\u8272\n\t\t\t\tsetfillcolor(RGB(0, 0, i * 2));\n\t\t\t\tbreak;\n\t\t}\n\t\tfillrectangle(x, y, x + 30, y + 30);\n\t}\n\ti++;\n}\n\ninline void animationv2(int characterflag, int bkgameleft, int bkgametop, int bkmeshgameleft, int bkmeshgametop, int bkmeshdeskleft, int bkmeshdesktop)\n{\n\tstatic int i = 1;\n\tstatic int x = 10;\n\tstatic int y = 10;\n\tif (i % 3 == 0)\n\t{\n\t\tx = bkmeshdeskleft + bkgameleft - bkmeshgameleft;\n\t\ty = bkmeshdesktop + bkgametop - bkmeshgametop;\n\t\ti %= 125;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ i \u7684\u4e0a\u9650 * \u653e\u5927\u500d\u6570 \u4e0d\u8d85\u8fc7 255\n\t\tswitch (characterflag)\t\t\t\t\t\t\t\t\t\t\t\/\/ \u9009\u53d6\u989c\u8272\n\t\t{\n\t\t\tcase 1:\n\t\t\t\tsetfillcolor(RGB(i * 2, i * 2, 0));\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tsetfillcolor(RGB(i * 2, 0, i * 2));\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tsetfillcolor(RGB(i * 2, 0, 0));\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tsetfillcolor(RGB(0, i * 2, 0));\n\t\t\t\tbreak;\n\t\t\tcase 5:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5982\u679c\u6ca1\u6709\u6309\u952e\uff0c\u5219\u4f7f\u7528\u9ed8\u8ba4\u989c\u8272\n\t\t\t\tsetfillcolor(RGB(0, 0, i * 2));\n\t\t\t\tbreak;\n\t\t}\n\t\tfillrectangle(x, y, x + 30, y + 30);\n\t}\n\ti++;\n}\n\/\/ \u4ece\u9ed8\u8ba4\u6587\u4ef6\u5939\u4e2d\u8bfb\u53d6\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfile(IMAGE*** pentablev2,int pixnum)\n{\n\tchar brick[100] = \"aa_birck_6_family\";\n\tchar ground[100] = \"ab_ground_7_family\";\n\tchar change[100] = \"ac_change_8_family\";\n\tchar trick[100] = \"ad_trick_9_family\";\n\tchar next[100] = \".\/\";\n\tchar png[100] = \"*.png\";\n\tloadfile_scanf(brick, next, png, pentablev2[0],pixnum);\t\t\t\t\t\t\t\t\/\/ \u52a0\u8f7d\u7528\u4e8e\u5f53\u7816\u5934\u7c7b\u578b\u7684\u56fe\u7247\n\tloadfile_scanf(ground, next, png, pentablev2[1],pixnum);\n\tloadfile_scanf(change, next, png, pentablev2[2],pixnum);\n\tloadfile_scanf(trick, next, png, pentablev2[3],pixnum);\n}\n\/\/ \u52a0\u8f7d\u81ea\u5b9a\u4e49\u56fe\u7247\nvoid loadfile_scanf(char* dirname, char* next, char* kind, IMAGE** pentablev2,int pixnum)\n{\n\t\/\/ \u6587\u4ef6\u5b58\u50a8\u4fe1\u606f\u7ed3\u6784\u4f53\n\tstruct _finddata_t fileinfo;\n\t\/\/ \u4fdd\u5b58\u6587\u4ef6\u53e5\u67c4\n\tlong fHandle;\n\t\/\/ \u6587\u4ef6\u6570\u8bb0\u5f55\u5668\n\tchar dirpath[100];\n\tstrcpy(dirpath, dirname);\n\tif (access(dirpath, 0) == -1)\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u67e5\u6587\u4ef6\u5939\u662f\u5426\u5b58\u5728\uff0c\u4e0d\u5b58\u5728\u4e3a -1\n\t{\n\t\tmkdir(dirpath);\n\t\treturn;\n\t}\n\telse\n\t{\n\t\tint i = -1;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u8bb0\u5f55\u6587\u4ef6\u6570\u91cf\n\t\tchar kindpath[100];\n\t\tstrcpy(kindpath, dirpath);\n\t\tstrcat(kindpath, next);\n\t\tstrcat(kindpath, kind);\n\t\tif ((fHandle = _findfirst(kindpath, &amp;fileinfo)) == -1L) \t\t\t\t\t\/\/ *\u662f\u901a\u914d\u7b26\uff0c\u9ed8\u8ba4\u5728\u5f53\u524d\u6587\u4ef6\u5939\u5185\u67e5\u627e\u6587\u4ef6\uff0c\u8fd9\u91cc\u67e5\u627e .png \u6587\u4ef6\n\t\t{\n\t\t\tprintf(\"\u5f53\u524d\u76ee\u5f55: %s \u4e0b\u6ca1\u6709\u6240\u9700\u6587\u4ef6\\n\", dirname);\n\t\t\treturn;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tchar path[100];\n\t\t\tdo\n\t\t\t{\n\t\t\t\ti++;\n\t\t\t\tprintf(\"\u5728%s \u4e0b\u627e\u5230\u6587\u4ef6:%s\uff0c\u6587\u4ef6\u5927\u5c0f\uff1a%ld bit\\n\", dirname, fileinfo.name, fileinfo.size);\n\t\t\t\tstrcpy(path, dirname);\n\t\t\t\tstrcat(path, next);\n\t\t\t\tstrcat(path, fileinfo.name);\n\t\t\t\twhile (pentablev2[i] != NULL)\n\t\t\t\t{\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\t\/\/ \u5bfc\u5165\u65b0\u56fe\u7247\u8fd9\u91cc\u9700\u8981\u6539\u52a8\uff0c\u81ea\u9002\u5e94\u56fe\u7247\uff0c\u7528\u4e8e\u5404\u79cd\u5927\u5c0f\u56fe\u7247\u52a0\u5165\uff0c\u914d\u5408\u526a\u5207\n\t\t\t\tpentablev2[i] = new IMAGE(pixnum, pixnum);\n\t\t\t\tloadimage(pentablev2[i], path, pixnum, pixnum);\t\t\t\t\t\t\t\t\/\/ \u6839\u636e\u540d\u79f0\u8bfb\u53d6\u6587\u4ef6\n\t\t\t}\n\t\t\twhile (_findnext(fHandle, &amp;fileinfo) == 0);\n\t\t}\n\t\t\/\/ \u5173\u95ed\u6587\u4ef6\n\t\t_findclose(fHandle);\n\n\t\tprintf(\"\u6587\u4ef6\u6570\u91cf\uff1a%d\\n\", i + 1);\n\t}\n}\n\/\/ \u5728\u76ee\u6807 DLC \u91cc\u521b\u5efa\u56db\u4e2a\u6587\u4ef6\u5939\u5e76\u4fdd\u5b58\nvoid savepersonalfile(char* DLC, IMAGE*** pentablev2)\n{\n\tchar brick[100] = \"aa_birck_6_family\";\n\tchar ground[100] = \"ab_ground_7_family\";\n\tchar change[100] = \"ac_change_8_family\";\n\tchar trick[100] = \"ad_trick_9_family\";\n\tchar next[100] = \".\/\";\n\tchar png[100] = \".png\";\n\tif (access(DLC, 0) == -1)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u67e5\u6587\u4ef6\u5939\u662f\u5426\u5b58\u5728\uff0c\u4e0d\u5b58\u5728\u4e3a -1\n\t{\n\t\tmkdir(DLC);\n\t}\n\tchar sign[10] = {};\n\tstrcpy(sign, \"6\");\n\tsavelocal(DLC, brick, next, png, sign, pentablev2[0]);\n\tstrcpy(sign, \"7\");\n\tsavelocal(DLC, ground, next, png, sign, pentablev2[1]);\n\tstrcpy(sign, \"8\");\n\tsavelocal(DLC, change, next, png, sign, pentablev2[2]);\n\tstrcpy(sign, \"9\");\n\tsavelocal(DLC, trick, next, png, sign, pentablev2[3]);\n}\n\/\/ \u4fdd\u5b58\u81ea\u5b9a\u4e49\u6587\u4ef6\nvoid savelocal(char* DLC, char* dirname, char* next, char* kind, char* sign, IMAGE** files)\n{\n\tchar dirpath[100] = \"\";\n\tstrcpy(dirpath, DLC);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5b57\u7b26\u4e32\u62fc\u63a5\u51fa\u76f8\u5bf9\u8def\u5f84\n\tstrcat(dirpath, next);\n\tstrcat(dirpath, dirname);\n\tif (access(dirpath, 0) == -1)\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u68c0\u67e5 DLC \u5185\u7684\u6307\u5b9a\u6587\u4ef6\u5939\u662f\u5426\u5b58\u5728\uff0c\u4e0d\u5b58\u5728\u4e3a -1\n\t{\n\t\tmkdir(dirpath);\n\t}\n\tchar filepath[100];\n\tchar filepa[100];\n\tchar num[10];\n\tstrcpy(filepath, dirpath);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u5b57\u7b26\u4e32\u62fc\u63a5\u51fa\u6587\u4ef6\u540d\u524d\u7f00\n\tstrcat(filepath, next);\n\tstrcat(filepath, sign);\n\tfor (int i = 0; i &lt; 10; i++)\n\t{\n\t\tsprintf(num, \"%d\", i);\n\t\tstrcpy(filepa, filepath);\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ \u4ece\u5934\u7c98\u8d34\uff0c\u53ef\u4ee5\u8986\u76d6\u4e4b\u524d\u7684\u4fe1\u606f\uff0c\u4e0d\u53d7\u4e0a\u4e00\u6b21\u4fdd\u5b58\u7684\u5f71\u54cd\n\t\tstrcat(filepa, num);\n\t\tstrcat(filepa, kind);\n\t\tif (files[i] != NULL)\n\t\t{\n\t\t\tsaveimage(filepa, files[i]);\n\t\t\tprintf(\"file save %s\\n\", filepa);\n\t\t}\n\t}\n}<\/code><\/pre>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5c04\u51fb\u4ee3\u7801\u6765\u6e90\u81ea 2D \u6a2a\u5411\u5bf9\u6297\u5c04\u51fb\u6e38\u620f\uff08by STF\uff09 &#8211; CodeBus \u5730\u56fe\u8bfb\u53d6\u6539\u88c5\u81ea \u74e6\u7247\u5730 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-3080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-23"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"og:description\" content=\"\u5c04\u51fb\u4ee3\u7801\u6765\u6e90\u81ea 2D \u6a2a\u5411\u5bf9\u6297\u5c04\u51fb\u6e38\u620f\uff08by STF\uff09 &#8211; CodeBus \u5730\u56fe\u8bfb\u53d6\u6539\u88c5\u81ea \u74e6\u7247\u5730 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c\/\" \/>\n<meta property=\"og:site_name\" content=\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-01T04:00:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"260\" \/>\n\t<meta property=\"og:image:height\" content=\"180\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin@wunen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin@wunen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/\"},\"author\":{\"name\":\"admin@wunen\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\"},\"headline\":\"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c\",\"datePublished\":\"2025-06-01T04:00:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/\"},\"wordCount\":6,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"articleSection\":[\"\u5c04\u51fb\u6e38\u620f\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/\",\"url\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/\",\"name\":\"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"isPartOf\":{\"@id\":\"https:\/\/www.wunen.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"datePublished\":\"2025-06-01T04:00:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"width\":260,\"height\":180},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wunen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wunen.com\/#website\",\"url\":\"https:\/\/www.wunen.com\/\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"description\":\"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9\",\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wunen.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.wunen.com\/#organization\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"url\":\"https:\/\/www.wunen.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"width\":1024,\"height\":1024,\"caption\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\"},\"image\":{\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\",\"name\":\"admin@wunen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"caption\":\"admin@wunen\"},\"sameAs\":[\"http:\/\/www.wunen.com\"],\"url\":\"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","og_description":"\u5c04\u51fb\u4ee3\u7801\u6765\u6e90\u81ea 2D \u6a2a\u5411\u5bf9\u6297\u5c04\u51fb\u6e38\u620f\uff08by STF\uff09 &#8211; CodeBus \u5730\u56fe\u8bfb\u53d6\u6539\u88c5\u81ea \u74e6\u7247\u5730 [&hellip;]","og_url":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c\/","og_site_name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","article_published_time":"2025-06-01T04:00:12+00:00","og_image":[{"width":260,"height":180,"url":"https:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","type":"image\/jpeg"}],"author":"admin@wunen","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin@wunen","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"25 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#article","isPartOf":{"@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/"},"author":{"name":"admin@wunen","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8"},"headline":"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c","datePublished":"2025-06-01T04:00:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/"},"wordCount":6,"commentCount":0,"publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"image":{"@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","articleSection":["\u5c04\u51fb\u6e38\u620f"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/","url":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/","name":"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","isPartOf":{"@id":"https:\/\/www.wunen.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage"},"image":{"@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","datePublished":"2025-06-01T04:00:12+00:00","breadcrumb":{"@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#primaryimage","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","width":260,"height":180},{"@type":"BreadcrumbList","@id":"https:\/\/www.wunen.com\/index.php\/2025\/06\/01\/%e5%ae%9e%e7%8e%b0%e6%b8%b8%e6%88%8f%e5%9c%b0%e5%9b%be%e8%af%bb%e5%8f%96%e4%b8%8e%e5%b0%84%e5%87%bb%e8%bf%90%e8%a1%8c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wunen.com\/"},{"@type":"ListItem","position":2,"name":"\u5b9e\u73b0\u6e38\u620f\u5730\u56fe\u8bfb\u53d6\u4e0e\u5c04\u51fb\u8fd0\u884c"}]},{"@type":"WebSite","@id":"https:\/\/www.wunen.com\/#website","url":"https:\/\/www.wunen.com\/","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","description":"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9","publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wunen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.wunen.com\/#organization","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","url":"https:\/\/www.wunen.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","width":1024,"height":1024,"caption":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51"},"image":{"@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8","name":"admin@wunen","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","caption":"admin@wunen"},"sameAs":["http:\/\/www.wunen.com"],"url":"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/"}]}},"_links":{"self":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/3080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/comments?post=3080"}],"version-history":[{"count":0,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/3080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media?parent=3080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/categories?post=3080"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/tags?post=3080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}