Juego de Plataformas 2D/Godot Tutorial/Movimiento Personaje/Godot/3-Cap/Programacion videojuegos

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ธ.ค. 2021
  • En esta ocasion programaremos el movimiento de nuestro personaje a traves de la manera que iene Godot de programar :D
    GODOT DESDE 0 SERIE ➜ • GODOT Desde 0/Tutorial...
    CUALQUIER COMENTARIO SE AGRADECE :D Y SI OS A GUSTADO
    👍 (◔◡◔) NO OLVIDÉIS DE SUSCRIBIROS😄
    🎮 🎮 🎮 🎮 ✨🚀 ✨
    🎶TODOS LOS COMENTARIOS TRATARE DE RESPONDERLOS
    📷 INSTAGRAM: / luiscanary_
    🐤TWITTER: / luiscanary
    🔴TWITCH: / luiscanary
    ✏️DISCORD: / discord
    ✏️FACEBOOK: / luiscanaryy
    Tutoriales Unity➜ • Tutoriales Unity
    Descargar Unity➜ • Como DESCARGAR e INSTA...
    Descargar Visual Studio➜ • Importar y animar un p...
    Juego de Plataformas 2D➜ • Juego de Plataformas 2...
    QUE PC TIENES? 💻 👀
    Gráfica: Gtx 970 gigabyte
    Ram: Kin-hx fury 8 GB 1600DDR3
    Procesador: Intel i7 4790-3.6 GHZ
    Disco duro 1: 240 gb ssd
    Disco duro 2: 1tb sagate barracuda
    Placa base: Asrock h97 PRO4 LGA 1150
    Fuente: Mars Gaming 800 w
    Caja: Antec Gx 505
    Ratón🖱: Razer mamba chroma tournament edition
    Teclado⌨️: Mars Gaming Mk2
    Alfombrilla:Newskill atami control
    🎮CANAL🎮 / @luiscanary
    HAS LLEGADO HASTA ABAJO DEL TODOOO🎁🎉🎊
  • เกม

ความคิดเห็น • 1.2K

  • @LuisCanary
    @LuisCanary  9 หลายเดือนก่อน +79

    Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
    Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
    extends CharacterBody2D
    const moveSpeed = 25
    const maxSpeed = 50
    const jumpHeight = -300
    const gravity = 15
    @onready var sprite = $Sprite2D
    @onready var animationPlayer = $AnimationPlayer
    func _physics_process(_delta):
    velocity.y += gravity
    var friction = false
    if Input.is_action_pressed("ui_right"):
    sprite.flip_h = true
    animationPlayer.play("Walk")
    velocity.x = min(velocity.x + moveSpeed, maxSpeed)
    elif Input.is_action_pressed("ui_left"):
    sprite.flip_h = false
    animationPlayer.play("Walk")
    velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
    else:
    animationPlayer.play("Idle")
    friction = true
    if is_on_floor():
    if Input.is_action_pressed("ui_accept"):
    velocity.y = jumpHeight
    if friction:
    velocity.x = lerp(velocity.x, 0.0, 0.5)
    else:
    if friction:
    velocity.x = lerp(velocity.x, 0.0, 0.01)
    move_and_slide()

    • @rafaelrodriguezvasquez6
      @rafaelrodriguezvasquez6 9 หลายเดือนก่อน +4

      justo iba a preguntar por esto XD

    • @DukiPerro
      @DukiPerro 9 หลายเดือนก่อน

      ayuda, cuando pongo el script me sale todo lo que tiene que ver con velocity en rojo, junto con el "if is_on_floor() y el move_and_slide()
      Edit: Ya resolvi lo de el velocity, solo tenia que cambiarlo por motion, pero sigo con el problema del if is on floor y del move and slide

    • @mapache4423
      @mapache4423 9 หลายเดือนก่อน +2

      Tengo problemas con el onready var :( diectamente no existe. Cual deberia usar?
      Gracias!
      Edit: solo tenia que escribir un arroba primero @onready jsdjasjdj

    • @DukiPerro
      @DukiPerro 9 หลายเดือนก่อน +2

      ​@@mapache4423tienes que usar el @onready en vez de solamente onready (si te funciona el script y no te da problemas lo podrías copiar y pegar aquí porfa? Es para ver qué tengo mal en el mío)

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน +4

      Espero traerlo si! Gracias por el apoyo!!

  • @yodydiaz6055
    @yodydiaz6055 ปีที่แล้ว +109

    Mi hijo de 9 años me envió este video para mostrarme que esta aprendiendo a programar videojuegos y que ahora es lo único que quiere hacer en su vida. Muchas gracias LuisCanary por esa chispa que despertaste en él. Saludos. 🥹🤗

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +21

      Eternamente agradecido por este tipo de comentarios🙏🏻😊 me alegro mucho de que pueda aprender algo que le apasiona y que así sea, un saludo!

    • @juacoar699
      @juacoar699 ปีที่แล้ว +2

      como le va a vuestro hijoo?

    • @musicasincopyright7368
      @musicasincopyright7368 9 หลายเดือนก่อน +1

      Felicidadeeeees

    • @JAVIER-YT-2122
      @JAVIER-YT-2122 9 หลายเดือนก่อน +2

      @@LuisCanary una preguntita me dice elif comando no encontrado o algo haci que tengo que hacer saluditos desde Argentina

    • @tupaktero
      @tupaktero 3 หลายเดือนก่อน +1

      ​@@JAVIER-YT-2122 fijate que sea godot 3.5

  • @dante236
    @dante236 ปีที่แล้ว +90

    La onready palabra clave fue reemplazada por la @onready anotación en Godot 4.0. Por si no les funciona la linea de codigo. Saludos y Excelentes videos 😁

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +3

      Gracias por comentarlo!!, un saludo :D

    • @DiegoUrena-up1wk
      @DiegoUrena-up1wk ปีที่แล้ว +3

      Gracias men 🗿👌

    • @simonperdomo5949
      @simonperdomo5949 ปีที่แล้ว +1

      Gracias pa

    • @gregorybuendiabarros3870
      @gregorybuendiabarros3870 ปีที่แล้ว

      e escrito la linea de codigo muchas veses y aun me sale error (aun no e aprendido el lenguage de GDScrip) y visto el video varias veses y aun no encuentro cual es el problema
      extends Sprite
      const moveSpeed=25
      const maxSpeed=50
      const jumpheight= -300
      const up = Vector2(0,-1)
      const gravity=15
      onready var elmansito =$Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):

      motion.y += gravity
      var friction = false

      if Input.is_actio_presed("ui_right"):
      elmansito.flip_h = true
      animationPlayer.Play("Walk")
      motion.x = min ( motion.x + moveSpreed, maxSpreed)

      elif Input.is_actio_presed("ui_left"):
      elmansito.flip_h = false
      animationPlayer.Play("Walk")
      motion.x = max ( motion.x - moveSpreed, -maxSpreed)

      else:
      animationPlayer.play("Idle")
      friction = true

      if is_on_floor():
      if Imput.is_action_preseed("ut_aceept"):
      notion.y = jumpHelghtf
      if friction ==true:
      notion.x = lerp (nottion.x ,0,0.5)
      else:
      if friction==true:
      notion.x = lerp(notion.x,0,0.01)

      notion = move_and_slide(motion,up)
      aqui el error que me sale ahora es en la linera "if is_on_floor():" y no entiendo por que y se que tego mas errores pero no se coreguirlos si me puedes ayudar muchas gracias

    • @dolphin7703
      @dolphin7703 ปีที่แล้ว

      man me salvaste

  • @antoniomartos9273
    @antoniomartos9273 2 ปีที่แล้ว +14

    Como developer te lo digo, estos son los tutoriales que mas me han enganchado en tiempo! Sencillos para no tner conocimiento y amenos para los que tenemos base. Tienes una capacidad de explicar bestial, sigue asi tio, me suscribo porque el curro lo merece 💪💪

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +3

      Muchisimas gracias! :D Siempre intento hacerlo lo mejor que puedo, pero estos mensajes me alegran mucho. Un saludo enorme!

  • @imanolavila6837
    @imanolavila6837 2 ปีที่แล้ว +20

    Excelente vídeo; me gusta esta nueva serie, la estoy siguiendo: y esta saliendo de maravillas, hasta estoy haciendo mis propios spriter.

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +2

      Me alegro mucho, gracias a tii 😊😄

    • @Peluchesaurio
      @Peluchesaurio 2 ปีที่แล้ว

      @@LuisCanary hola muy buen video espero la parte 4

    • @oOttoneloDev
      @oOttoneloDev ปีที่แล้ว

      x2

  • @nyxnaiker1804
    @nyxnaiker1804 2 ปีที่แล้ว +4

    Me encanta esta serie de videos, estoy aprendiendo un monton siempre fue mi meta crear juegos y por fin podre lograrlo.

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Me alegro mucho por ello😄🙏 te mando todo mi apoyo!

  • @Elpori911
    @Elpori911 11 หลายเดือนก่อน +2

    La verdad es increíble lo que estoy pudiendo hacer con este curso!
    Mil Gracias!

    • @LuisCanary
      @LuisCanary  11 หลายเดือนก่อน +1

      Me alegro un monton!, espero que vaya genial!, un saludo :D

  • @Cristoperxtr
    @Cristoperxtr 2 ปีที่แล้ว +1

    chevere amigo buen video siempre atento a un nuevo video :) ya me desocupo mas del trabajo para tener mas tiempo :) saludos amigo :)

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Muchas gracias! me alegra que te ayudenn😊😄

  • @enriqueprol3390
    @enriqueprol3390 9 หลายเดือนก่อน +11

    chavales aquí les traigo un código con godot 4 , si se preguntan porque quite (motion) es porque ahora (velocity) es un (Vector2()) y no es necesario declarar una variable como antes y el (move_and_slide()) esta solo porque ya no requiere un argumento adicional y también lo ise con CharacterBody2D porque el KinematicBody2D se cambio el nombre por el bien de la traba xdxdxd (le cambiaron el name porque actualizaron el código con la versión 4.0 de godot), también el lerp le puse (velocity.x = lerp(velocity.x, 0.0, 0.5)) en vez de (velocity.x = lerp(velocity.x, 0, 0.5)) porque espera argumentos de tipo float (números en coma flotante) para realizar una interpolación lineal y por ultimo el delta le puse (func _physics_process(_delta):) porque el programa me lo indicaba como error pero le pones _delta para no utilizada la variable de manera intencional y así utilizarla en el futuro.
    extends CharacterBody2D
    const moveSpeed = 25
    const maxSpeed = 50
    const jumpHeight = -300
    const gravity = 15
    @onready var sprite = $Sprite2D
    @onready var animationPlayer = $AnimationPlayer
    func _physics_process(_delta):
    velocity.y += gravity
    var friction = false
    if Input.is_action_pressed("ui_right"):
    sprite.flip_h = true
    animationPlayer.play("Walk")
    velocity.x = min(velocity.x + moveSpeed, maxSpeed)
    elif Input.is_action_pressed("ui_left"):
    sprite.flip_h = false
    animationPlayer.play("Walk")
    velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
    else:
    animationPlayer.play("Idle")
    friction = true
    if is_on_floor():
    if Input.is_action_pressed("ui_accept"):
    velocity.y = jumpHeight
    if friction:
    velocity.x = lerp(velocity.x, 0.0, 0.5)
    else:
    if friction:
    velocity.x = lerp(velocity.x, 0.0, 0.01)
    move_and_slide()

    • @fuji_bum404
      @fuji_bum404 9 หลายเดือนก่อน

      Graciassss, me salía todo el código en rojo por no tener en cuenta eso ajajajaja

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน

      Muchas gracias por ayudar!, han cambiado bastantes cosillas asique esto vendra genial a todo aquel que tenga errorcillos, un saludo :D

    • @SaulD-xd6mj
      @SaulD-xd6mj 8 หลายเดือนก่อน

      Hola, hice copiar y pegar del codigo y me sale el error "identifier velocity not declared in the current scope" sabes que podria faltar?

    • @enriqueprol3390
      @enriqueprol3390 8 หลายเดือนก่อน

      @@SaulD-xd6mj copiaste bien el codigo?

    • @SaulD-xd6mj
      @SaulD-xd6mj 8 หลายเดือนก่อน

      @@enriqueprol3390 si, hice un copiar y pegar directo y cuando intento escribirlo tampoco me reconoce el velocity. me sale: Identifier "velocity" not declared in the current scope

  • @Amoxapina616
    @Amoxapina616 2 ปีที่แล้ว +24

    Eres el unico que explica el programa con paciencia y sin prisas con los otros tutoriales me perdia eres un grande
    Podrias enseñar como hacer que el personaje suba escaleras?

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +3

      Gracias!, y posiblemente lo veamos en un futuro :D

    • @alfaro4692
      @alfaro4692 ปีที่แล้ว

      escaleras de mano o escaleras combencionales?

  • @morganahusky85
    @morganahusky85 2 ปีที่แล้ว +1

    que buen engine . carga muy rapido, Gracias por enseñar cursos tan divertidos y muy interesantes espero pronto otro capítulo,y me gustaría que el querido lime pueda subir escaleras 😄😄😄.

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Muchas gracias por todo el apoyooo :D😄👍

  • @yovaalvarado9773
    @yovaalvarado9773 ปีที่แล้ว

    Buenisimo tuto, gracias Luis!

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Mil gracias Yova🤗😁

  • @marcopockels6820
    @marcopockels6820 2 ปีที่แล้ว +4

    Genial vi otros tutoriales y eran lentoooos este la verdar rapido y eficiente todo lo que se puede pedir

  • @alconpixel943
    @alconpixel943 ปีที่แล้ว +7

    Consulta: Referente a la función lerp
    La variable friction la declaramos nosotros, por lo tanto es simplemente un dato,
    ahora:
    Cuando declaro que la variable friction es "true" en el movimiento del eje x se aplica la función "lerp"
    en consecuencia...
    Se va reduciendo el movimiento del eje X, es decir, el del movimiento lateral.
    lerp(motion.x, 0, 0,5)
    El primer parametro refiere al movimiento en el eje x, sea positivo o negativo,
    lo que todavía no entiendo es los dos siguientes parametros.
    Perdón que sea tan quisquilloso, es simplemente curiosidad!!
    No termino de entender el funcionamiento de lerp y por qué para el objeto 🥲
    Saludos!!

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +3

      Buenas!, basicamente un lerp es una interpolacion lineal entre dos puntos para que no sea un movimiento inmediato y sea mas suave, en este foro hablan del tema seguramente te ayude!, un saludo :D godotengine.org/qa/65222/i-did-not-understand-well-lerp-function

  • @peleabeats4037
    @peleabeats4037 5 หลายเดือนก่อน +1

    Muchisimas Gracias por compartir esto. Mis respetos !

    • @LuisCanary
      @LuisCanary  5 หลายเดือนก่อน

      Gracias a ti por el comentario!, un saludo :D

  • @fernandoaraujoolano2328
    @fernandoaraujoolano2328 7 หลายเดือนก่อน

    Tus vídeos son excelentes, gracias por tomarte el tiempo de enseñar esta bonita arte.
    Seria expectacular que trajeras el G4, ya que es algo diferente a sus versiones anteriores.

    • @LuisCanary
      @LuisCanary  7 หลายเดือนก่อน

      Gracias y estamos con el godot 4 en la serie desde 0 te la dejo por aqui, un saludo :D th-cam.com/video/KXnBp8q_t-Y/w-d-xo.html

  • @oscarhe_1
    @oscarhe_1 2 ปีที่แล้ว +13

    Hola Luis, he seguido el tutorial, le he revisado y no se mueve, ni tiene gravedad ni nada.
    Aquí te paso el script
    extends KinematicBody2D
    const moveSpeed = 25
    const maxSpeed = 50
    const jumpHeight = -300
    const up = Vector2(0, -1)
    const gravity = 15
    onready var sprite = $sprite
    onready var animation = $AnimationPlayer
    var motion = Vector2 ()
    func _physics_process(delta):
    motion.y += gravity
    var friction = false

    if Input.is_action_pressed("ui_right"):
    sprite.flip_h = true
    animation.play("Walk")
    motion.x = min(motion.x+moveSpeed, maxSpeed)
    elif Input.is_action_pressed("ui_left"):
    sprite.flip_h = false
    animation.play("Walk")
    motion.x = max(motion.x-moveSpeed, maxSpeed)
    else:
    animation.play("Idle")
    friction = true
    if is_on_floor():
    if Input.is_action_pressed("ui_accept"):
    motion.y = jumpHeight;
    if friction == true:
    motion.x = lerp (motion.x, 0, 0.5)
    else:
    motion.x = lerp (motion.x, 0, 0.01)
    motion = move_and_slide(motion, up)

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +13

      Por aqui te dejo el mio por si tiene algo diferente, he visto que te faltaba un - en el elif de moverte por ejemplo
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

    • @oscarhe_1
      @oscarhe_1 2 ปีที่แล้ว +4

      @@LuisCanary Gracias :)

    • @bybassily2205
      @bybassily2205 2 ปีที่แล้ว +3

      @@oscarhe_1 He pasado cómo una hora revisando el código de pies a cabeza en búsqueda de mi error y se trataba de un solo símbolo, exactamente del "-" de "const up = Vector2(0,-1)"

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Jajajja suele pasar, ánimo!

    • @fabriciomarquez7837
      @fabriciomarquez7837 2 ปีที่แล้ว +1

      @@LuisCanary hola estoy aprendiendo poco a poco y tuve varios errores que ya arreglé pero ahora hay uno que no entiendo porque está igual ah lo tuyo y dice así error(37,1): The identifier "jumpHeight" isn't declared in the current scope

  • @maxzimi2170
    @maxzimi2170 2 ปีที่แล้ว +12

    Hola luis, una pregunta, en algún momento podrías hacer un tutorial de como crear un juego de carreras, graciass :D

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +5

      Sin duda lo tendremos que ver en un futuro :D

  • @JamComposer
    @JamComposer ปีที่แล้ว

    Me encanta como explicas.

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Muchisimas gracias🙏🏻😊

  • @BraianArt.
    @BraianArt. ปีที่แล้ว

    MERECES 100 TRILLONES DE SUSCRIPTORES.

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +1

      Ojala😁 de momento seguiremos compartiendo contenido con todos vosotros!!

  • @waldo_h6310
    @waldo_h6310 2 ปีที่แล้ว +4

    hola bro, tengo un problema, ya que hice todos los procedimientos pero mi personaje no se mueve con ninguna tecla que puedo hacer?

    • @oscarhe_1
      @oscarhe_1 2 ปีที่แล้ว +2

      a mi me pasa lo mismo, no se que hacer

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +1

      No te deja con las flechas?, revisa el tema de nombres si algo es en minuscula o mayusculas, las comillas que se usan que son estas"", guardastes el script tambien?, un saludo :D

    • @AnMaster11
      @AnMaster11 2 ปีที่แล้ว

      @@oscarhe_1 lo solucionaste?

    • @oscarhe_1
      @oscarhe_1 2 ปีที่แล้ว

      @@AnMaster11 si

    • @AnMaster11
      @AnMaster11 2 ปีที่แล้ว

      @@oscarhe_1 cómo?

  • @ismacero1100
    @ismacero1100 2 ปีที่แล้ว +3

    Bro, en los scripts tengo un problema
    en la 30 cuando pongo else:
    me dice esto: error parsing expression, misplaced: else
    Y lo tengo igual que tu, me ayudas :(

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +3

      Te paso el codigo por si te ayuda!
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

    • @ismacero1100
      @ismacero1100 2 ปีที่แล้ว +2

      @@LuisCanary brooo, muchas gracias, ya me funciono :D

    • @matias-bu1dl
      @matias-bu1dl 5 หลายเดือนก่อน

      @@LuisCanary gracias bro yo tenia el mismo problema con "elif"

  • @deve7v
    @deve7v ปีที่แล้ว

    Buen video, estoy aprendiendo mucho

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Me alegro mucho de que te este gustando😄

  • @yahirgamescrack2464
    @yahirgamescrack2464 2 ปีที่แล้ว +1

    Primero

  • @Ricardoavn
    @Ricardoavn 2 ปีที่แล้ว +3

    Muchas gracia por enseñar, muy entretenido, lo único que falto es decir que al crear los Script, todo cuenta, incluso los espacios, no sabes como me rompí la cabeza viendo que podía estar mal escrito. Otra cosa, el script "jumpHeight" no me lo reconoce por nada del mundo, me aparece the ide tifier "jumpHeight" isn't declared in the current scope. A que se refiere. Saludos.

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +2

      Buenas!, si en godot hace falta poner sus cosillas en orden sobretodo espacios, lo que comentas tiene pinta de que no has declarado tu variable arriba de tu script por lo que no lo encuentra, revisa tambien el tema de mayusculas y minusculas, un saludo :D

    • @cursodejuegos7901
      @cursodejuegos7901 2 ปีที่แล้ว

      Me pasa lo mismo quisiera saber que es

  • @Masitx99
    @Masitx99 2 ปีที่แล้ว +5

    En mi caso es super mas sencillo que unity 100%. Gracias por los videos

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +2

      Hay gente que le resulta mas sencillo si, depende decada uno, un saludo :D

  • @DreamHX
    @DreamHX 9 หลายเดือนก่อน

    Buen video, como de costumbre Luis. La única pega, es que para seguir el curso con G4 hay que ir modificando cosillas. Pero bueno, así aprendemos a buscarnos un poco la vida.
    Saludos y seguir dándole caña :)

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน +1

      Ya es lo malo que ha pasado tiempecillo ya , a ver si para el futuro puedo actualizarlo, un saludo :D

  • @yahirgamescrack2464
    @yahirgamescrack2464 2 ปีที่แล้ว +1

    Like 1

  • @Mario-vp8ew
    @Mario-vp8ew 2 ปีที่แล้ว +8

    Nota, si les sale parsing error por ejemplo por;
    Elif inout.is_action_pressed("ui-left"):
    Es por qué tienen que por cada comando ya sea func, if o elif hacer una línea con una ligera separación entre si.
    Luego de eso deberían poner un tab al inicio de cada comando como los ir elif o etc y el resto de codigo que escriban debajo del mismo presionen espacio así se arma como una columna de comando, sabrán que hicieron esto bien cuando al clickear en la columna donde pusieron el comando if o elif se guarde todo el código de esa parte en las líneas de abajo

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Gracias por comentarlo seguro que ayuda!, un saludo :D

    • @jaiker_0908
      @jaiker_0908 ปีที่แล้ว

      sos grande😎👾

    • @marhernandez1398
      @marhernandez1398 ปีที่แล้ว

      Me aparece ese error, pero la vdd no entendí muy bien tu comentario, me vendría muy bien una ayuda ya q no comprendo mucho de esto

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

    • @angl_2918
      @angl_2918 ปีที่แล้ว

      @@LuisCanary Muchas gracias, a mi sí me resultó de mucha ayuda el código. Llevaba varios minutos intentando resolver el error que menciona el del comentario jaja

  • @francoramirez4667
    @francoramirez4667 ปีที่แล้ว +2

    oye como se puede hacer que cuando saltes tambien tenga animacion de salto porque yo hice mi propio sprite con sus animaciones de idle y walk y tambien la de salto pero ya intenta ponerla de muchas formas y no pude

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Pues a ver si podemos verlo en el futuro porque habria que crear la transicion y demas, un saludo :D

  • @saitokun8834
    @saitokun8834 2 ปีที่แล้ว +1

    Y cuenta la leyenda que aún espero la otra parte

  • @swatmysyt
    @swatmysyt 5 หลายเดือนก่อน

    Buenas LuisCanary, solo queria saber si sabes que el Characterbody2D en GD 4 al crear el script te ofrece una plantilla ya hecha para el movimiento de plataformas 2D. Crees que me recomiendas usar esa o la tuya?

    • @LuisCanary
      @LuisCanary  5 หลายเดือนก่อน

      Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
      Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const gravity = 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer = $AnimationPlayer
      func _physics_process(_delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.5)
      else:
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.01)
      move_and_slide()

  • @Gial_P3D
    @Gial_P3D ปีที่แล้ว +1

    ❤Jajaja no le temo a programar hay que aprender si o si para creae juegos,Golpe de realidad❤

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Mucho ánimo!! Espero que vaya genial 😄👌

  • @Guffiman700
    @Guffiman700 ปีที่แล้ว +1

    ¿he echo todo lo que dice el video pero me aparece error (21,1): tabulación mixta y espacios en sangría y no se como areglarlo me apare eso en la parte de sprite.flip_h = true como lo areglo?

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @oyoxein1825
    @oyoxein1825 2 ปีที่แล้ว

    Disculpa ami me sale un aviso de "Mixed tabs and spaces in identification" en la linea de animationplayer.play ("Walk") no sabria que sería

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Te dejo el script por si te ayuda!
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

    • @oyoxein1825
      @oyoxein1825 2 ปีที่แล้ว

      @@LuisCanary muchas gracias amigo

  • @PlanetCraft8683
    @PlanetCraft8683 10 หลายเดือนก่อน

    que epico

  • @ahhhh8166
    @ahhhh8166 2 ปีที่แล้ว

    Me has ayudado bastante! Tus tutoriales son muy claros. Tengo una duda, ¿como puedo agregar animaciones no jugables? ¿que me recomendarias?

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Podrias usar lo mismo que hacemos para animar, aunque habria que ver la mejor manera en tu caso quiza puedas investigar sobre cinematicas en godot, un saludo :D

  • @AlazSalasar
    @AlazSalasar ปีที่แล้ว

    en esta linea de codigo me sale en error (motion = move_and_slide(motion,up);) me aparese esto (Too many arguments for "move_and_slide()" call. Expected at most 0 but received 2.)

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @sweetyt831
    @sweetyt831 8 หลายเดือนก่อน

    es que me paso este error me podrías ayudarme Invalid type in utility function 'lerp'. Cannot convert argument 2 from int to Vector2.

    • @LuisCanary
      @LuisCanary  8 หลายเดือนก่อน

      Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
      Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const gravity = 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer = $AnimationPlayer
      func _physics_process(_delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.5)
      else:
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.01)
      move_and_slide()

  • @Borakusito
    @Borakusito ปีที่แล้ว +1

    buenos vídeos! mi única queja es que deberías ver al espectador como una persona sin bases de programación. te han faltado cosillas como explicar lo que significa el "extends", las constantes, variables, etc. por todo lo demás perfecto, me está ayudando bastante a cómo empezar en este mundillo. gracias!

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Tienes toda la razon de echo me sabe mal este video porque creo que si que es complejo y deberia haber echo quiza otro video entre medias para poder explicar todo mejor, un saludo :D

    • @Borakusito
      @Borakusito ปีที่แล้ว +1

      @@LuisCanary gracias luis, se agradece hahah. ya estoy yo mirando por ahí y tomando apuntes de lo básico como variables, bucles, etc...
      si hicieras un tutorial lo vería sin duda alguna. gracias por todo!

  • @Emanuel_ochoa_vargas
    @Emanuel_ochoa_vargas ปีที่แล้ว +1

    hola tengo un problema, cuando pongo los asteriscos no me agarra y me sal error todo el tiempo que hago brou???

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda, un saludo :D extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @sixtydiji1273
    @sixtydiji1273 ปีที่แล้ว

    Hola,he tenido un problama ;al poner if is_on_floor me sale "espected an intended block after if"
    ayuda como lo arreglo

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @lucasjaraz2864
    @lucasjaraz2864 2 หลายเดือนก่อน

    hola tengo un problema que no colicionan mi player y el tilemap , el player se cae al bacio y estando ensima del tilemap pero no colicionan ya me fije y le puse coliciones a el tileset y bueno no se que mas hacer

    • @LuisCanary
      @LuisCanary  2 หลายเดือนก่อน

      Buenas! te sale algun error?, un saludo :D

  • @SAFAST673
    @SAFAST673 ปีที่แล้ว

    tengo en rojo la parte de if Inpunt.is_action_pressed("ut_right") ... y la otra la del ut_left 9 en rojo de error solucion pls?

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +1

      Revisa con cuidado el tema de mayusculas y minusculas y los fallos de letras como Input en vez de Inpunt o ui_right en vez de ut_right, un saludo :D

  • @AldyDerg
    @AldyDerg 2 ปีที่แล้ว +1

    Estoy viendo tus tutoriales y estoy interesado en aprender de verdad el Godot, y tengo una duda, intento hacer un buen movimiento, uno que se sienta agradable , y para eso
    en el momento en el que se dejara de presionar las teclas de movimiento en medio de un salto, me gustaria que el personaje se quedara completamente quieto, no que tuviera ese efecto de momentum, pero no se como hacerlo, tu sabes la linea de codigo que me hace falta para esto?
    pd muchas gracias por los tutoriales!

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +1

      Seria relativamente sencillo seria que si estas sin tocar suelo el personaje no pueda moverse, con lo que tenemos mas o menos se podria plantear, quiza lo veamos en un futuro, un saludo :D

  • @Castillo0916
    @Castillo0916 ปีที่แล้ว

    Parser Error: The identifier "Imput" isn't declared in the current scope. porque me aparece eso?

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @aprendeestudiando
    @aprendeestudiando 2 ปีที่แล้ว

    Luiss vacan tu serie, pero no te olvides de una serie de craftinggg

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Jajajaja, lo tendre en cuenta :D

  • @rodrigocalipuy4351
    @rodrigocalipuy4351 ปีที่แล้ว +2

    Luis estoy usando la versión 3.5.1 y tal vez hay algo que cambiar para poder mover mi player ya que no se puede mover

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +3

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @LUCIANO3186
    @LUCIANO3186 2 ปีที่แล้ว +1

    Buen video Luis estoy aprendiendo mucho. Tengo una preguntas y es que cuando presiono la tecla para ir hacia la izquierda hace la animación pero igual va hacia la derecha, tienes alguna solución?

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Revisa en codigo cuando hacemos los Inputs el tema de simbolos asi como las teclas que usamos que este todo guachi escrito, un saludo :D

    • @Siegfriedsouls
      @Siegfriedsouls ปีที่แล้ว +1

      por si no lo resolviste aun, es simple le tenes que agregar un "-" en maxSpeed de "ui_left" osea te tiene que quedar asi:
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x -moveSpeed,-maxSpeed)

  • @nmryt8840
    @nmryt8840 ปีที่แล้ว

    ayuda pongo else: y me sale algo rojo diciendo unindent no coincide con ningún nivel de identificación externo

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @Gerard_19
    @Gerard_19 ปีที่แล้ว +1

    no me marca rojo algún script Pero al darle play no se mueve a la izquierda solo a la derecha incluso presionando la tecla de izquierda igualmente va a la derecha pero el personaje si hace su cambió de animación. ayuda

    • @Gerard_19
      @Gerard_19 ปีที่แล้ว

      Ya lo arregle en el 28
      Motion.x = max(Motion.x - moveSpeed, -maxSpeed)
      No puse el - en maxSpeed fue mi error ahora si me va perfecto.

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Me alegro que se solucionara!, un saludo :D

  • @diegogonzalez-wm6hf
    @diegogonzalez-wm6hf ปีที่แล้ว

    hola Luis te mando un saludo desde mexico tienes un canal excelente y explicas muy bien
    estoy haciendo este curso o tutorial y me encanta tengo un problemita hasta este video el player ya tendria que caminar y saltar pero el mio solo salta cual podra ser mi error ?
    muchas gracias ...

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @Sebanardoxd
    @Sebanardoxd 7 หลายเดือนก่อน +1

    Oye bro, se podria agregar un pequeño dash o impulso al personaje? Porque estoy haciendo un fangame de pizza tower y eso me serviria mucho

    • @LuisCanary
      @LuisCanary  7 หลายเดือนก่อน +1

      Si se podria, quiza podamos hacer algun video en el futuro sobre eso, un saludo :D

    • @Sebanardoxd
      @Sebanardoxd 7 หลายเดือนก่อน +1

      @@LuisCanary Gracias! Saludos ;)

  • @ALECITO_GAMES
    @ALECITO_GAMES 6 หลายเดือนก่อน

    En la parte de scprit dice esperando contsante o alg asi en la primera parte donde ponemos el valor 25 aparece un codigo de error

    • @LuisCanary
      @LuisCanary  6 หลายเดือนก่อน

      Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
      Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const gravity = 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer = $AnimationPlayer
      func _physics_process(_delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.5)
      else:
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.01)
      move_and_slide()

  • @unkn0wn40
    @unkn0wn40 ปีที่แล้ว

    Necesito ayuda, me está poniendo un error en la línea 15 que dice que el argumento delta no es usado en 'physics_proceds'. No entiendo que quiere decir eso y estoy completamente perdido, agradecería si me echarás un cable en eso.

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @Elruso90
    @Elruso90 ปีที่แล้ว

    en el renglon 25 me dice que la expresion elif esta mal . alguien sabe porque?

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @antoniocardenas8206
    @antoniocardenas8206 หลายเดือนก่อน +1

    hola tengo un problema y es que habiendo hecho el mismo código mi personaje se mueve mas lento y no salta casi alguien me podría decir porque

    • @LuisCanary
      @LuisCanary  หลายเดือนก่อน

      Buenas! te sale algun error?, un saludo :D

  • @Jax1Avi
    @Jax1Avi 2 วันที่ผ่านมา

    Sabes explicar muy bien, pero tengo una duda. En caso que lo quiera manejar para Android como seria?

  • @ricardog2301
    @ricardog2301 ปีที่แล้ว

    por que cuando me muevo para un lado lo hace de espaldas y lento? no entiendo eso

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @eliguano354
    @eliguano354 ปีที่แล้ว

    Hola Luis, tengo una duda, como se agregan mas animaciones como por ejemplo una animación de salto?

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +1

      Pues es algo que me molaria enseñar en un futuro, un saludo :D

    • @ReVan_348
      @ReVan_348 10 หลายเดือนก่อน

      @@LuisCanaryjusto estoy ocupando ese tuto y no hay en ningún lado sería muy útil si lo llegaras a hacer

  • @NGL-ke2xp
    @NGL-ke2xp 3 หลายเดือนก่อน

    Parece que tengo un error bastante unico, cuando me muevo para la derecha, avanza muy rápido, pero para la izquiera, se mueve muy lento, como soluciono eso?

    • @LuisCanary
      @LuisCanary  3 หลายเดือนก่อน

      Buenas! revisa en tu codigo que la linea de movernos hacia un lado u el otro no tenga nada raro, algun simbolo o numero de mas que aumente la velocidad de tu personaje de un lado al otro, un saludo :D

  • @trapacio73
    @trapacio73 8 หลายเดือนก่อน

    Tengo un pequeño problema, tengo sprites que la hitbox en algunos sprites es como un rectangulo vertical pero otros sprites en los que la hitbox debería ser totalmente distinta, me pasa lo mismo con las texturas y no se como cambiar de sprites y hitbox debido a que hay una sola hitbox para cada sprite y un tamaño para cada textura, hay algo que se pueda hacer o no

    • @LuisCanary
      @LuisCanary  8 หลายเดือนก่อน

      Buenas! he visto un video que explica un poco las colisiones quiza te ayude, un saludo :D th-cam.com/video/1Uk1yhGtnOo/w-d-xo.html

  • @alexlaury8081
    @alexlaury8081 ปีที่แล้ว

    bien, ya e resuleto mi otro problema, ahora lo que pasa es que cuando dejo de caminar, la animacion sigue aunque esté parado, y me gustaria poner una animacion para cada cosa es decir, saltar, quedarse quieto, agacharse etc

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Quiza lo veamos en un futuro, un saludo :D

  • @joelbustos948
    @joelbustos948 ปีที่แล้ว

    ayuda en la barra 15 de: func _physics_process(delta): me dice que no se debe poner usar asi delta y lo use con barra baja pero cuando lo hago no funciona

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @S.M.3.14
    @S.M.3.14 2 ปีที่แล้ว +2

    hola Luis si puedes decirme tengo un fallo en el 32, 27 y 40 y todas me dise Parser Error: The identifier "friction" isn't declared in the current scope y eso es un fallo con friction llevo 2 días sin poder hacer nada
    un saludo

    • @S.M.3.14
      @S.M.3.14 2 ปีที่แล้ว

      hola ya resolvi el problema era poner al enter cuando escribia friction increible

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +1

      Me alegro que se solucionara :D

  • @SANDIEGO2008.
    @SANDIEGO2008. ปีที่แล้ว

    cuando pongo la programacion siempre tengo un error osea todo esta bien escrito pero el problema son los ESPACIOS no se como acomodar las cosas y por eso me sale mal. AYUDA!!

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  •  ปีที่แล้ว +1

    Me encontré con un problema, tengo un error en el código que dice lo siguiente: The method "is_on_floor" isn´t not declared in the current class.

    •  ปีที่แล้ว

      *Resuelto* en la primera linea de codigo estaba "extends AnimationPlayer" y era "extends KinematicBody2D"

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Me alegro que se solucionara, un saludo :D

  • @michaelcifuentes5149
    @michaelcifuentes5149 ปีที่แล้ว

    Hola Luis, primero gracias por tus videos y saludos desde Colombia; quisiera preguntar, que función tiene @onready?

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Pues aqui se comenta super rapido espero te ayude!, un saludo :D th-cam.com/video/tvogJJPrIfk/w-d-xo.html

  • @crisponti4497
    @crisponti4497 2 ปีที่แล้ว

    Tengo 2 problemas cuando le doy a la izquierda se mueve a la derecha pero cuando le doy a la derecha se mueve a la derecha y el segundo es que mi personaje no para la animación de caminar por ocupe otro sprite agradecería mucha una ayudita

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Buenas te paso el codigo por si te ayuda!, un saludo :D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @cesar-14
    @cesar-14 9 หลายเดือนก่อน +1

    if Input.is_action_pressed("ui_right")
    sprite.flip_h =false
    animationPlayer.play("walk")
    onready var sprite $Sprite
    onready var animationPlayer = $AnimationPlayer
    Por qué me salen rojo

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน +1

      Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
      Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const gravity = 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer = $AnimationPlayer
      func _physics_process(_delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.5)
      else:
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.01)
      move_and_slide()

  • @Ana-jz9wh
    @Ana-jz9wh 9 หลายเดือนก่อน

    Mi personaje se cae pero no se por que por que estoy en godot 4 y no me sale la opcion de collider en el mapa

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน

      Que raro revisaria la colision de tu player y del mapa, te sale algun error?, un saludo :D

  • @anxie1930
    @anxie1930 ปีที่แล้ว

    Hola, tengo un problema, y es que no ttengo ningun error de sintaxis pero cuando ejecuto el juego y apreto alguna flechita me aparec esto Invalid type in function 'move_and_slide' in base 'KinematicBody2D (Player.gd)'. Cannot convert argument 1 from float to Vector2.

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      te paso el codigo por si te ayuda, un saludo :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @guidobambini5860
    @guidobambini5860 ปีที่แล้ว

    q hago si me dice: The method "is_on_floor" isn`t declared in the current class. AYUDAAAAAAAAAAAAAAAAAAA

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @Leandro.Ajedrezista
    @Leandro.Ajedrezista 8 หลายเดือนก่อน

    tengo una duda y es el por que atravieso los objetos cuando pongo iniciar

    • @LuisCanary
      @LuisCanary  8 หลายเดือนก่อน

      Sera por la colision de tu jugador o del mapa que no esta bien ajustada, un saludo :D

  • @anthonycarranza6184
    @anthonycarranza6184 9 หลายเดือนก่อน +1

    @LuisCanary porfa te pido que hagas el tutorial pero en GODOT 4 ya que no entiendo los cambios que han echo porfa

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน +1

      ya, me molaria actualizarlo si, un saludo :D

  • @josuegonzalez5968
    @josuegonzalez5968 2 ปีที่แล้ว

    twngo un problema y es que if Input.is_action_pressed("ui_right"):
    sprite.flip_h = true
    animationPlayer.play("Walk")
    motion.x = min(motion.x + moveSpeed, maxSpeed) al poner : despues de ui_right me dice error en walk
    como puedo solucionarlo?

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +1

      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      Esto es lo que tengo en mi codigo, espero te sirva, un saludo :D

  • @eddy_music411
    @eddy_music411 ปีที่แล้ว

    me marca un error en la linea 36 --- r: The identifier "jump_Height" isn't declared in the current scope.

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @bignermiranda5236
    @bignermiranda5236 2 ปีที่แล้ว +1

    Escribi todo como estaba en el video y cuiando intento probar el juego me aparece un error que dice: *Error(25,1): Mixed tabs and spaces in identation* El error es en la linea donde dice: *elif Input.is_action_pressed("ui_left"):*
    Alguien que me pueda ayudar para solucionar este error llevo varios dias intentando en nuevos scrips y no se que estoy haciendo mal 😥😥😢

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Buenas te paso el codigillo por si te ayuda! :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @JuanRodriguez-dn1zp
    @JuanRodriguez-dn1zp ปีที่แล้ว

    Disculpen hice todos los pasos tan cual pero reemplace los Sprite con unos personales y ahora mi personaje no puede caminar salta y se intenta mover pero no se despega del piso a la hora de caminar :c ayuda

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @user-fv2hf7bv3x
    @user-fv2hf7bv3x 5 หลายเดือนก่อน

    hola, he tenido algunos problemas, cuando le doy a la derecha el personaje va mas rapido que la izquierda

    • @LuisCanary
      @LuisCanary  5 หลายเดือนก่อน

      Curioso revisa el valor de tu variable hacia un lado y otro deberia ir igual de rapido, te sale algun error?, un saludo :D

  • @kiritokazuto1340
    @kiritokazuto1340 11 หลายเดือนก่อน

    hola tengo un problema con el odigo de gravity , mi personaje se queda volando y no entiendo como solucionarlo

    • @LuisCanary
      @LuisCanary  11 หลายเดือนก่อน +1

      te sale algun error?, revisa la colision de tu mapa y del jugador, un saludo :D

  • @ezekielvalverde
    @ezekielvalverde 23 วันที่ผ่านมา

    hola necesito ayuda alguien sabe por que sale esto en la pag 19, 1 error uninden does not match any outer indentation level ,¿me ayudan please

    • @LuisCanary
      @LuisCanary  14 วันที่ผ่านมา

      Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
      Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const gravity = 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer = $AnimationPlayer
      func _physics_process(_delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.5)
      else:
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.01)
      move_and_slide()

  • @tizianogonzalez3521
    @tizianogonzalez3521 2 ปีที่แล้ว +1

    hola luis no me anda esta parte bien
    if is_on_floor():
    if Input.is_action_pressed("ui_accept"):
    motion.x = jumpHeight me sale en rojo este me ayudas
    if friction == true:
    motion.x = lerp(motion.x ,0,0,5)
    else:
    if friction== true:
    motion.x = lerp(motion.x,0,0,01)

    motion = move_and_slime(motion,up)

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Buenas te paso el codigillo que tenemos por si te ayuda!, un saludo :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @Janosoft
    @Janosoft 7 หลายเดือนก่อน

    Amé esta explicación, pero dos cositas:
    - el friction = false debería ir declarado fuera de la función así no se asigna todo el tiempo (60 veces por segundo)
    - Usar TAB y no espacio, creo que es más descente, pero bueno, hay toda una polémica sobre eso jajaja
    Abrazo y saludos desde Argentina

    • @LuisCanary
      @LuisCanary  7 หลายเดือนก่อน

      Gracias por comentarlo!, un saludo :D

  • @nameless8485
    @nameless8485 2 หลายเดือนก่อน

    No tendrás de casualidad algún vídeo para hacer los movimientos pero con la programación en C#?

    • @LuisCanary
      @LuisCanary  2 หลายเดือนก่อน

      Buenas! no para C# en godot no tengo por ahora nada pero me gustaria traerlo en el futuro, un saludo :D

  • @Shiaku_yamai
    @Shiaku_yamai ปีที่แล้ว

    ​ @LuisCanary estoy en godot pero no me deja escribir el comando onready , que puedo hacer para solusionarlo

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Ahora en nuevas versiones creo que es @onready , un saludo :D

  • @snoutberry6265
    @snoutberry6265 ปีที่แล้ว

    Hola, esque e estado viendo y en el código me sale el animation player de la línea 22 en rojo y no sé cómo arreglarlo e visto ya un par de veces el vídeo 0ero aún no lo resuelvo

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +1

      te paso el codigo por si te ayuda, un saludo :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

    • @snoutberry6265
      @snoutberry6265 ปีที่แล้ว

      @@LuisCanary muchas gracias, me ayudara bastante creo yo, si tengo algún problema yo te aviso :)

  • @eljerrygta
    @eljerrygta ปีที่แล้ว

    Porque cuando le pico al botón de right me sale que el flip_h está mal

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +1

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

    • @eljerrygta
      @eljerrygta ปีที่แล้ว

      @@LuisCanary gracias Bro :)

  • @cristianoyarce
    @cristianoyarce 9 หลายเดือนก่อน

    Tengo un error de mixed use of tabs and spaces for identation en lo de los inputs!, necesito ayuda!

    • @thomy2637
      @thomy2637 9 หลายเดือนก่อน

      este video es de un año ni a palo te va a responder y a alguien con tan poca paciencia como yo no le da esto de crear video juegos

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน

      Te paso el codigo por si te ayuda!, un saludo :D Aunque parece que en nuevas versiones pueden haber cambiado alguna cosa y que no sea del todo similar la forma de hacerlo
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = - 300
      const up= Vector2(0,-1)
      const gravity= 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer=$AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h= true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x+moveSpeed,maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h= false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x-moveSpeed,-maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction=true

      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction == true:
      velocity.x = lerp(0,0, 0)
      else:
      if friction == true:
      velocity.x = lerp(0,0,1)

      motion = move_and_slide()

  • @vernyzamorasolis9519
    @vernyzamorasolis9519 2 ปีที่แล้ว

    Hola Luis un gusto saludarte, muy buenas explicaciones, te felicito.
    Tengo una pregunta y veo q es un poco común.
    Mi personaje al darle a las teclas de mover y saltar no lo hacen aunque si hace el cambio del Sprite?
    Al revisar la consola me dice que el move_and_slide y move_and_collide no piensen estar en la funcion y no me permite que el personaje se mueva y salte.
    Cómo puedo solucionar el problema?
    Gracias

    • @vernyzamorasolis9519
      @vernyzamorasolis9519 2 ปีที่แล้ว

      Logre encontrar el problema en el script, un espacio mal escrito

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว +1

      Me alegro que se solucionara :D, la verdad que godot es bastante exquisito con los espacios y demas

  • @carlosandressanchez7963
    @carlosandressanchez7963 ปีที่แล้ว

    Hola.... tengo una duda, lo que pasa es que cuando lo hago como tú lo indicas cuando pulso la flecha izquierda el player se me mueve a la derecha, de resto los demás comandos si salen bien, y hice el código tal cual como tú lo escribiste. Muchas gracias por este tutorial es muy interesante, además que estoy estudiando programación de software, y queremos diseñar como trabajo final un videojuego..... Explicas muy bien....saludos desde Colombia!!

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +1

      Revisa en la parte de codigo del movimiento que los simbolos esten guachis y las variables tengan los valores adecuados, tambien la colision del player con el mapa, un saludo :D

  • @matii__08
    @matii__08 2 ปีที่แล้ว

    Hola Luis, una pregunta: No entiendo porque no me andan las flechas y la barra espaciadora cuando intento que el personaje se mueva y tengo todo lo escrito sin ningún error (porque no me aparece ninguno) Sabes que puede llegar a ser? Gracias. Buen video.

    • @LuisCanary
      @LuisCanary  2 ปีที่แล้ว

      Revisa el tema de mayusculas y minusculas en tu codigo, sobretodo el tema del input y que tu personaje tenga todo bien configurado, un saludo :D

  • @jhonatanbenjamin5474
    @jhonatanbenjamin5474 ปีที่แล้ว

    hola necesito ayuda esuqe mi personaje cuando muevo ala izquierda su animacion va ala derecha pero no estoy usando al slime si no otro de igual manera mi personaje se cae o traspasa el mapa que hice por favor ayuda que ya le puse colision al mapa y al personaje ayudaaa

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

    • @jhonatanbenjamin5474
      @jhonatanbenjamin5474 ปีที่แล้ว

      @@LuisCanary no era el script si no que no le metí colisión al TileMap xD pero me ayudas del personaje su movimiento por que ya no es el slime

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      Me alegro que se solucionara, y lo otro que dices aunque no sea el slime deberia funcionar el movimiento eso si, un saludo :D

  • @ALECITO_GAMES
    @ALECITO_GAMES 4 หลายเดือนก่อน

    Tengo un problema ya hizo todo el proceso ni un error sales pero al darle play sale esto attempt to call function play in base nul instance on a null instances como soluciono eso ayudame porfa bro 😢

    • @LuisCanary
      @LuisCanary  4 หลายเดือนก่อน

      Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
      Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const gravity = 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer = $AnimationPlayer
      func _physics_process(_delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.5)
      else:
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.01)
      move_and_slide()

  • @patagonia4kvideodrone91
    @patagonia4kvideodrone91 2 หลายเดือนก่อน

    te hago una consulta. @luiscanary estoy con la misma version y todo siguiendo el tutorial pero me ocurre que hacia la derecha tiende a ir mas rapido tanto caminando como saltando, lo mire por todos lados y no le encuentro la vuelta que podra ser?¿?¿¿?¿

    • @LuisCanary
      @LuisCanary  2 หลายเดือนก่อน +1

      Ui que raro jajaja, quiza algun simbolo de mas que tengas puesto, porque errores no te salen no?, un saludo :D

    • @patagonia4kvideodrone91
      @patagonia4kvideodrone91 หลายเดือนก่อน +1

      @@LuisCanary nono era como que estaba todo igual, pero a la derecha siempre caminaba mas o si saltaba hacia super saltos, era bastante extraño, pero se volvia injugable, finalmente lo resolví aunque no se si con gemini, o gpt4, porque pregunte en los dos y una solución no me andaba, pero no me acuerdo en cual, que me decía que el problema era por el delta, y me mostro como agregarlo para que no ocurra mas, y en efecto luego ya no me paso mas, ahora anda bien, ya al menos pude armar varias escenas para mi juego sin problemas, (luego si puedo buscare el codigo y lo compartire, x aqui, ahora no esoy en casa), algo que estuve haciendo también, es que creo los sprites con inteligencia artificial (comfyui), me arme un workflow bastante lindo, luego los animo, a un mp4, y si la animación me sirve porque es imposible de saber antes, pero si me sirve, tomo el mp4 entonces animado, (que si la figura esta estática, hace como la animación idle, o si hago muchas animaciones en alguna camina o parece saltar, o sirven para ello los frames, entonces me hice un programa en purebasic que le extrae los frames al video, y me arma la plantilla del tileset, tambien le agregue que me cree ya el formato del objeto animado con el codigo de godot,de la animacion, asi no tengo que agregar cada vez, los frames animados uno a uno, entonces si creo variaciones del personaje principal, ya con arrastrar los archivos queda listo, y me hice otro programita mas que luego le agrega el alpha. para que tengan la transparencia, y ahi ya al menos va quedando mucho mejor! en una tarde me hice como 100 personajes. sino me pasaba que los sprites eran todos cuadrados basicamente, si creaba un solo objeto por ahi quedaba el alpha bien, pero al animarlo chau, (vere luego si puedo armar alguna herramienta para hacerlo automatico, ya que a mucha gente me imagino que si dibuja los sprites les pasara eso, aunque bueno lo de filtrarlos y retocar algunas cosas aveces es inevitable, porque tambien me pasaba que si lo retocaba en paint, al guardar perdia la transparencia, pero bueno ahi le volvia a pasar mi programita y volvia a agregar el alpha, seria bueno ver en photoshop o gimp si ahi se puede hacer eso, aunque la verdad en ese sentido los he usado pero poco y nada. lo mismo los fondos he creado varios con inteligencia artificial y muy lindos, aunquejusto el tema de mi juego parece no existir, tengo como 1tb en checkpoints y ninguno los generaba.

  • @rafalongo7
    @rafalongo7 4 หลายเดือนก่อน

    no explicaste como se selecciona el sprite especifico que quieras para la animacion, ahi parece que se elije automaticamente el que el programa quiera...

    • @LuisCanary
      @LuisCanary  4 หลายเดือนก่อน

      Buenas! a que momento te refieres?, depende un poco del sprite que elige de base el comienzo pero se puede cambiar, un saludo :D

  • @cindycastillo3125
    @cindycastillo3125 ปีที่แล้ว +1

    Hola! disculpa cuando le doy en reproducir escena mi personaje traspasa los bloques del mapa y se cae alguna recomendación?

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว +1

      Revisa la colision de mapa y del player seguramente sea por eso, un saludo :D

  • @OmarxD2229
    @OmarxD2229 5 หลายเดือนก่อน +1

    Ayuda cuando puse el elif imput.is_actionprossed('ui_left'): siempre me sale rojo y dice que el problema es elif ¿que puedo hacer en mi caso?

    • @macarenarios3969
      @macarenarios3969 5 หลายเดือนก่อน +1

      A mi también :(, ¿lo pudiste resolver?

    • @LuisCanary
      @LuisCanary  5 หลายเดือนก่อน +1

      Para los que useis la version 4 aqui teneis el codigo, cambios importantes con respecto al video -> primero el motion es porque actualmente velocity es un Vector2D, el move_and_slide esta solo porque ya no necesita un argumento adicional, tambien se cambio el KinematicBody2D por el CharacterBody2D ya que se cambio el nombre en la nueva version, luego el lerp le ponemos velocity.x = lerp(velocity.x, 0.0, 0.5) ya que ahora necesita un float, y por ultimo ponemos func _physics_process(_delta):
      Espero que asi no tengais errorcillos para aquellos y aquellas que useis la version 4 en adelante, un saludo :D Gracias a @enriqueprol3390
      extends CharacterBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const gravity = 15
      @onready var sprite = $Sprite2D
      @onready var animationPlayer = $AnimationPlayer
      func _physics_process(_delta):
      velocity.y += gravity
      var friction = false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      velocity.x = min(velocity.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      velocity.x = max(velocity.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      velocity.y = jumpHeight
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.5)
      else:
      if friction:
      velocity.x = lerp(velocity.x, 0.0, 0.01)
      move_and_slide()

    • @musicSRO
      @musicSRO 4 หลายเดือนก่อน

      ​@@LuisCanary yo tengo godot 3.5.3 y me pasa tambien :(
      Ese codigo tambien me sirve??

    • @LuisCanary
      @LuisCanary  4 หลายเดือนก่อน +1

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);

  • @mr.condekua6141
    @mr.condekua6141 ปีที่แล้ว

    Hola Luis! No llego a comprender por qué se usan numeros negativos para velocidades que van hacia arriba y viceversa

    • @LuisCanary
      @LuisCanary  ปีที่แล้ว

      En un eje de coordenadas si estas por asi decirlo en el centro estas en (0,0) si es 2D si vas a la izquierda o abajo se representa con valores negativos y si vas arriba o a la derecha es valores positivos, es una manera de saber tu posicion de una manera mas o menos sencillita, para las velocidades seria similar lo que implica es hacia donde quieres ir si es en el eje y negativo es para abajo por ejemplo, un saludo :D

  • @juanpablogomez2791
    @juanpablogomez2791 9 หลายเดือนก่อน

    Buenas Luis, te tengo una consulta:
    Hago el script literalmente como vos haces en el video y me sale un error:
    Script Inherits from native type 'Kinematic Body2D', so it can't be instanced in object of type: 'Sprite'
    Eso es lo que me sale en rojo afuera del script y no me deja darle al play para probarlo
    (Tengo la misma versión que vos del godot 3.4)

    • @LuisCanary
      @LuisCanary  9 หลายเดือนก่อน

      Buenas!, te paso el codigo por si te ayuda :D
      extends KinematicBody2D
      const moveSpeed = 25
      const maxSpeed = 50
      const jumpHeight = -300
      const up = Vector2(0,-1)
      const gravity = 15
      onready var sprite = $Sprite
      onready var animationPlayer = $AnimationPlayer
      var motion = Vector2()
      func _physics_process(delta):
      motion.y +=gravity
      var friction=false
      if Input.is_action_pressed("ui_right"):
      sprite.flip_h = true
      animationPlayer.play("Walk")
      motion.x = min(motion.x + moveSpeed, maxSpeed)
      elif Input.is_action_pressed("ui_left"):
      sprite.flip_h = false
      animationPlayer.play("Walk")
      motion.x = max(motion.x - moveSpeed, -maxSpeed)
      else:
      animationPlayer.play("Idle")
      friction = true
      if is_on_floor():
      if Input.is_action_pressed("ui_accept"):
      motion.y = jumpHeight
      if friction ==true:
      motion.x = lerp(motion.x,0,0.5)
      else:
      if friction ==true:
      motion.x=lerp(motion.x,0,0.01)
      motion = move_and_slide(motion,up);