如何解决拾取通电时实例化游戏对象 godot
你好,我正在制作一款超级乒乓球游戏,它具有增强功能,可以为游戏添加另一个球。下一个球应该出现在屏幕中央。
extends Node2D
var collect = false
func _physics_process(delta):
$Area2D/AnimatedSprite.play("Spin")
func _on_Area2D_body_entered(body):
print(body.name)
if body.name=="Ball"&&collect==false:
collect = true
$Collection.play()
$AnimationPlayer.play("Fade")
$Area2D/AnimatedSprite.stop()
var ball = load("res://ball/Ball.tscn").instance()
ball.global_position = Vector2(0,0)
球体播放动画并发出声音,但球未加载到游戏中。
Godot 3.2.3 版
解决方法
我设法想出了一个解决方案,但如果有人有更好的建议,我愿意接受。
extends Node2D
var collect = false
var ballscene = null
func _physics_process(delta):
$Area2D/AnimatedSprite.play("Spin")
func _on_Area2D_body_entered(body):
print(body.name)
if body.name=="Ball"&&collect==false:
collect = true
$Collection.play()
$AnimationPlayer.play("Fade")
$Area2D/AnimatedSprite.stop()
var ball = load("res://ball/Ball.tscn")
ballscene = ball.instance()
find_parent('SpawnManager').add_child(ballscene)
,
我看到您找到了问题的答案,我将分享我在我的一款游戏中设法使用“生成器”的代码:
extends Node2D
export(PackedScene) var to_be_spawned
export(int) var amount
func _ready():
pass
func _process(delta):
pass
func spawn_this():
# _N is just to count,not used
for _N in range(amount):
var nut
nut = to_be_spawned.instance()
nut.position = self.position
nut.scale = self.scale
get_parent().add_child(nut)
您需要在“to_be_Spawned”中选择要生成的场景,任何场景,我建议不要生成初始菜单,例如 XD 在此之后,我在我想要的节点实例化并像粒子一样动画。
The AnimationPlayer inside the Spawner to call the function spawn_this
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。