PHP-Raylib 视 频 游 戏 编 程 库 - GUI 篇
0.0.7+ 新增了gui类,传统的gui肯定比不上我们写web的ui那么好,但是性能上会比较好一点!
示例
<?php
require dirname(__DIR__) . "/vendor/autoload.php"; // 根据你的实际情况
use Kingbes\Raylib\Core; //核心
use Kingbes\Raylib\Utils; // 工具类
use Kingbes\Raylib\Gui; // gui类
Core::initWindow(800, 450, "Hello World"); //初始化窗口
Core::setTargetFPS(60); //设置目标帧率
// 白色
$white = Utils::color(255, 255, 255);
// 按钮位置大小
$recBtn = Utils::rectangle(24, 24, 120, 30);
// 消息盒子位置大小
$recMsgBox = Utils::rectangle(85, 70, 250, 100);
// 消息盒子开关
$showMsgBox = false;
// 下拉框开关
$dropdownBox = false;
// 下拉框索引
$dropdownBoxIndex = 0;
$text = "Hello World";
// 列表视图滚动索引
$listViewScrollIndex = 0;
// 列表视图活动索引
$listViewActive = 0;
// 主循环
while (!Core::windowShouldClose()) {
Core::beginDrawing(); //开始绘制
Core::clearBackground($white); // 清除背景
// 按钮控件控件
if (Gui::button($recBtn, "#191#Show Message")) { // 按钮被点击
$showMsgBox = true;
}
if ($showMsgBox) { // 如果消息盒子被打开
// 消息盒子控件
$res = Gui::messageBox($recMsgBox, "Message Box", "This is a message box.", "Nice;Cool");
if ($res >= 0) { // 如果用户点击了按钮
// 根据用户点击的按钮,执行不同的操作
echo "用户点击了按钮: $res\n";
$showMsgBox = false;
}
}
// 下拉框控件
$tab = Gui::dropdownBox(
Utils::rectangle(24, 120, 250, 30),
"Tab 1;Tab 2",
$dropdownBoxIndex,
$dropdownBox
);
if ($tab) {
$dropdownBox = !$dropdownBox;
}
// 列表视图控件
Gui::listView(
Utils::rectangle(24, 220, 250, 150),
"$text;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey",
$listViewScrollIndex,
$listViewActive
);
Core::endDrawing(); // 结束绘制
}
// 关闭窗口
Core::closeWindow();

本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: