CursosEmpresasBlogLiveConfPrecios

Creando el disparo

Clase 10 de 28 • Taller de Godot: Crear un Videojuego Shoot’em Up

Clase anteriorSiguiente clase
    Juan José Arcila Valderrama

    Juan José Arcila Valderrama

    student•
    hace 2 años

    En Godot 4.2.1

    • Position2D ahora es Marker2D
    • .instance() ahora es .instantiate()

    Y esta es mi solución a las balas para que no sigan al jugador

    Hay que tener en cuenta que donde dice $DisparoPos, .position cambia a .global_position

    Hay que recordad que los nodos hijos heredan los atributos de sus padres, por eso antes las balas persiguen al jugador, así que si se instancian como hermanos en vez de como hijos, se soluciona el problem.

    Aunque que las balas sigan al jugador podría ser un power up interesante :)

    Yoshua Diaz

    Yoshua Diaz

    student•
    hace 3 años

    Lo resolví creando la bala como hija del nivel, no del nodo personaje

    func disparo(): if cooldown == true: cooldown = false $Timer.start() var instanciaDisparo = Disparo.instance() instanciaDisparo.position = $DisparoPos.global_position get_tree().root.get_children()[0].add_child(instanciaDisparo)
      Matías Diego Balcázar Ureña

      Matías Diego Balcázar Ureña

      student•
      hace 3 años

      LO RESOLVIMOS

      maxresdefault.jpg

      Jose Antonio Sifontes V

      Jose Antonio Sifontes V

      student•
      hace 2 años

      Una manera ligeramente más compacta de hacerlo es añadir la bala como nodo hermano del personaje (que en este caso es funcionalmente lo mismo):

      add_sibling(instanciaDisparo)

      en lugar de

      get_tree().root.get_children()[0].add_child(instanciaDisparo)

    DANIEL SANTIAGO MOLINA IBAÑEZ

    DANIEL SANTIAGO MOLINA IBAÑEZ

    student•
    hace 2 años

    en godot 4 ahora position2d se llama marker2d

    Jonathan Osorio

    Jonathan Osorio

    student•
    hace un mes

    Hasta el momento voy bien con el juego, con algunas dificultades por las diferencias entre versiones pero se han ido solucionado con paciencia. Ahora debo resolver por que los disparos me salen como diagonal, jajajajaja, en cuanto lo solucione continuare. Pero en general va excelente el curso :D

    Jesús García

    Jesús García

    student•
    hace 2 meses
    •
    editado

    En la versión 4.5, ya no sale la opción MODE, por que se necesita activar la opción lock_rotation. Lo que si me pasa es que se echa un poco hacia atrás el personaje cuando disparo, no he checado que me hace falta configurar o agregar. Dejo el código que use.

    extends CharacterBody2D @export var velocidad:int = 600 @onready var disparo = preload("res://Scenes/Disparo.tscn") @onready var playback = $AnimationTree.get("parameters/playback") var cooldown = true func get_inputs(): velocity = Vector2.ZERO if Input.is_action_pressed("move_up"): velocity.y -= velocidad if Input.is_action_pressed("move_down"): velocity.y += velocidad if Input.is_action_pressed("move_right"): velocity.x += velocidad playback.travel("move_right") if Input.is_action_pressed("move_left"): velocity.x -= velocidad playback.travel("move_left") if Input.is_action_pressed("attack"): disparo_func() if velocity == Vector2.ZERO: playback.start("RESET") func disparo_func(): if cooldown: cooldown = false $Timer.start() var instancia_disparo = disparo.instantiate() instancia_disparo.position = $DisparoPos.position add_child(instancia_disparo) func _physics_process(delta: float) -> void: get_inputs() move_and_slide() func _on_timer_timeout() -> void: cooldown = true pass # Replace with function body.
      Tulio Junior Rangel Nuñez

      Tulio Junior Rangel Nuñez

      student•
      hace 10 días

      No sé si ya diste con el error, tuve el mismo caso, es porque la posición del disparo está muy cerca del barco, toca o reducir el collisionShape de la bala o alejar un poco la posición de donde sale la esta para que no choque con el barco

      Jesús García

      Jesús García

      student•
      hace 3 días

      Tulio gracias, cheque lo que comentas y ya no me dio ese problema, lo vi por qué cuando se hace daño y quita barra de vida me pegaba solo. moví la animación de la bala y lo demás.

Escuelas

  • Desarrollo Web
  • English Academy
  • Marketing Digital
  • Inteligencia Artificial y Data Science
  • Ciberseguridad
  • Liderazgo y Habilidades Blandas
  • Diseño de Producto y UX
  • Contenido Audiovisual
  • Desarrollo Móvil
  • Diseño Gráfico y Arte Digital
  • Programación
  • Negocios
  • Blockchain y Web3
  • Recursos Humanos
  • Finanzas e Inversiones
  • Startups
  • Cloud Computing y DevOps

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads