Godot 免费跨平台游戏引擎 (四、脚本GDScript)
可以实现类似于桌面宠物,可以拖动且透明。可以进一步扩展一些动作。这是原文,我作了一点扩展。应该有更优雅一点的代码,不过实现为主,有机会再更新吧。
窗口大小我设置为了120*150,基本就是动画大小。
节点在这里无关紧要,我只是添加了一个Sprite
- 工程属性中设置
- 代码
关键的一句:get_tree().root.set_transparent_background(true)
其它是为了用于拖动等。
extends Node2D
var mouse_no = 0
var mouse = [Vector2(),Vector2()]
var base_location = Vector2()
func _ready():
get_tree().root.set_transparent_background(true) # 背景透明
OS.set_window_always_on_top(true) # 窗口放前台
base_location = OS.window_position # 获取窗口位置
func _input(event):
if event is InputEventKey: # ESC退出
if event.pressed and event.scancode == KEY_ESCAPE:
get_tree().quit()
if event is InputEventMouseButton: # 获取两次鼠标点击,用于计算移动差
mouse[mouse_no] = get_global_mouse_position()
mouse_no += 1
if mouse_no == 2:
move()
func move():
var win_location = Vector2(base_location.x + (mouse[1].x-mouse[0].x), base_location.y + (mouse[1].y-mouse[0].y))
OS.window_position = win_location
base_location = win_location
mouse_no = 0