raylib绘图库--瞿华
2022.7.1
知乎 1、raylib绘图库简介
知乎 2、raylib 2d动画/游戏教程(1)动画基本原理
知乎 3、raylib 2d动画/游戏教程(2)坐标系与颜色系统
知乎 4、raylib 2d动画/游戏教程(3)图像文件与图层
知乎 5、raylib 2d动画/游戏教程(4)raylib-drawing库
知乎 6、raylib 2d动画/游戏教程(5)键盘与鼠标输入
知乎 7、raylib 2d动画/游戏教程(6)游戏手柄输入
知乎 8、raylib 2d动画/游戏教程(7)音乐和音效
知乎 9、raylib绘制中文内容
知乎 10、使用raygui绘制控件
知乎 11、raylib 3d绘图基础教程(1)坐标系和摄像机
知乎 12、raylib 3d绘图基础教程(2)网格(Mesh)
知乎 13、raylib 3d绘图基础教程(3)几何变换
知乎 14、raylib 3d绘图基础教程(4)3d模型的载入与绘制
raylib 2d动画/游戏教程(6)游戏手柄输入
raylib支持获取游戏手柄的输入。其使用方式和鼠标类似。下面的程序演示了如何判断是否按下了第一个xbox手柄的B键。
#include
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
#define RACOON_FRAMES 12
int main() {
InitWindow(WINDOW_WIDTH,WINDOW_HEIGHT,"test");
SetTraceLogLevel(LOG_WARNING);
SetTargetFPS(24);//降CPU占用
if(!IsGamepadAvailable(0))
{
SetWindowTitle("Gamepad not found.");
//无xbox手柄
while(!WindowShouldClose())
{
BeginDrawing();
ClearBackground(WHITE);//无则闪烁
DrawText("Gamepad not found.",0,0,22,(Color){255,0,0,255});
EndDrawing();
WaitTime(0.9);//降CPU占用
}
return 0;
}
//读入图片文件
Texture tBackground=LoadTexture("background.png");
//读入拼接图片
Texture tRacoon = LoadTexture("racoon-total.png");
int stepX=1,racoonX=0,racoonY=300,racoonFrame=0,racoonTargetFrame=0;
while(!WindowShouldClose()) {
//xbox手柄的B键
if (IsGamepadButtonDown(0,GAMEPAD_BUTTON_RIGHT_FACE_RIGHT)) {
if (racoonFrame==0)racoonTargetFrame+=RACOON_FRAMES;
else racoonTargetFrame++;
}
if (racoonFrame=racoonTargetFrame) {
racoonFrame=0;
racoonTargetFrame=0;
}
racoonX+=stepX;
racoonX+=stepX;
}
int i = racoonFrame % RACOON_FRAMES;
int frameX=(i%4)*200;
int frameY=(i/4)*200;
BeginDrawing();
//叠加显示图层。注意显示的顺序
DrawTexture(tBackground,0,0,WHITE);
DrawTextureRec(tRacoon,
(Rectangle){frameX,frameY,200,200},
(Vector2){racoonX,racoonY},
WHITE);
EndDrawing();
}
UnloadTexture(tRacoon);
UnloadTexture(tBackground);
CloseWindow();
}
本文中所用的素材图片来自opengameart.org,可以直接在百度网盘下载:
链接:https://pan.baidu.com/s/1wGqJ_gBC3KzXmH5tNiR1kA
提取码:vsro