extends CharacterBody2D@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D@onready var collision_shape_2d_2: CollisionShape2D = $CollisionShape2D2const speed = 130.0var current_speed = speedvar acceleration = 10var jump_count = 1const jump_velocity = -300.0var gravity = Projec...
新建场景,根节点CharacterBody2D,重命名为Enemy 根节点下添加一个Node2D节点并改名为Graphics 添加一个Sprite2D节点 根节点下添加一个CollisionShape2D节点来定义碰撞形状 根节点下添加一个AnimationPlayer节点用来定义动画 根节点下添加一个StateMachine节点用来定义具体的逻辑 ...
extends CharacterBody2D# 状态机枚举 enum State { IDEL, RUNNING, JUMP, FALL, LANDING, }@onready var animation_player: AnimationPlayer = $AnimationPlayer @onready var sprite_2d: Sprite2D = $Sprite2D @onready var coyote_timer: Timer = $CoyoteTimer @onready var jump_request_timer: Timer =...
extends CharacterBody2D# ProjectSettings.get("physics/2d/default_gravity") 拿到项目设置中的默认重力值# as float 转换为浮点数# := 是一种变量声明和赋值的操作符,通常被称为「分配运算符」或「绑定运算符」它用于在声明变量的同时为其赋值var gravity := ProjectSettings.get("physics/2d/default_gravity")...
Kinematic 图形学模式,和 KinematicBody2D 一样 Character 人物模式,和普通刚体一样,但是不会发生旋转 利用这一点,我们可以找到实现刚体拖拽的思路:拖拽开始时刻设置刚体的模式为MODE_STATIC静态模式,同时控制刚体的全局位置跟随鼠标移动,拖拽结束即松开鼠标后,复原刚体的模式为MODE_RIGID普通模式,接着可以给刚体一个临时...
Kinematic 图形学模式,和 KinematicBody2D 一样 Character 人物模式,和普通刚体一样,但是不会发生旋转 利用这一点,我们可以找到实现刚体拖拽的思路:拖拽开始时刻设置刚体的模式为 MODE_STATIC 静态模式,同时控制刚体的全局位置跟随鼠标移动,拖拽结束即松开鼠标后,复原刚体的模式为 MODE_RIGID 普通模式,接着可以给刚体一...
}///<summary>///角色移动///</summary>///<param name="delta"></param>privatevoidPlayerMove(doubledelta){varvelocity = characterBody2D.Velocity; velocity.Y += ProjectSettingHelper.Gravity * (float)delta; Direction = Input.GetAxis(ProjectSettingHelper.InputMapEnum.move_left.ToString(), ...
当前Player使用的是以CharacterBody2D:Basic Movement为模板的脚本player,实现方向键移动和空格键跳跃。教程【2】一.1 (PS,这里4.3的模板和视频中4.2.1也略有不同,get_gravity()直接从父对象中获取,而非视频中的ProjectSettings) 主要有移动速度和跳跃的下落速度。并且这些逻辑相关的处理代码放在_physics_process中,...
move.Y += (float)(MyGodotSetting.GRAVITY * delta);if(MyGodotSetting.IsActionJustPressed(MyGodotSetting.InputMapEnum.Jump) && characterBody2D.IsOnFloor()) { printHelper.Debug("跳跃"); move.Y = JUMP_VELOCITY; }vardirection = Input.GetAxis(MyGodotSetting.InputMapEnum.Left.ToString(), MyGodo...
extends CharacterBody2D const RUN_SPEED := 160.0 const JUMP_VELOCITY := -300.0 const FLOOR_ACCELERATION:=RUN_SPEED/0.2 const AIR_ACCELERATION:=RUN_SPEED/0.02 @onready var coyote_timer: Timer = $CoyoteTimer @onready var jump_request_timer: Timer = $JumpRequestTimer @onready var sprite_2d:...