C\C++开发的经典魔塔小游戏--(1)图形库的使用

最近突发奇想,想起了当年和小伙伴们一起奋斗在村里黑网吧的日子。于是乎,萌发了动手写一个小游戏的念头。这个经典的小游戏名字叫“魔塔”。大致就是你是一个骑士什么的,深入魔塔拯救大妹子的故事。

设计思路还是很简单的,具体就是一些C/C++图形库的引用,将收集好的图片素材显示在界面上各个位置,然后通过接受键盘输入控制角色移动,碰到道具之后修改角色本身各项的数值来模拟打斗场景。 加入游戏背景音乐,加入其它一些功能后,就有了完整版的魔塔小游戏。

我们来看一下整个的制作过程:

首先是图形库的使用方法:
一、改变文字的颜色:
int color(int num)  //num为每一种颜色所代表的数字,范围时0~15

{
       SetConsoleTextAttribute(GetStdhandle(STD_OUTPUT_HANDLE),num);

    return0;

}

SetConsoleTextAttribute是设置控制台窗口字体颜色和背景色的函数。

二、对光标所在位置进行修改

例如,如果我们想在屏幕中央打印“hello world”,我们可能会这样做:

printf(“ hello world\n”);

这样做是不是很麻烦呢?需要打印n个空格。

这是,我们可以通过自定义函数来实现将光标移动到指定位置:

void gotoxy(int x,int y)

{

              COORDpos;

              Pos.X=x;   //横坐标

              Pos.Y=y;   //纵坐标

             SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);

}

使用SetConsoleCursorPosition函数来实现对光标位置的定位,COORD pos是一个结构体变量,其中X和Y是它的成员,通过修改pos.X 和 pos.Y的值实现对光标的修改

3.图形库的使用
///*
//    1.创建可视化窗口
//
//	 1.1 initgraph(int width int height)
//	 1.2 closegaph()//关闭窗口
//	2.贴图操作
//	   2.1 IMAGE img;
//	   2.2 变量和图片绑定 loadimage(&img,"IMGURL");
//	   2.3 显示图片 putimage(int x, int y,&img);
//	3.语言
//	4.交互
//	5.用户交互:按键交互
//
//*/
///*
//颜色的表示:
//1 颜色宏表示颜色  大写英语
//2 三原色RGB自行配置
//空心画:
//rectangle(0, 0, 100, 100);  画一个矩形  左上角坐标+右下角坐标
//circle(100, 100, 50);   画一个圆   圆心坐标+半径大小
//填充:
//1.有边界线:
//  fillrectangle();fillcircle();
//2.无边界线:
//  solidrectangle();solidcircle();
//
//
// 颜色设置:
// 1.背景颜色:
// setbkcolor();
// cleardevice;
// 2.线颜色
// setlinecolor(RED);
// 3.文字颜色
// settextcolor();
//
// 4填充颜色
// 文字输出:
// 只能输出字符串:
//
// 1.输出文字
// outtextxy(int x,int y,char *str);
//
// 2.去掉文字背景
// setbkmode(TRANSPARENT);
//  3.  文字字体设置
//  1.  文字格式设置
//      settextstyle(25,0,char  *frontName)
//
//
//
//
//*/
//#include<iostream>
//#include<graphics.h>
//#include<stdlib.h>
//#include<conio.h>
//using namespace std;
//int main()
//{
//	initgraph(640, 480);//界定窗口的大小
//	IMAGE mm;
//	//for (int i = 0; i < 640; i+=10)
//	//{
//	//	setlinecolor(RED);
//	//	putpixel(i, 240, RED);//画一个点
//	//	line(0, 0, i, 240);//画一条线
//	//}
//	//
//	//rectangle(0, 0, 100, 100);
//	//setfillcolor(BLUE);//填充颜色
//	//fillrectangle(50, 50, 200, 200);
//	/*setlinecolor(RGB(254, 188, 252));
//	fillcircle(100+100, 100+100, 50);*/
//	for (int i = 0; i < 300; i += 20)
//	{
//		settextcolor(BLUE);
//		settextstyle(i, 0, "宋体");
//		//setbkmode(TRANSPARENT);
//		cleardevice();
//		outtextxy(100, 100, "sadasdasd456465");
//		Sleep(500);
//		//system("cls");
//	}
//	cin.get();
//	closegraph();
//	cin.get();
//	cin.get();
//	return 0;
//}
有了这些函数之后,我们需要把要添加的素材图片转换成<graphics.h>支持的格式,我使用的是常见的 .jpg格式,然后将相应文件名填充到函数调用之中。推荐大家使用英文名字,这样就能在使用过程中很快的知道要插入哪一张素材,我使用数字排序是有一定的原因,下一篇将详细介绍这个问题。
图形库的使用就简单介绍这些,在本次开发中,对图形库的使用做了简单全面的了解,确保在使用过程中不会出现其他的一些技术问题,白白消耗时间。总的来说, IMAGE函数非常简单易懂,而且容易使用,确保图片和名称相符,就能迅捷的使用它来创造一些小程序。
  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值