处理图像
我的想法是有一个主界面然后在各个界面有不同的地图和游戏内容
现在大概实现了地图出来还有,鼠鼠在这个地图的移动,但是不是很精美(;´༎ຶД༎ຶ`)
然后还要把一些点的具体位置找出来,那个i 和 j在输出的刚好不同,我打算用两个数来交换他们,这样子我的二维数组就可以不动它,方便一些,要是二维数组动了,那我到时候还要搞一下数组,那就太麻烦了
现在写的就是这么一点点,明天把第一个地图搞出来!!!加油
#include <stdio.h>
#include <easyx.h>
#include <graphics.h>
#include <math.h>
#include <conio.h>
int x=0, y=0;//控制鼠鼠的坐标,把x y看成数组下标!然后通过数组下标来画鼠鼠
int xx, yy;
int map[10][10] =
{ {1,1,1,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,1,1},
{1,0,1,1,1,0,1,0,1,1},
{1,2,1,0,0,0,1,0,1,1},
{1,0,1,0,1,1,1,0,1,1},
{1,0,1,0,1,1,1,0,1,1},
{1,0,0,0,1,1,1,0,1,1},
{1,1,1,1,1,1,1,0,0,0},
{1,1,1,1,1,1,1,1,1,1}
};
void draw()
{
//画图要在这个双缓冲里面
BeginBatchDraw();
//加载背景图片
IMAGE img;
loadimage(&img, "./shu.jpg", 500, 500);
putimage(0, 0, &img);
setfillcolor(BLACK);
if (x>=0&&x<11&&y>=0&&y<11&&map[x][y])//如果这个点在地图上为ok那么我们就画
{
fillcircle(50+(x*30), 50 + (y * 30), 20);//把它看作鼠鼠
xx = x;
yy = y;
}
else
{
fillcircle(50 + (xx * 30), 50 + (yy * 30), 20);
x = xx;
y = yy;
}
setfillcolor(RED);
for (int i = 0; i < 11; i ++)
{
for (int j = 0; j < 11; j ++)
{
if (!map[i][j])
{
fillrectangle(50+(30*j), 50 + (30 * i), 50 + (30 * j)+30, 50 + (30 * i)+30);
}
//printf("%d %d %d\n ",i,j,map[i][j]);
//illrectangle(i , j , i + 20, j + 20);
}
}//画迷宫如果二维数组这个地方为0,就是通路,为1就是不通
FlushBatchDraw();
}
void yidong()//通过全局变量x y来确定鼠鼠的移动
{
char key = _getch();
switch (key)
{
case 72:
y -= 1;
//yy += 1;
printf("上键\n");
break;
case 80:
y += 1;
//yy -= 1;
printf("下键\n");
break;
case 75:
x -= 1;
//xx += 1;
printf("左键\n");
break;
case 77:
x += 1;
//xx -= 1;
printf("右键\n");
break;
}
}
int main()
{
initgraph(500, 500,SHOWCONSOLE);
double x = 50, y = 50;
while (true)
{
//画图
draw();
//控制鼠鼠移动
yidong();
}
getchar();
}
下班下班