基本上这是我第一次使用godot并为它编写代码,我没有任何过去的经验,所以如果问题听起来很愚蠢,我想提前说抱歉。我的运动几乎完成,我有一个最后的问题,如果有任何方法使引擎知道当我与地面碰撞我搜索了一点,我发现了is_on_floor方法,但当我尝试使用它它给了我这个错误(18,41)错位,但一切似乎对我很好,请帮助如果你可以,这里也是代码,如果它将是有用的找到问题。
extends KinematicBody2D
var velocity = Vector2(0,0)
const wspeed = 195
const GRAVITY = 30
var JUMPHIGHT = -600
func _physics_process(idle):
velocity.y = velocity.y + GRAVITY
if Input.is_action_pressed("right"):
velocity.x = wspeed
if Input.is_action_pressed("left"):
velocity.x = -wspeed
velocity.y = velocity.y + GRAVITY
if Input.is_action_just_pressed("up"): and is_on_floor():
velocity.y = JUMPHIGHT
move_and_slide(velocity,Vector2.UP)
答案很简单。你已经把:放在前面和is_on_floor()。另外,我想稍微改变一下你的代码,使其更有效
extends KinematicBody2D
var velocity = Vector2(0,0)
const wspeed = 195
const GRAVITY = 30
var JUMPHIGHT = -600
func _physics_process(_delta):
if Input.is_action_pressed("right"):
velocity.x += wspeed
if Input.is_action_pressed("left"):
velocity.x =-wspeed
if Input.is_action_just_pressed("up") and is_on_floor():
velocity.y = JUMPHIGHT
velocity.y = velocity.y + GRAVITY
move_and_slide(velocity,Vector2.UP)