No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
8 Hrs
18 Min
25 Seg

Creando el personaje principal

5/28
Recursos

Aportes 5

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para aquellos que tienen problemas con la versión 4.0.0, pueden utilizar la siguiente forma de codificación:

Este simula lo que se buscaba con el get_inputs(), pero se hace uso de get_axis() y luego se asignan los valores correspondientes de cada eje a la propiedad de velocity multiplicado por la velocidad creada en el inicio, permitiendo así el movimiento del personaje.

aqui va mi codigo y me salio perfectamente el personaje 😃

Yo utilizo godot 4 aqui les dejo el codigo que hice en mi caso lo que use fue move\_and\_collide pero pueden usar slide, si usan collide deben de multiplicar \* delta de su parentesis ya que slide ya lo hace por defecto ```js extends CharacterBody2D @export var velocidad = 600 var movimiento = Vector2(0,0) func get_inputs(): movimiento = Vector2() if Input.is_action_pressed("move_right"): movimiento.x += velocidad if Input.is_action_pressed("move_left"): movimiento.x -= velocidad if Input.is_action_pressed("move_up"): movimiento.y -= velocidad if Input.is_action_pressed("move_down"): movimiento.y += velocidad func _physics_process(_delta): get_inputs() movimiento = move_and_collide(movimiento * _delta) ```extends CharacterBody2D @export var velocidad = 600 var movimiento = Vector2(0,0) func get\_inputs(): movimiento = Vector2() if Input.is\_action\_pressed("move\_right"): movimiento.x += velocidad if Input.is\_action\_pressed("move\_left"): movimiento.x -= velocidad if Input.is\_action\_pressed("move\_up"): movimiento.y -= velocidad if Input.is\_action\_pressed("move\_down"): movimiento.y += velocidad func \_physics\_process(\_delta): get\_inputs() movimiento = move\_and\_collide(movimiento \* \_delta)

hola, estoy probando en godot V4 y el move_and_slide() ya no recibe entradas, en mi caso lo deje de la siguiente manera

func _physics_process(delta):
get_inputs()
velocity = movimiento
move_and_slide()

Godot tiene dos versiones, estaré haciendo este curso con C# y con GDScript, por si a alguno le interesa o contribuir a lo que vaya cocando De momento el código del movimiento del jugador quedaría de la siguiente forma Versión C#`using Godot;` `using System;` `public partial class ``Player`` : CharacterBody2D` `{` ` ``[Export] public float Speed = 600f;` ` ``private void GetAxisInputs()` ` ``{` ` ``Velocity = new ``Vector2``(` ` ``Input.GetAxis("move_left", "move_right") * Speed,` ` ``Input.GetAxis("move_up", "move_down") * Speed` ` ``);` ` ``}` ` ``public override void _PhysicsProcess(double delta)` ` ``{` ` ``GetAxisInputs();` ` ``MoveAndSlide();` ` ``}` `}` ` ``` `Versión GDScript ` ``` `js `extends ``CharacterBody2D` `@export var speed = 600` `func _get_axis_inputs() -> void:` `velocity.x = Input.get_axis("move_left", "move_right") *` speed `velocity.y = Input.get_axis("move_up", "move_down") *` speed `func _physics_process(_delta):` ` ``_get_axis_inputs()` ` ``move_and_slide()` ```js using Godot; using System; public partial class Player : CharacterBody2D { [Export] public float Speed = 600f; private void GetAxisInputs() { Velocity = new Vector2( Input.GetAxis("move_left", "move_right") * Speed, Input.GetAxis("move_up", "move_down") * Speed ); } public override void _PhysicsProcess(double delta) { GetAxisInputs(); MoveAndSlide(); } } ```Versión GDScript ```js extends CharacterBody2D @export var speed = 600 func _get_axis_inputs() -> void: velocity.x = Input.get_axis("move_left", "move_right") * speed velocity.y = Input.get_axis("move_up", "move_down") * speed func _physics_process(_delta): _get_axis_inputs() move_and_slide() ```extends CharacterBody2D @export var speed = 600 func \_get\_axis\_inputs() -> void: velocity.x = Input.get\_axis("move\_left", "move\_right") \* speed velocity.y = Input.get\_axis("move\_up", "move\_down") \* speed func \_physics\_process(\_delta): \_get\_axis\_inputs() move\_and\_slide()