我正在 Godot 上制作自己的简单 3D 游戏,我在图块地图中遇到了一个问题,玩家看得越远,以线条形式突出显示的纹理就越多(屏幕截图上的示例)我在中制作了模型搅拌机,我不明白问题出在纹理中,或者是否有必要做其他事情来配置图块地图或播放器相机。
Фанфикс
Asked:
2024-06-05 18:18:06 +0800 CST
我正在使用 Godot 4.2.2。我正在制作电子宠物蛋,我需要衡量饥饿、睡眠和卫生的秤。我做了一个比例,我希望该值每 5 秒下降 1,但不幸的是,我做不到,它只是保持 100%。程序不会写入错误。
func _ready():
await get_tree().create_timer(5.0).timeout
$Golod.value -= 1
Айдар Масилов
Asked:
2024-03-10 21:35:03 +0800 CST
我阅读了 godot 文档并重复了其中的示例。在研究信号的使用阶段出现了困难(https://docs.godotengine.org/ru/4.x/getting_started/step_by_step/signals.html)。该脚本是用 GDScript 编写的。当我开始游戏时,调试器向我显示错误“无效的获取索引'超时'(基于:'空实例')”。尽管一切都与文档中的示例完全相同,但还是出现了这种复杂性。最奇怪的是,当我转到另一个项目,然后回到这个项目并打开游戏时,一切正常,精灵每秒都消失。但是当我不退出项目并重新启动它时,会出现以下错误。告诉我它有什么联系?在不理解的情况下我不想继续下去)。我附上场景和文件的截图
extends Sprite2D
var speed = 400
var angular_speed = PI
func _ready():
var timer = get_node("Timer")
timer.timeout.connect(_on_timer_timeout)
func _process(delta):
rotation += angular_speed * delta
var velocity = Vector2.UP.rotated(rotation) * speed
position += velocity * delta
func _on_button_pressed():
set_process(not is_processing())
func _on_timer_timeout():
visible = not visible
Xandy
Asked:
2024-02-07 05:19:07 +0800 CST
需要设置一个条件,让动画结束后,会飞出一颗“子弹”。有没有某种方法可以决定结局?或者我怎样才能以编程方式编写它?我知道您可以使用 is_action_just_pressed 代替 is_action_pressed 方法,但是动画根本不会播放。代码:
func atack():
animation.play('atack')
var bul = bullet.instantiate()
bul.position = $Marker2D.global_position
get_parent().add_child(bul)
if Input.is_action_pressed("enter"):
atack()
velocity.x = move_toward(velocity.x, 0, speed)
Sonek
Asked:
2023-08-17 04:13:09 +0800 CST
我在godot3中给出一个2D游戏来创建对话,我在游戏中使用dialogic 1.5,当我进入带有对话的场景时,对话立即开始,但我只需要在进入area2D时才开始。如何才能做到这一点?
程序与项目的截图:
代码为文本:
extends Area2D
var entered = false
func _on_Area2D_body_entered(body: PhysicsBody2D):
entered = true
func _on_Area2D_body_exited(body):
entered = false
func _process(delta):
if entered == true:
if Input.is_action_just_pressed("ui_accept"):
get_tree().change_scene("res://world 2.tscn")
尝试使用此代码调用对话场景。
我是初学者,所以对 gdscript 不太了解。