You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下Raylib编写的C语言方块移动程序无法运行求助

macOS下Raylib程序无法运行的问题修复

这既不是macOS系统的问题,也不是Raylib的问题,完全是代码逻辑错误导致的:

核心问题分析

  • scanf阻塞程序执行:scanf会强制等待控制台输入,而Raylib的窗口渲染必须在主循环内持续执行。你的代码进入主循环后直接调用scanf,程序会卡在输入等待步骤,根本没机会初始化和渲染窗口,所以表现为“无法打开”。
  • 错误的按键处理逻辑:Raylib提供了专门的图形程序按键检测API,不需要通过控制台输入获取按键,这种方式完全不符合图形程序的运行逻辑。

修复后的代码

#include "raylib.h"

#define SW 800
#define SH 800

int main() {
    int posX = 0;
    int posY = 0;

    InitWindow(SW, SH, "Window");
    SetTargetFPS(60); // 设置稳定帧率,避免资源浪费和移动速度异常

    while (!WindowShouldClose()) {
        // 使用Raylib原生按键检测API
        if (IsKeyDown(KEY_A)) posX--;
        if (IsKeyDown(KEY_D)) posX++;
        if (IsKeyDown(KEY_W)) posY--;
        if (IsKeyDown(KEY_S)) posY++;

        BeginDrawing();
            ClearBackground(RAYWHITE);
            DrawRectangle(posX, posY, 100, 100, RED);
        EndDrawing();
    }

    CloseWindow();
    return 0;
}

编译提示

macOS下编译时需正确链接Raylib依赖框架,示例编译命令:

gcc your_file.c -o your_game -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo

内容的提问来源于stack exchange,提问作者Christopher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:22:09