raylib U3 - 加载背景图,背景滑动和反弹
通过背景图的滑动来创造角色移动的效果是游戏的基础操作之一。像什么横版闯关游戏,超级玛丽、魂斗罗、迷宫类的都是这个原理。
这一篇就简单实现一个大的背景图在小窗口里移动的效果

背景的移动其实很好做,横坐标不停减就行了。这里我们讲一下怎么判断有没有到边界。画个图,计算一下边界值,这个式子很容易就出来了。

背景图素材。大家可以用自己喜欢的图片,不过注意要png格式的。

下面是具体的代码。
#include <raylib.h>
#include<bits/stdc++.h>
using namespace std;
int main() {
//创建一个主窗口
InitWindow(800, 600,"Test");
SetTargetFPS(60);//设置刷新率
int imgw,imgh;
//加载一个图片文件
Image backimg=LoadImage("back.png");
imgw=backimg.width;//获取图片的宽和高
imgh=backimg.height;
//创建图片的绘制对象
Texture backTexture = LoadTextureFromImage(backimg);
UnloadImage(backimg);
int x=0,y=0;
int sx=-1,sy=-1;
while (!WindowShouldClose()) {
//x和y的值改变,背景就移动了
x+=sx;
y+=sy;
//边界判断
if(imgw+x<=800 || x>=0){
sx*=-1;
}
if(imgh+y<=600 || y>=0){
sy*=-1;
}
//绘制帧,这一Part都是放在循环的最后的
BeginDrawing();//开始绘制
ClearBackground(WHITE);//重新绘制一些背景。
//绘制图片对象
DrawTexture(backTexture,x,y,WHITE);
EndDrawing();//结束绘制
}
//关闭窗口
CloseWindow();
return 0;
}

浙公网安备 33010602011771号