Gamedev에 Zig 설치

Windows에서 Zig programming language을 사용하여 게임 개발을 시작하는 방법에 대한 단계별 지침입니다.
TL;박사님, 다음은 한 걸음 한 걸음 8분 영상입니다.

Visual Studio 코드


Visual Studio 코드를 IDE으로 사용할 예정입니다.그것은 우리에게 문법 강조 표시, 코드 완성, 상호작용 디버깅 체험을 제공할 것이다.Visual Studio 코드를 다운로드하고 설치하려면 https://visualstudio.microsoft.com/downloads/으로 이동하십시오.

격식에 맞다


기존 Visual Studio 코드는 Zig 언어를 지원하지 않습니다.그래서 우선 우리는 Zig 컴파일러 자체를 잡아야 한다.Zig는 현재 1.0 이전 버전이기 때문에 플랫폼에서 https://ziglang.org/download/에서 최신 메인 버전(예를 들어 Zig-windows-x86 64-0.8.0-dev.1463+f950489ed.zip)을 가져오는 것을 권장합니다.명령줄에서 zig 명령을 사용하려면 다운로드한 아카이브 파일을 알려진 위치(예: C:\Users\<Username>\Downloads\zig)로 추출하여 PATH 변수에 추가합니다.
Windows에서 PATH 변수를 편집하는 방법은 다음과 같습니다.
  • 시작 메뉴에서 [고급 시스템 설정]을 검색한 후 [amp]lt;Enter[amp]gt;
  • 클릭 환경 변수
  • 이제 사용자
  • 의 경로를 편집할 수 있습니다.
  • 추출된 Zig의 위치를 경로
  • 에 추가
    이제 명령줄에서 Zig 소프트웨어를 구축할 수 있습니다!😊

    Zig 언어 서버


    ZLS은 Visual Studio 코드(또는 LSP을 지원하는 기타 편집기)의 기능을 제공합니다. 예를 들어 완성, 정의로 이동, 인용 찾기, 기호 이름 바꾸기, 형식 코드 바꾸기 등입니다.만약git를 귀속적으로 설치했다면, 원본 코드의 압축 파일을 다운로드하고 추출할 수 있습니다: https://github.com/zigtools/zls/archive/master.zip.https://github.com/ziglibs/known-folders/archive/master.ziphttps://github.com/ziglibs/zinput/archive/master.zip을 다운로드하여 zls/src 디렉터리로 압축할 수 있습니다.터미널 (cmd.exe) 을 사용하여 zls 디렉터리로 전환하고 zig build을 실행합니다.만약 이것이 성공한다면, 그것은 zls이다.exe는 zig out/bin에 있어야 합니다.

    Visual Studio 코드에서 Zig 개발 설정


    ZLS 통합의 경우 확장 시장에서 "ZLS For VScode"를 설치하고자 합니다.우리는 그것에게 ZL의 위치를 알려야 한다.이전 단계에서 구축한exe 실행 가능한 파일입니다.피니언 아이콘을 클릭하고 확장 설정을 엽니다.여기에서, 우리는 경로를 zls에 붙일 수 있다.exe:C:\Users\<Username>\Downloads\zls\zig-out\bin\zls.exe.
    디버깅을 위해서는 C/C++ (ms vscode.cpptools) 확장이 필요합니다.확장을 설치한 후 Visual Studio 코드 설정으로 이동하여 중단점 허용을 활성화합니다.
    이제 모든 것이 설치되었으니 우리는 우리의 첫 번째 프로젝트를 시작할 수 있다.파일 > 폴더 열기를 선택하십시오...폴더 hello-gamedev을 만들고 열기를 클릭합니다.그런 다음 Ctrl+J 키를 눌러 터미널을 열고 zig init-exe 을 입력합니다.이것은 src/main에서 프로젝트의 원본 파일을 만들 것입니다.체격과 몸매.zig 파일, 프로젝트를 구축하는 방법을 알려 줍니다.
    프로젝트를 구축하려면 Visual Studio 코드에 구축 작업을 만들어야 합니다.Ctrl+Shift+B를 클릭하여 구축 작업을 실행합니다.Visual Studio 코드가 없으므로 작업을 작성하라는 메시지가 표시됩니다.json 파일.입력을 몇 번 클릭한 다음 '기타' 템플릿을 선택하십시오.당신의 임무를 편집합니다.제이슨은 이렇게 보인다.
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "zig build",
                "group": "build",
                "problemMatcher": [
                    "$gcc"
                ]
            }
        ]
    }
    
    Ctrl + Shift + B 를 다시 누르면 항목이 생성될 것입니다.
    마지막으로 VisualStudio 코드에서 프로젝트를 실행하겠습니다.F5를 누르다.이것은 환경 선택을 가져올 것이다.C++(Windows)를 선택합니다.이것은 발사를 만들 것이다.json 파일.'프로그램' 속성을 편집해서 새로 만든 실행 가능한 파일을 가리킵니다: '${workspaceFolder}/zig out/bin/hello gamedev.exe'.또한 구축 작업을 "preLaunchTask"로 쉽게 구성하여 매번 실행되기 전에 프로젝트를 구축할 수 있습니다.너의 발사.제이슨은 다음과 같아야 한다.
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(Windows) Launch",
                "type": "cppvsdbg",
                "request": "launch",
                "program": "${workspaceFolder}/zig-out/bin/hello-gamedev.exe",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "preLaunchTask": "build"
            }
        ]
    }
    
    F5를 누르면 프로그램이 실행될 것입니다. 코드에 인터럽트를 설정할 수 있을 것입니다.

    드로잉


    텍스트만 좀 심심할 수 있어요.그래서 특이한 도형을 그릴 수 있는 창을 만듭시다!나는 SDL2 library을 사용하는 것을 건의합니다.https://libsdl.org/release/SDL2-devel-2.0.14-VC.zip을 캡처하여 아카이브를 알려진 위치로 압축합니다(예: C:\lib\).너의 판본을 편집해라.zig은 다음과 같이 보입니다.
    const std = @import("std");
    
    pub fn build(b: *std.build.Builder) void {
        const target = b.standardTargetOptions(.{ .default_target = .{ .abi = .gnu } });
        const mode = b.standardReleaseOptions();
    
        const exe = b.addExecutable("hello-gamedev", "src/main.zig");
        exe.setTarget(target);
        exe.setBuildMode(mode);
    
        const sdl_path = "C:\\lib\\SDL2-2.0.14\\";
        exe.addIncludeDir(sdl_path ++ "include");
        exe.addLibPath(sdl_path ++ "lib\\x64");
        b.installBinFile(sdl_path ++ "lib\\x64\\SDL2.dll", "SDL2.dll");
        exe.linkSystemLibrary("sdl2");
        exe.linkLibC();
        exe.install();
    }
    
    현재 이 프로그램을 붙여 넣으십시오. 메인 인터페이스에서 SDL로 세 개의 컬러 정사각형을 그립니다.정렬:
    const std = @import("std");
    const c = @cImport({
        @cInclude("SDL.h");
    });
    
    pub fn main() anyerror!void {
        _ = c.SDL_Init(c.SDL_INIT_VIDEO);
        defer c.SDL_Quit();
    
        var window = c.SDL_CreateWindow("hello gamedev", c.SDL_WINDOWPOS_CENTERED, c.SDL_WINDOWPOS_CENTERED, 640, 400, 0);
        defer c.SDL_DestroyWindow(window);
    
        var renderer = c.SDL_CreateRenderer(window, 0, c.SDL_RENDERER_PRESENTVSYNC);
        defer c.SDL_DestroyRenderer(renderer);
    
        var frame: usize = 0;
        mainloop: while (true) {
            var sdl_event: c.SDL_Event = undefined;
            while (c.SDL_PollEvent(&sdl_event) != 0) {
                switch (sdl_event.type) {
                    c.SDL_QUIT => break :mainloop,
                    else => {},
                }
            }
    
            _ = c.SDL_SetRenderDrawColor(renderer, 0xff, 0xff, 0xff, 0xff);
            _ = c.SDL_RenderClear(renderer);
            var rect = c.SDL_Rect{ .x = 0, .y = 0, .w = 60, .h = 60 };
            const a = 0.06 * @intToFloat(f32, frame);
            const t = 2 * std.math.pi / 3.0;
            const r = 100 * @cos(0.1 * a);
            rect.x = 290 + @floatToInt(i32, r * @cos(a));
            rect.y = 170 + @floatToInt(i32, r * @sin(a));
            _ = c.SDL_SetRenderDrawColor(renderer, 0xff, 0, 0, 0xff);
            _ = c.SDL_RenderFillRect(renderer, &rect);
            rect.x = 290 + @floatToInt(i32, r * @cos(a + t));
            rect.y = 170 + @floatToInt(i32, r * @sin(a + t));
            _ = c.SDL_SetRenderDrawColor(renderer, 0, 0xff, 0, 0xff);
            _ = c.SDL_RenderFillRect(renderer, &rect);
            rect.x = 290 + @floatToInt(i32, r * @cos(a + 2 * t));
            rect.y = 170 + @floatToInt(i32, r * @sin(a + 2 * t));
            _ = c.SDL_SetRenderDrawColor(renderer, 0, 0, 0xff, 0xff);
            _ = c.SDL_RenderFillRect(renderer, &rect);
            c.SDL_RenderPresent(renderer);
            frame += 1;
        }
    }
    
    F5를 클릭하면 빌드가 완료되면 화면에 다음과 같은 내용이 표시됩니다.

    축하합니다!🎉 이제 너는 마침내 Zig에서 프로그래밍 게임을 시작할 수 있다.

    좋은 웹페이지 즐겨찾기