陆续改了半个月,不断更改游戏目的,结合了老鼠走迷宫和贪吃蛇游戏,终于在昨天凌晨2点写好了我的炸弹超人游戏。基于Windows图形界面,用C语言编写。虽然并不复杂,但收获颇多。

文件1:winapp.cpp,指导老师所给框架及自己写的主函数:

#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
#include "winapp.h"
#include "myfile.h"
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("Windows 应用程序设计--The Maze") ;
MSG msg ;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, // window class name
TEXT ("Windows 应用程序设计--The Maze"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
1600, //CW_USEDEFAULT, // initial x size
900, //CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

drawRectangle(38*WIDTH,3*WIDTH,39*WIDTH,8*WIDTH,WEAKWALL); //上下
drawRectangle(36*WIDTH,5*WIDTH,41*WIDTH,6*WIDTH,WEAKWALL); //左右
drawRectangle(38*WIDTH,5*WIDTH,39*WIDTH,6*WIDTH,BOOM);

printText(800,400,"炸弹人!!!");
printText(800,450,"come on baby!!!");
printText(1100,355,"  へ    /|");
printText(1100,375,"  / \    ∠_/");
printText(1100,395,"  / │   / /");
printText(1100,415," │  _,< /   /`ヽ");
printText(1100,435," │     ヽ   /  〉");
printText(1100,455," \\     `  /  /");
printText(1100,475," |●   ●   |〈  /");
printText(1100,495," ()  へ    | \〈");
printText(1100,505,"  > _  ィ  │ //");
printText(1100,525,"  / へ   /  <| \\");
printText(1100,545,"  ヽ_|  (_/  │//");
printText(1100,565,"  |       |/");
printText(1100,585,"  >―- ̄ ̄//―_");
if(yes==1)
{
printText(800,300,"~O(∩_∩)O~");
printText(800,350,"你赢了 !!!");
return 0;
}
//char s[100];
switch (message)
{
case WM_KEYDOWN: //键盘消息
{
//键盘消息处理内容
switch ((int)wParam)
{
case VK_UP: //向上 ↑
up();
break;
case VK_DOWN: // 向下 ↓
down();
break;
case VK_LEFT: //向左 ←
left();
break;
case VK_RIGHT: // 向右 →
right();
break;
case VK_RETURN: //回车
initgame();
break;
case VK_SPACE: //空格放炸弹
backspace();
break;
case VK_ESCAPE: //esc
boomboom();
break;
}
}
break;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}

文件2:myfile.h,自己编写的程序:

#include<time.h>
#include<stdlib.h>
#define ROAD RGB(200,200,200)//浅灰
#define WEAKWALL RGB(255,174,200)//假墙
#define MOUSE RGB(255,100,168)//pink
#define BOOM RGB(0,0,0)//炸弹
#define WALL RGB(50,50,50)//深灰
#define FIRE RGB(225,0,0)//red
#define yeah RGB(255,225,128)//yellow
#define FOOD RGB(50,50,225)//BLUE

#define UP 40
#define DOWN 41
#define LEFT 42
#define RIGHT 43
#define X0 0
#define Y0 0
#define WIDTH 30

int xnum=21;
int ynum=21;
int boomx1,boomy1,boomx2,boomy2;
int a[30][30]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1},
{1,0,1,0,1,2,1,0,1,0,1,0,1,2,1,0,1,0,1,0,1},
{1,0,0,0,0,0,0,0,0,2,0,2,0,2,0,0,0,0,2,0,1},
{1,0,1,0,1,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1},
{1,0,0,0,0,2,0,2,2,0,0,2,0,0,2,2,0,2,0,0,1},
{1,0,1,2,1,0,1,0,1,2,1,2,1,2,1,0,1,2,1,2,1},
{1,0,2,0,0,0,0,2,0,0,2,2,0,2,0,0,2,0,0,2,1},
{1,0,1,2,1,2,1,2,1,0,1,0,1,0,1,0,1,0,1,2,1},
{1,0,2,0,2,2,0,2,0,0,2,2,0,2,0,0,0,0,0,0,1},
{1,2,1,0,1,2,1,2,1,0,1,2,1,0,1,0,1,0,1,0,1},
{1,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,2,1,2,1,0,1,0,1,0,1,2,1,0,1,0,1,0,1,2,1},
{1,0,0,2,0,0,0,0,0,2,0,2,0,0,0,0,2,0,0,0,1},
{1,0,1,0,1,0,1,0,1,0,1,0,1,2,1,2,1,2,1,0,1},
{1,2,0,0,0,0,2,2,0,0,2,0,2,0,0,0,2,0,0,0,1},
{1,0,1,0,1,0,1,2,1,0,1,0,1,0,1,0,1,2,1,0,1},
{1,0,0,0,2,0,0,0,2,2,2,2,0,0,2,2,2,0,2,0,1},
{1,0,1,0,1,0,1,2,1,2,1,0,1,0,1,0,1,0,1,0,1},
{1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
};
int mousex,mousey;
int foodx,foody;
int q,w,e,r;
int flag=0;
int yes=0;
int sum=0;
void initgame()
{
for(int x=0;x<xnum;x++)
for(int y=0;y<ynum;y++)
{
if (a[x][y]==1)
drawRectangle(x*WIDTH,y*WIDTH,(x+1)*WIDTH,(y+1)*WIDTH,WALL);
else if(a[x][y]==0)
drawRectangle(x*WIDTH,y*WIDTH,(x+1)*WIDTH,(y+1)*WIDTH,ROAD);
else
drawRectangle(x*WIDTH,y*WIDTH,(x+1)*WIDTH,(y+1)*WIDTH,WEAKWALL);

}
mousex=1,mousey=1;
drawRectangle(X0+mousex*WIDTH,Y0+mousey*WIDTH,X0+(mousex+1)*WIDTH,Y0+(mousey+1)*WIDTH,MOUSE);

drawRectangle(19*WIDTH,19*WIDTH,20*WIDTH,20*WIDTH,yeah);
}
void right()
{
if(a[mousex+1][mousey]==0)
{
if(flag==1)
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,BOOM);
else
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,ROAD);
mousex++;
drawRectangle(X0+mousex*WIDTH,Y0+mousey*WIDTH,X0+(mousex+1)*WIDTH,Y0+(mousey+1)*WIDTH,MOUSE);
}
flag=0;
if(mousex==19&&mousey==19)
yes=1;
}
void left()
{
if(a[mousex-1][mousey]==0)
{
if(flag==1)
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,BOOM);
else
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,ROAD);
mousex--;
drawRectangle(X0+mousex*WIDTH,Y0+mousey*WIDTH,X0+(mousex+1)*WIDTH,Y0+(mousey+1)*WIDTH,MOUSE);
}
flag=0;
if(mousex==19&&mousey==19)
yes=1;
}
void up()
{
if(a[mousex][mousey-1]==0)
{
if(flag==1)
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,BOOM);
else
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,ROAD);
mousey--;
drawRectangle(X0+mousex*WIDTH,Y0+mousey*WIDTH,X0+(mousex+1)*WIDTH,Y0+(mousey+1)*WIDTH,MOUSE);
}
flag=0;
if(mousex==19&&mousey==19)
yes=1;
}
void down()
{
if(a[mousex][mousey+1]==0)
{
if(flag==1)
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,BOOM);
else
drawRectangle(mousex*WIDTH,mousey*WIDTH,(mousex+1)*WIDTH,(mousey+1)*WIDTH,ROAD);
mousey++;
drawRectangle(X0+mousex*WIDTH,Y0+mousey*WIDTH,X0+(mousex+1)*WIDTH,Y0+(mousey+1)*WIDTH,MOUSE);
}
flag=0;
if(mousex==19&&mousey==19)
yes=1;
}
void backspace()
{
boomx1=mousex*WIDTH;
boomy1=mousey*WIDTH;
boomx2=(mousex+1)*WIDTH;
boomy2=(mousey+1)*WIDTH;
q=mousex;w=mousey;e=mousex+1;r=mousey+1;
drawRectangle(boomx1,boomy1,boomx2,boomy2,BOOM);
flag=1;

}
void boomboom()
{
int i,j;
drawRectangle(boomx1,boomy1,boomx2,boomy2,ROAD);
drawRectangle(boomx1,boomy1-2*WIDTH,boomx2,boomy1,ROAD); //上

//if(boomy1+WIDTH<=19)
drawRectangle(boomx1,boomy1+WIDTH,boomx2,boomy2+WIDTH,ROAD);//下
if(boomy1+2*WIDTH<=20)
drawRectangle(boomx1,boomy1+2*WIDTH,boomx2,boomy2+2*WIDTH,ROAD);//下

drawRectangle(boomx1-2*WIDTH,boomy1,boomx1,boomy2,ROAD);//左

//if(boomx1+WIDTH<=19) //右
drawRectangle(boomx1+WIDTH,boomy1,boomx2+WIDTH,boomy2,ROAD);
if(boomx1+2*WIDTH<=20) //右
drawRectangle(boomx1+2*WIDTH,boomy1,boomx2+2*WIDTH,boomy2,ROAD);

//a[(boomx1)/WIDTH][boomy1/WIDTH]=a[boomx1/WIDTH][(boomy1-2*WIDTH)/WIDTH]=a[boomx1/WIDTH][(boomy1-WIDTH)/WIDTH]=a[boomx1/WIDTH][(boomy1+WIDTH)/WIDTH]=a[boomx1/WIDTH][(boomy1+2*WIDTH)/WIDTH]=a[(boomx1-WIDTH)/WIDTH][boomy1/WIDTH]=a[(boomx1-2*WIDTH)/WIDTH][boomy1/WIDTH]=a[(boomx1+WIDTH)/WIDTH][boomy1/WIDTH]=a[(boomx1+2*WIDTH)/WIDTH][boomy1/WIDTH]=0;
//for(i=mousex-2;i<=mousex+3;i++)
//for(j=mousey-2;j<=mousey+3;j++)
/*if((mousex >= 2) && a[mousex-2][mousey]!=1)
a[mousex-2][mousey]=0;
else
drawRectangle((mousex-2)*WIDTH,(mousey)*WIDTH,(mousex-2+1)*WIDTH,(mousey+1)*WIDTH,WALL);

if((mousex >= 1) && a[mousex-1][mousey]!=1)
a[mousex-1][mousey]=0;
else
drawRectangle((mousex-1)*WIDTH,(mousey)*WIDTH,(mousex-1+1)*WIDTH,(mousey+1)*WIDTH,WALL);

if((mousex+1<=20) && a[mousex+1][mousey]!=1)
a[mousex+1][mousey]=0;
else
drawRectangle((mousex+1)*WIDTH,(mousey)*WIDTH,(mousex+1+1)*WIDTH,(mousey+1)*WIDTH,WALL);

if((mousex+2<=20) &&a[mousex+2][mousey]!=1)
a[mousex+2][mousey]=0;
else
drawRectangle((mousex+2)*WIDTH,(mousey)*WIDTH,(mousex+2+1)*WIDTH,(mousey+1)*WIDTH,WALL);

if((mousey >= 2) && a[mousex][mousey-2]!=1)
a[mousex][mousey-2]=0;
else
drawRectangle((mousex)*WIDTH,(mousey-2)*WIDTH,(mousex+1)*WIDTH,(mousey-2+1)*WIDTH,WALL);

if((mousey >= 1) && a[mousex][mousey-1]!=1)
a[mousex][mousey-1]=0;
else
drawRectangle((mousex)*WIDTH,(mousey-1)*WIDTH,(mousex+1)*WIDTH,(mousey-1+1)*WIDTH,WALL);

if((mousey+1<=20) &&a[mousex][mousey+1]!=1)
a[mousex][mousey+1]=0;
else
drawRectangle((mousex)*WIDTH,(mousey+1)*WIDTH,(mousex+1)*WIDTH,(mousey+1+1)*WIDTH,WALL);

if((mousey+2<=20) &&a[mousex][mousey+2]!=1)
a[mousex][mousey+2]=0;
else
drawRectangle((mousex)*WIDTH,(mousey+2)*WIDTH,(mousex+1)*WIDTH,(mousey+2+1)*WIDTH,WALL);*/
if((q >= 2) && a[q-2][w]!=1)
a[q-2][w]=0;
else
drawRectangle((q-2)*WIDTH,(w)*WIDTH,(q-2+1)*WIDTH,(w+1)*WIDTH,WALL);

if((q >= 1) && a[q-1][w]!=1)
a[q-1][w]=0;
else
drawRectangle((q-1)*WIDTH,(w)*WIDTH,(q-1+1)*WIDTH,(w+1)*WIDTH,WALL);

if(a[q+1][w]!=1)
a[q+1][w]=0;
else
drawRectangle((q+1)*WIDTH,(w)*WIDTH,(q+1+1)*WIDTH,(w+1)*WIDTH,WALL);

if(a[q+2][w]!=1)
a[q+2][w]=0;
else
drawRectangle((q+2)*WIDTH,(w)*WIDTH,(q+2+1)*WIDTH,(w+1)*WIDTH,WALL);

if((w >= 2) && a[q][w-2]!=1)
a[q][w-2]=0;
else
drawRectangle((q)*WIDTH,(w-2)*WIDTH,(q+1)*WIDTH,(w-2+1)*WIDTH,WALL);

if((w >= 1) && a[q][w-1]!=1)
a[q][w-1]=0;
else
drawRectangle((q)*WIDTH,(w-1)*WIDTH,(q+1)*WIDTH,(w-1+1)*WIDTH,WALL);

if(a[q][w+1]!=1)
a[q][w+1]=0;
else
drawRectangle((q)*WIDTH,(w+1)*WIDTH,(q+1)*WIDTH,(w+1+1)*WIDTH,WALL);

if(a[q][w+2]!=1)
a[q][w+2]=0;
else
drawRectangle((q)*WIDTH,(w+2)*WIDTH,(q+1)*WIDTH,(w+2+1)*WIDTH,WALL);

//外墙,死墙,自己,食物
for(int x=0;x<xnum;x++)
for(int y=0;y<ynum;y++)
{
if (a[x][y]==1&&x!=mousex&&y!=mousey)
drawRectangle(x*WIDTH,y*WIDTH,(x+1)*WIDTH,(y+1)*WIDTH,WALL);
else if(a[x][y]==0&&x!=mousex&&y!=mousey)
drawRectangle(x*WIDTH,y*WIDTH,(x+1)*WIDTH,(y+1)*WIDTH,ROAD);
}
drawRectangle(X0+19*WIDTH,Y0+19*WIDTH,X0+(19+1)*WIDTH,Y0+(19+1)*WIDTH,yeah);
flag = 0;
}

文件3:一些Windows图形界面下的函数,(老师给的框架):

#include <stdio.h>

HWND hwnd;
//设置定时器间隔
//speed为毫秒
void setSpeed(int movespeed)
{
SetTimer(hwnd,1, movespeed, NULL);
}
//暂停定时器
void stopTimer()
{
KillTimer(hwnd,1);
}
//指定位置输出字符串
void printText(int x,int y,char s[])
{
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,x,y,s,strlen(s));
ReleaseDC (hwnd, hdc) ;
}
//指定位置输出整型数
void printNumber(int x,int y, int z)
{
char str[100];
sprintf(str,"%d",z);
printText(x,y,str);
}
//指定位置输出实型数
void printNumber(int x,int y, double z)
{
char str[100];
sprintf(str,"%f",z);
printText(x,y,str);
}
//输出分数和等级
void printTitle(int score,int level)
{
char str[100];
sprintf(str,"当前分数 %5d",score);
printText(200,20,str);
sprintf(str,"  等级 %5d",level);
printText(200,50,str);
}
//画矩形,顶点为(x1,y1),(x2,y2),颜色为color
void drawRectangle(int x1,int y1,int x2,int y2,int color)
{
HDC hdc;
hdc=GetDC(hwnd);
HBRUSH hBrush ;
RECT rect ;
POINT a[4];
a[0].x=x1,a[0].y=y1;
a[1].x=x2,a[1].y=y1;
a[2].x=x2,a[2].y=y2;
a[3].x=x1,a[3].y=y2;
a[4].x=x1,a[4].y=y1;
SetRect (&rect,x1,y1,x2,y2);

hBrush = CreateSolidBrush (color) ;
FillRect (hdc, &rect, hBrush) ; //填充矩形
SelectObject (hdc, GetStockObject (BLACK_PEN)) ;
Polyline (hdc, a, 5) ; //画边框

ReleaseDC (hwnd, hdc) ;
DeleteObject (hBrush) ;
}
void DrawImage(int x0, int y0, int x1, int y1, char *szImageFile)
{
int wid, hei;
int i;

wid = x1 - x0 + 1;
hei = y1 - y0 + 1;
HDC hdc = ::GetDC(hwnd);

//for (i = 0; i < 5; i++)
{
HANDLE h = ::LoadImage(0, szImageFile, IMAGE_BITMAP, wid, hei, LR_SHARED | LR_LOADFROMFILE);
// SIZE size;
// ::GetBitmapDimensionEx((HBITMAP)h, &size); // 问题:原图size尚未成功读取
HDC hdcMem = ::CreateCompatibleDC(hdc);
::SelectObject(hdcMem, h);
::BitBlt(hdc, x0, y0, wid, hei, hdcMem, 0, 0, SRCCOPY);
wid /= 2;
hei /= 2;
x0 += wid * 2 + 10;
}
}

转载于:https://www.cnblogs.com/beloveddarling/p/5606169.html

C语言写炸弹人小游戏相关推荐

  1. flash编程可以用c语言,C语言写的小游戏和FLASH小游戏有何区别呢-c语言编程手机软件...

    C语言写的小游戏和FLASH小游戏有何区别呢-c语言编程手机软件 (2010-12-05 17:12:08) 标签: 杂谈 分类: 随笔 同题有大大的区分c语言写游戏可以直接挪用体系api举行编著,合 ...

  2. 用C语言写飞机小游戏

    这是自己实训写的代码,现在分享给大家,直接贴代码,主要用到光标定位,和多线程 运行效果 下面是全部代码 git 获取:https://gitee.com/xyh_mygitee/PlaneShoot_ ...

  3. 用c语言写垃圾分类小游戏,秒懂|一个小游戏轻松了解完整的垃圾分类体系

    垃圾分类热度不减,之前有不少人困惑,分类投放后的垃圾究竟是怎么处理的呢?今天呀,通过一个小游戏轻松了解下. 大家都玩过消除类游戏吧,相同颜色的方块放在一起就消除.其实,垃圾分类也可以看成一种消消乐. ...

  4. 用c语言写垃圾分类小游戏,沙坪坝:玩趣味游戏 学垃圾分类

    垃圾分类飞行棋游戏吸引市民参与. 人民网 胡虹摄 人民网重庆12月11日电(胡虹)"菜叶属于易腐垃圾,塑料瓶.纸张是可回收垃圾,电池.过期药品是有害垃圾--"11日,沙坪坝区三峡广 ...

  5. C语言写的小游戏源码,c语言小游戏源码(华容道)

    [实例简介] [实例截图]见截图 [核心代码] #include #include #include #include int c=0,a[8][8]= {0},n=0,x,y,b[8][8]= {0 ...

  6. C语言可以敲哪些小游戏,C语言可以写哪些小游戏?

    C语言可以写哪些小游戏? C语言可以编手机游戏.你叫他去死不过我这有贪吃蛇的代码,你倒可以看看(用TC编译一定过( #包括 #包括 #包括 #包括 #包括 #定义输入7181 #定义ESC 283 # ...

  7. 用python做一个简单的游戏,用python写一个小游戏

    大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...

  8. 炸弹人小游戏代码开源(python)

    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,当遵从一心,踏浪而往,纵千山 ...

  9. [实战]用flutter编写炸弹人小游戏同时支持web和移动端

    用flutter编写炸弹人小游戏同时支持web和移动端 flutter_BananaMon是我学习dart/flutter的时候开发的一个练手项目,他不依赖第三方游戏框架,是一个从零开始的项目,现在已 ...

最新文章

  1. 基于注解的 IOC 配置
  2. [Jobdu] 题目1504:把数组排成最小的数
  3. Windows下配置R-FCN
  4. LeetCode 933. 最近的请求次数(queue)
  5. mysql-查询二-分组与聚合
  6. mac下自带apache
  7. gba模拟器html5源码,酷!用 JS 做的 GBA 模拟器
  8. Unlock Music音乐解锁源码
  9. 如何编译CWM Recovery
  10. 鹏业安装算量材料表不能复制问题解答
  11. streaming计算机技术,HTTP Live Streaming伪直播的设计与实现
  12. 腾讯校招软件测试工程师题库
  13. 微信小程序_头像昵称填写
  14. 【关于Java方法的学习】
  15. 基于FPGA的贪吃蛇游戏设计(1)整体架构设计
  16. 三款极简好用的epub阅读器
  17. 百度地图定位+卫星定位
  18. 你总能看到的脑残问题
  19. (免费分享)基于JavaWeb的高校试题库管理系统设计与实现 毕业论文+项目源码及数据库文件(已发)
  20. 【Linux】基础IO-回顾C语言文件操作

热门文章

  1. 普通行车记录仪数据丢失如何恢复?
  2. 电子纸 墨水屏的驱动办法
  3. FFmpeg开发(八)——Qt视频播放器之多线程的使用(参考了暴风影音、迅雷影音)
  4. 网页M3U8视频Windows平台解析下载
  5. 计算机辅助公差技术最新成果,计算机辅助尺寸公差设计技术研究
  6. 面向动态图网络嵌入/表示学习的动态图/网络数据集整理
  7. cBioPortal 数据库
  8. 跟同事弃用webpack一次 体积减少了10倍
  9. 电脑自动使用代理服务器导致无法上网
  10. CSS三种颜色表达方式