【AppGameKit】想要使用c++制作游戏的初学者继续看,制作属于自己的窗口

打开我们上次的项目,让我们继续改造。
在这里插入图片描述

让我们加一个酷炫的背景

本次用到的资源:(大家也可以用一个自己喜欢的图片)或者可以选择右击该图片,图片另存为,下载这张图片。
在这里插入图片描述
首先,我们把资源放到Final文件夹,然后重命名为bg1。
在这里插入图片描述
我的这个图片是640X480分辨率的,所以我们窗口大小就设置成640X480的。

#define DEVICE_WIDTH 640
#define DEVICE_HEIGHT 480

首先我们加载图片,但必须有个变量存储图片的编号,每个图片的编号都是唯一的,不能共用一个编号。
所以我们在app类中写一个变量,存储这张图片的编号。
代码如下,IMG_bg1就是我们变量,为了见名思意,我们以IMG开头,代表图片编号。

class app
{
public:

	// constructor
	app() { memset(this, 0, sizeof(app)); }

	// main app functions - mike to experiment with a derived class for this..
	void Begin(void);
	int Loop(void);
	void End(void);
private:
	int IMG_bg1;
};

下来我们就可以加载图片了。
在Begin函数中,我们写只执行一次的函数,图片加载一次就可以反复使用,所以在这里使用agk::LoadImage函数加载图片,"bg1.jpg"是我们图片的路径(以Final为根目录),这个函数会自动返回一个值,用于保存对应图片的编号

void app::Begin(void)
{
	agk::SetVirtualResolution(DEVICE_WIDTH, DEVICE_HEIGHT);
	agk::SetClearColor(255, 0, 255); // light blue
	agk::SetSyncRate(30, 0);
	agk::SetScissor(0, 0, 0, 0);
	
	IMG_bg1=agk::LoadImage("bg1.jpg");
}

图片加载好了,我们怎么使用图片呢?
这里有个新的概念,精灵,初学者可能不太了解,什么是精灵呢,简单的说就是一个小动物,这个小动物可以做许多事,他可以让自己变大变小变颜色,也可以运动,也知道是否与其他小动物撞在一起等等。每个小动物都有自己的模样,所以精灵可以用一张图片表示自己的模样。
与图片一样,精灵也有唯一的编号,就像每个人都有自己的身份证号一样,我们使用精灵的编号就可以操作精灵。
我们创建一个精灵,使用我们之前加载的图片作为他的模样。
与图片一样我们先声明一个变量,用于存储精灵编号,我们以SPR为前缀,代表精灵编号。(代码放在 int IMG_bg1; 的下一行)

int SPR_bg1;

然后我们就可以创建精灵了(代码放在 IMG_bg1=agk::LoadImage(“bg1.jpg”); 的下一行),使用CreateSprite函数创建精灵,IMG_bg1是用到的图片编号,这样精灵的模样就是IMG_bg1这张图片。

SPR_bg1=agk::CreateSprite(IMG_bg1);

然后我们运行一下,效果如下:
在这里插入图片描述
然而,我感觉这张背景不酷炫,没关系,我们修改一下它的颜色。使用SetSpriteColor函数设置精灵的颜色和透明度,SPR_bg1是我们要修改的精灵编号,252,157,154是一组较为美观的RGB三原色,255是透明度,表示完全不透明。
(代码放在 SPR_bg1=agk::CreateSprite(IMG_bg1); 的下一行)

agk::SetSpriteColor(SPR_bg1,252, 157, 154, 255);

效果如下,有种世界末日的感觉。
在这里插入图片描述

使用自己的标题

前面我们也可以看到,窗口的标题是AGK,这是默认的标题,我们做自己的游戏当然不能用这个了。
这个背景是一个星空,那我们的标题就叫Space吧。
使用agk::SetWindowTitle函数设置窗口标题。
另外,为了使我们的字体更加美观,我们使用函数agk::UseNewDefaultFonts使用新的默认字体,参数是1,这样字体确实漂亮了不少。

完整的代码

void app::Begin(void)
{
	agk::SetVirtualResolution(DEVICE_WIDTH, DEVICE_HEIGHT);
	agk::SetClearColor(255, 0, 255); // light blue
	agk::SetSyncRate(30, 0);
	agk::SetScissor(0, 0, 0, 0);
	
	agk::SetWindowTitle("Space");
	agk::UseNewDefaultFonts(1);

	IMG_bg1=agk::LoadImage("bg1.jpg");
	SPR_bg1=agk::CreateSprite(IMG_bg1);
	agk::SetSpriteColor(SPR_bg1,252, 157, 154, 255);
	
}

可以看到标题变成了Space,这里最好不要使用中文,否则会出现乱码
运行效果:
在这里插入图片描述

好了,今天就到这里,教了大家一点小功能,以后慢慢我们就会更了解这个库。

猜你喜欢

转载自blog.csdn.net/weixin_44611096/article/details/105896437