为什么我不能在这里放置is_on_floor



基本上这是我第一次使用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)

相关内容

  • 没有找到相关文章

最新更新