hi~我是吉他手苍小天
- 介绍
今天呢来教大家怎么做自己的节点比如我要实现一个可以桥接外部程序的一个节点然后里面可以用IO.shell()函数来实现一个桥接gcc或者clang的功能这样游戏里面就可以接入想要使用的软件然后可以创建一个窗口然后再优化一下,这样就可以使用外部软件了
小提示:
当你想用os.函数调用外部软件时如果对方是管路员需要提权时可以使用这段代码提权
#winedows下提权
var exe_path = "path/to/executable.exe" #可执行程序的路径
OS.execute(exe_path)
执行完上述代码后外部的管理员权限程序将会被启动并拥有提权权限
正片
所需依赖:
- SConstruct ——这是python的一个库用处和奴隶革命的make作用一样都是批量编译用的
pip install SConstruct
2.visual bass C++2022或者2019行 这是编译环境其实gcc和柯烂(clang)也行 但是玩这里演示就用VS2022了
3.godot-C Plus Plus ——这个呢是相当于SDK的东西用来编译你写的节点cpp文件的链接如下
注意 目前来看最新的godot-cpp4.0和4.1及以上的非一个所以别下错不然到时候就要重写了
https://github.com/godotengine/godot-cpp
步骤:
- 下载好依赖后先随便在哪里创建一个以后用来工作加工节点和节点里函数的地方,然后把下载好的godot-dev解压到里面然后在你创建的文件夹里创建一个 SConstruct 文件该文件无后缀里面写上
#!/usr/bin/env python
import os
import sysenv = SConscript("godot-cpp/SConstruct")
env.Append(CPPPATH="src/")
src =Glob("src/*.cpp")if env['platform'] == 'linux':
pass
elif env['platform'] == 'windows':
libpath = "libtest{}{}".format(env["suffix"], env["SHLIBSUFFIX"])
sharedlib = env.SharedLibrary(libpath,src)
Default(sharedlib)
elif env['platform'] == 'android':
pass
-
然后再创建一个文件夹src用来放自己写的代码文件,把godot-cpp里test/src里的register_typer的cpp和h文件复制到src里面 他们的作用是与godot交互用的到时候生成dll时相当于一个接口,把你写的函数来加到godot里面
- OK用visual bass打开放这些的文件夹然后先把开始的那个让你创建cmake的❌了
- src里创建你的文件比如我叫mytest要创建两个一个.h头文件另一个.cpp文件
- 然后就是编写那两个文件了这里。。。好吧我就随便写写其实只需要有些地方改改
这个是SConstruct里的写法你要是名字更我一样就跟我一样写就完事了
C:\Users\自己电脑的名字\Downloads\GDExtensionbi\src
我自己的那个src包括cpp的文件夹我发出来给你们看看吧