CursosEmpresasBlogLiveConfPrecios
Taller de Godot: Crear un Videojuego Shoot’em Up

Creando el personaje principal

Taller de Godot: Crear un Videojuego Shoot’em Up

Contenido del curso

Conociendo Godot

  • 1
    Presentación del curso

    Presentación del curso

    02:39 min
  • 2
    Juega Arkanet

    Juega Arkanet

    00:01 min
  • 3
    Tus primeros pasos con Godot

    Tus primeros pasos con Godot

    06:53 min

Personaje principal

  • 4
    Las físicas y los elementos en Godot

    Las físicas y los elementos en Godot

    09:26 min
  • 5
    Creando el personaje principal

    Creando el personaje principal

    Viendo ahora
  • 6
    Animaciones

    Animaciones

    15:24 min
  • 7
    ¿Cómo es trabajar en un equipo para desarrollar videojuegos?

    ¿Cómo es trabajar en un equipo para desarrollar videojuegos?

    04:12 min

Creando enemigos

  • 8
    Creando tu primer enemigo

    Creando tu primer enemigo

    12:13 min
  • 9
    Movimiento dirigido al jugador

    Movimiento dirigido al jugador

    10:45 min

Ataques

  • 10
    Creando el disparo

    Creando el disparo

    13:15 min
  • 11
    Colisiones

    Colisiones

    11:20 min
  • 12
    Cuando el jugador recibe daño

    Cuando el jugador recibe daño

    10:51 min
  • 13
    Usando singletons

    Usando singletons

    07:12 min
  • 14
    Creando PowerUp

    Creando PowerUp

    09:53 min
  • 15
    ¿Cómo enfrentar la frustración al programar?

    ¿Cómo enfrentar la frustración al programar?

    03:18 min

Escenario

  • 16
    Creando un fondo en loop

    Creando un fondo en loop

    11:00 min
  • 17
    Optimizando movimientos y memoria

    Optimizando movimientos y memoria

    11:20 min
  • 18
    Creando el HUD

    Creando el HUD

    16:42 min
  • 19
    TileMap

    TileMap

    11:54 min
  • 20
    Cinemática de la meta

    Cinemática de la meta

    17:45 min
  • 21
    Diseñando nuestro primer nivel

    Diseñando nuestro primer nivel

    13:00 min
  • 22
    Diseño de otros niveles

    Diseño de otros niveles

    03:32 min
  • 23
    Asignando SFX y música del juego

    Asignando SFX y música del juego

    12:02 min
  • 24
    Consejos para crear niveles y escenarios

    Consejos para crear niveles y escenarios

    03:01 min

Finalizando el proyecto

  • 25
    Creando pantalla principal

    Creando pantalla principal

    09:36 min
  • 26
    Exportar tu juego

    Exportar tu juego

    09:03 min
  • 27
    Comparte tu videojuego con la comunidad

    Comparte tu videojuego con la comunidad

    01:05 min
Tomar examen

Creando el personaje principal

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

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
  • Tyc promociones
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

      Comentarios12

      Alejandro Suarez Gonzalez

      Alejandro Suarez Gonzalez

      Estudiante
      Hace 3 años
        Edgar RODRIGUEZ

        Edgar RODRIGUEZ

        Estudiante
        Hace 3 años
      Lisandro Aldana Rojas

      Lisandro Aldana Rojas

      Estudiante
      Hace 4 años
        Cristian Ramanzin

        Cristian Ramanzin

        Profesor
        Hace 4 años
      Hiram Neftali Herrejon Montaño

      Hiram Neftali Herrejon Montaño

      Estudiante
      Hace 3 años
      Bruno Ignacio Cardemil Sepúlveda

      Bruno Ignacio Cardemil Sepúlveda

      Estudiante
      Hace un año
        Samuel Escobar

        Samuel Escobar

        Estudiante
        Hace 10 meses
        Jesús García

        Jesús García

        Estudiante
        Hace 9 meses
      Esteban Rivadeneira

      Esteban Rivadeneira

      Estudiante
      Hace 3 años
      Bruno Ignacio Cardemil Sepúlveda

      Bruno Ignacio Cardemil Sepúlveda

      Estudiante
      Hace un año
      Carlos Rosano

      Carlos Rosano

      Estudiante
      Hace 3 años
      Gabriel Zuluaga

      Gabriel Zuluaga

      Estudiante
      Hace 4 años
        Cristian Ramanzin

        Cristian Ramanzin

        Profesor
        Hace 4 años
        Gabriel Zuluaga

        Gabriel Zuluaga

        Estudiante
        Hace 4 años
      Matías Diego Balcázar Ureña

      Matías Diego Balcázar Ureña

      Estudiante
      Hace 4 años
        Cristian Ramanzin

        Cristian Ramanzin

        Profesor
        Hace 4 años
        Matías Diego Balcázar Ureña

        Matías Diego Balcázar Ureña

        Estudiante
        Hace 4 años
      Oscar david Guerra hernandez

      Oscar david Guerra hernandez

      Estudiante
      Hace 3 años
      Willy Andres Diaz

      Willy Andres Diaz

      Estudiante
      Hace 3 años
      Neo TRAN

      Neo TRAN

      Estudiante
      Hace 2 años

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

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

      Gracias

      aqui va mi codigo y me salio perfectamente el personaje :)

      Captura.PNG

      Ese código se ve muy bien. 🙌

      Yo utilizo godot 4 aqui les dejo el codigo que hice en mi caso lo que use fue move_and_collide pero pueden usar slide, si usan collide deben de multiplicar * delta de su parentesis ya que slide ya lo hace por defecto

      extends CharacterBody2D @export var velocidad = 600 var movimiento = Vector2(0,0) func get_inputs(): movimiento = Vector2() if Input.is_action_pressed("move_right"): movimiento.x += velocidad if Input.is_action_pressed("move_left"): movimiento.x -= velocidad if Input.is_action_pressed("move_up"): movimiento.y -= velocidad if Input.is_action_pressed("move_down"): movimiento.y += velocidad func _physics_process(_delta): get_inputs() movimiento = move_and_collide(movimiento * _delta) ```extends CharacterBody2D @export var velocidad = 600  var movimiento = Vector2(0,0) func get\_inputs(): 	movimiento = Vector2() 	if Input.is\_action\_pressed("move\_right"): 	 movimiento.x += velocidad 	if Input.is\_action\_pressed("move\_left"): 	 movimiento.x -= velocidad 	if Input.is\_action\_pressed("move\_up"): 	 movimiento.y -= velocidad 	if Input.is\_action\_pressed("move\_down"): 	 movimiento.y += velocidad 	 func \_physics\_process(\_delta): 	get\_inputs() 	movimiento = move\_and\_collide(movimiento \* \_delta)
      extends CharacterBody2D @export var velocidad:int = 600 func get_inputs(): velocity = Vector2.ZERO if Input.is_action_pressed("move_right"): velocity.x += velocidad if Input.is_action_pressed("move_left"): velocity.x -= velocidad if Input.is_action_pressed("move_up"): velocity.y -= velocidad if Input.is_action_pressed("move_down"): velocity.y += velocidad func _physics_process(_delta: float) -> void: get_inputs() move_and_slide()

      Gracias, me sirvió

      Excelente, muchas gracias

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

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

      Para Godot 4

      extends CharacterBody2D @export var velocidad:int = 600 func get_inputs(): velocity = Vector2.ZERO if Input.is_action_pressed("move_right"): velocity.x += velocidad if Input.is_action_pressed("move_left"): velocity.x -= velocidad if Input.is_action_pressed("move_up"): velocity.y -= velocidad if Input.is_action_pressed("move_down"): velocity.y += velocidad func _physics_process(_delta: float) -> void: get_inputs() move_and_slide()

      Buenas, estoy usando godot4.0.1 que es la version actual y mi barco no se mueve, este es el codigo

      <extends CharacterBody2D @export var velocidad = 600 var movimiento = Vector2(0,0) func get_inputs(): movimiento = Vector2() if Input.is_action_pressed("move_right"): movimiento.x += velocidad if Input.is_action_pressed("move_left"): movimiento.x -= velocidad if Input.is_action_pressed("move_up"): movimiento.y -= velocidad if Input.is_action_pressed("move_down"): movimiento.y += velocidad func _physics_process(delta): get_inputs() movimiento = move_and_slide()>

      tengo una cuestion y es que instale la version de godot 3.5.1 y al hacer el script en la parte de movimiento = Vector2() (en la linea 8)

      error platzi.PNG

      ¡Hola, Gabriel! El problema es la edentación, por cada línea nueva tiene que tener un "TAB". Por lo que se ve en el screen está todo el código pegado a la izquierda.

      si me sirvió gracias

      ¿No sería mejor crear en un nodo aparte a nuestro personaje y luego instanciarlo como hijo de nuestra escena principal?

      ¡Hola, Matías! ¿Te referís a hacerlo como una escena aparte? Eso lo hacemos más adelante. 😁

      Si me refería a eso, gracias. 😅

      profe ami me paso un error extraño le programe todo pero la nave no se quiere mover que hago?

      Hola estoy trabajando con godot 4.0.1, este es mi código, pero cuando intento probarlo el nodo personaje no se mueve y luego se cierra el programa.

      extends CharacterBody2D

      var velocidad = 500 var movimiento = Vector2(0,0) func get_inputs(): movimiento = Vector2() if Input.is_action_pressed("move right"): movimiento.x += velocidad if Input.is_action_pressed("move left"): movimiento.x -= velocidad if Input.is_action_pressed("move up"): movimiento.y -= velocidad if Input.is_action_pressed("move down"): movimiento.y += velocidad

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

      Godot tiene dos versiones, estaré haciendo este curso con C# y con GDScript, por si a alguno le interesa o contribuir a lo que vaya cocando

      De momento el código del movimiento del jugador quedaría de la siguiente forma

      Versión C#using Godot; using System;

      public partial class ``Player`` : CharacterBody2D { ``[Export] public float Speed = 600f; ``private void GetAxisInputs() ``{ ``Velocity = new ``Vector2``( ``Input.GetAxis("move_left", "move_right") * Speed, ``Input.GetAxis("move_up", "move_down") * Speed ``); ``} ``public override void _PhysicsProcess(double delta) ``{ ``GetAxisInputs(); ``MoveAndSlide(); ``} } ```Versión GDScript ```js extends ``CharacterBody2D

      @export var speed = 600

      func _get_axis_inputs() -> void: velocity.x = Input.get_axis("move_left", "move_right") * speed velocity.y = Input.get_axis("move_up", "move_down") * speed func _physics_process(_delta): ``_get_axis_inputs() ``move_and_slide()

      using Godot; using System; public partial class Player : CharacterBody2D { [Export] public float Speed = 600f; private void GetAxisInputs() { Velocity = new Vector2( Input.GetAxis("move_left", "move_right") * Speed, Input.GetAxis("move_up", "move_down") * Speed ); } public override void _PhysicsProcess(double delta) { GetAxisInputs(); MoveAndSlide(); } } ```Versión GDScript ```js extends CharacterBody2D @export var speed = 600 func _get_axis_inputs() -> void: velocity.x = Input.get_axis("move_left", "move_right") * speed velocity.y = Input.get_axis("move_up", "move_down") * speed func _physics_process(_delta): _get_axis_inputs() move_and_slide() ```extends CharacterBody2D @export var speed = 600&#x20; func \_get\_axis\_inputs() -> void: &#x9;velocity.x = Input.get\_axis("move\_left", "move\_right") \* speed &#x9;velocity.y = Input.get\_axis("move\_up", "move\_down") \* speed &#x9; func \_physics\_process(\_delta): &#x9;\_get\_axis\_inputs() &#x9;move\_and\_slide()