项目第一天

处理图像

我的想法是有一个主界面然后在各个界面有不同的地图和游戏内容

现在大概实现了地图出来还有,鼠鼠在这个地图的移动,但是不是很精美(;´༎ຶД༎ຶ`) 

然后还要把一些点的具体位置找出来,那个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();
}

下班下班

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值