0%

Godot 4.3

读取文件

GDScript
1
2
3
4
5
FileAccess.open(文件路径,FileAccess.READ).get_as_text()

# 示例
FileAccess.open('res://a.txt',FileAccess.READ).get_as_text()
FileAccess.open('/storage/emulated/0/a.txt',FileAccess.READ).get_as_text()

创建文件夹

GDScript
1
2
3
4
DirAccess.open(父文件夹路径).make_dir(子文件夹名)

# 示例
DirAccess.open("/storage/emulated/0/").make_dir("新建文件夹");

运行后会在 /storage/emulated/0/ 下创建一个名为 新建文件夹 的文件夹
得到 /storage/emulated/0/新建文件夹/

代码

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function getClientIp() {
if ($_SERVER['HTTP_CLIENT_IP']) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif ($_SERVER['HTTP_X_REAL_IP']) {
$ip = $_SERVER['HTTP_X_REAL_IP'];
} elseif ($_SERVER['HTTP_X_FORWARDED_FOR']) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$ips = explode(',', $ip);
$ip = $ips[0];
} elseif ($_SERVER['REMOTE_ADDR']) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = '0.0.0.0';
}

return $ip;
}

注意: 这可能会获取到IPv6地址

设置图块

GDScript
1
2
3
4
5
var vector:Vector2 = Vector2(0,0) # 定义需要设置的坐标(x,y)
var sceneCollectionId = 0 # 定义场景合集id(可在TileSet->图块中查看)
var sceneId = 0 # 定义场景id(在TileSet->图块->你的场景图集,最右侧场景路径的末尾)

$TileMapLayer.set_cell(vector, sceneCollectionId, Vector2(0,0), sceneId)

移除图块

如果 source_id-1atlas_coordsVector2i(-1, -1)alternative_tile-1,则会擦除该单元格。擦除后的单元格中,所有标识符都会自动设为对应的无效值,即 -1Vector2i(-1, -1)-1

GDScript
1
2
3
var vector:Vector2 = Vector2(0,0) # 定义需要设置的坐标(x,y)

$TileMapLayer.set_cell(vector, -1)

  1. 在需要处理的节点下添加一个 TextureButton 子节点
  2. 使 TextureButton 充满整个节点
  3. TextureButton 添加点击事件即可
    GDScript
    1
    2
    3
    func onClick():
    print('clicked')
    $TextureButton.pressed.connect(onClick)

dp2px

Java
1
2
3
public static float dp2px(float dp) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, Resources.getSystem().getDisplayMetrics());
}

px2dp

Java
1
2
3
4
5
6
public static float px2dp(Context context,float px) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float pxValue = px;
float dpValue = pxValue / metrics.density;
return dpValue;
}