Steel教程 - 编写代码

编写代码

本章介绍如何查看并编写代码。

添加游戏源码到VSCode

在VSCode的顶部菜单点击“文件 -> 将文件夹添加到工作区”,选择我们的游戏项目目录,例如“D:\steel-projects\ball”。在src目录下,可以看到我们的lib.rs文件内容如下:

use steel::app::{App, SteelApp};

#[no_mangle]
pub fn create() -> Box<dyn App> {
    SteelApp::new().boxed()
}

目前只有一个create函数,返回类型是Box<dyn App>。函数中只有一行代码,返回了一个由Box装着的SteelApp结构。请不要修改create函数的函数名和返回值类型,因为编辑器需要在动态加载游戏代码后调用create函数生成一个App对象,如果你修改了create函数的函数名或返回值类型,会导致编辑器找不到create函数而崩溃。

SteelApp介绍

在Steel引擎中,我们使用SteelApp为ecs世界中添加/注册实体(Entity),组件(Component),单例(Unique)和系统(System),来构建我们的游戏程序内容。

例如写一个在游戏开始的时候运行的hello_world系统:

use steel::app::{App, SteelApp, Schedule};

#[no_mangle]
pub fn create() -> Box<dyn App> {
    SteelApp::new()
        .add_system(Schedule::Init, hello_world)
        .boxed()
}

fn hello_world() {
    log::info!("Hello world!");
}

完成代码修改后,需要重新编译一下,才能将修改同步到编辑器中。回到Steel编辑器界面,点击顶部菜单的“Project -> Compile”按钮即可发起编译,控制台中输出“Project::compile end”就说明编译成功完成了。编译完成后你应该还可以在控制台中看到“Hello world!”的输出,说明系统运行成功。

添加Physics2DPlugin插件

因为我们的接球游戏需要使用2D物理引擎,在代码中添加Physics2DPlugin插件吧:

use steel::{
    app::{App, SteelApp},
    physics2d::Physics2DPlugin,
};

#[no_mangle]
pub fn create() -> Box<dyn App> {
    SteelApp::new()
        .add_plugin(Physics2DPlugin)
        .boxed()
}

插件(Plugins)是许多组件、单例和系统的集合,可以一次性添加一整个游戏模块所需的所有内容进来。插件使得Steel引擎是模块化的,你可以方便的添加别人写的任意模块,你也可以写一个Steel引擎模块提供给其他人使用。Physics2DPlugin就是一个提供了2D物理引擎所需的所有内容的插件。

完成代码修改后,记得回到Steel编辑器界面,点击顶部菜单的“Project -> Compile”按钮发起编译。

注意:由于代码中需要的use语句较多,本教程后续不再展示use语句的修改,你可以参考examples/ball/src/lib.rs中的use语句添加,或者直接复制其所有use语句即可。

下一章:场景搭建

上一章:创建项目

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSSxCCC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值