通过Minecraft学Rust(0)

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

前言

Minecraft是什么

Minecraft是一个快乐沙盒(sandbox)游戏,你可以在里面自由的创造一切你想要的东西。

Minecraft编程是什么

Minecraft编程可以让你获得更加刺激,更富创造力和更具个性化的游戏体验

准备工作

编程的准备工作

下载Visual studio code以及RustMinecraft start kit

安装后打开Visual studio Code,按下Ctrl+Shift+X或点击按钮

安装此插件此插件

解压start kit中的minecraft-start-kit文件夹到任意你喜欢的位置

进入此文件夹中,新建一个名为create.bat的文本文件,并写入

@echo off
cargo new adventures-in-minecraft --bin

保存并双击,等一会后应该会出来一个adventures-in-minecraft文件夹,若没有,请检查create.bat的后缀名是否正确,若正确,请重新安装rust

右击adventures-in-minecraft文件夹,选择用Visual Studio Code打开

你大概会看到像这样的画面

点击cargo.toml,在dependencies下面写上

mcpi-rs = { path = "../mcpi-rs" }

关闭cargo.toml窗口。

Minecraft的准备工作

下载Minecraft 1.12.2并打开,运行minecraft-start-kit里的startbukkit.bat,运行mc,多人游戏->直接链接,在地址中填写localhost就ok了

开始编程

写入

use mcpi_rs::prelude::*;
fn main() {
    let mc = Minecraft::connect();
    mc.mc_post_to_chat("Hello World!");
}

运行startbukkit.bat并且在命令行中运行cargo run命令

不出意外的话,你应该可以看到对话框中出现hello world的字样

解析

use mcpi_rs::prelude::*;

声明了一个Minecraft库

fn main()

声明了一个名字叫main的函数,Rust中声明函数的方法为

fn 函数名(函数参数 : 函数类型...) -> 函数返回值 {函数体}

需要注意的是,若参数返回值为空,比如fn main(),则说明这个函数的返回值为()即空类型。

let mc = Minecraft::connect();

声明了一个Minecraft类型。

其实这个并不完全,要是完全版本应该这样写

let mc : Minecraft = Minecraft::connect();//Minecraft::connect()返回一个链接到minecraft的类型

然而编译器很聪明,他通过Minecraft::connect()函数知道了这个类型是一个Minecraft类型,所以我们不需要声明类型便可以。

在Rust中声明变量的方法为

let 变量名 : 变量类型(可以不写) =;//所有除函数声明外的语句都必须写分号

变量名 = 值这样的关系叫做赋初值,然而他还有一个更学术的叫法——初始化

mc.mc_post_to_chat("Hello World!");

这个语句向Minecraft发送一条内容为Hello World!的信息。

这个时候有人可能会问,返回值呢?虽然它默认为(),但我没有看到他返回啊

其实这是聪明的编译器帮我们加上了返回值。

在Rust中返回一个值的方法为

return 返回值;//返回值的类型必须与函数声明的返回值类型相同

当然,有一个更简单的写法

返回值//注意没有分号,以及这个语句在函数中只能调用一次

祝贺你,你已经写出了第一份属于你自己的代码!

Author: Caviar-X

Permalink: https://blog.pigeons.cyou/2021/11/22/ad-in-mc-rs-1/

Comments