打开我们上次的项目,让我们继续改造。
让我们加一个酷炫的背景
本次用到的资源:(大家也可以用一个自己喜欢的图片)或者可以选择右击该图片,图片另存为,下载这张图片。
首先,我们把资源放到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,这里最好不要使用中文,否则会出现乱码
运行效果:
好了,今天就到这里,教了大家一点小功能,以后慢慢我们就会更了解这个库。