Godot, scripts para Godot estudios y aprendizajes, Creacion de videojuegos. Creacion y publicacion de videojuegos en internet. Como hacer videojuegos. C# unity. Animaciones unity blender. Personajes videojuegos graficos dibujos. Diseño grafico. Comic. Animaciones gif. Dibujo de retratos. Realidad virtual. Cine y realidad virtual.
viernes, 15 de agosto de 2025
¡¡El pirata marchoso!!;
GDScript que produce disparo de un proyectil y que mantiene su curso independientemente de si giramos el cañon;
extends Area3D
var Bullet = preload("res://BARCO ELEMENTOS TEXTURAS/CAÑONES/area_3dprollectil_cañon.tscn")
var fire_cooldown: float = 1.7
var can_fire: bool = true
var bullet_speed: float = 20.0
var fire_timer: Timer
func _ready() -> void:
fire_timer = Timer.new()
add_child(fire_timer)
fire_timer.wait_time = fire_cooldown
fire_timer.one_shot = true
fire_timer.timeout.connect(func(): can_fire = true)
func _process(delta: float) -> void:
if Input.is_action_pressed("DISPARACAÑON") and can_fire:
can_fire = false
instantiate_bullet()
fire_timer.start()
func instantiate_bullet() -> void:
var bullet = Bullet.instantiate()
bullet.global_transform = self.global_transform
# Comprobamos que el nodo es un RigidBody3D antes de aplicar el impulso.
if bullet is RigidBody3D:
bullet.apply_central_impulse(-self.global_transform.basis.z * bullet_speed)
else:
print("¡Error! La escena del proyectil no es un RigidBody3D y no puede recibir un impulso.")
get_tree().root.add_child(bullet)
------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
Explicacion: este Area3d que produce el disparo de un proyectil es hijo de una base que gira presionando las teclas -z-x, tenia el problema que cuando giraba el cañon el proyectil disparado tambien giraba como si formase parte del mismo giro del cañon y este GDScript corrige el problema, asi cuando disparo el proyectil sigue su curso en linea recta y en la direccion hacia donde realice el disparo y no se desvia por muchos giros que aga despues de realizado el disparo.
"DISPARACAÑON" es el nombre asociado ala tecla-c- que realiza el disparo, se dice mapa de entrada y se prepara antes de realizar cualquier GDScript, y se puede aprovechar para futuros juegos, se pueden aprovechar todos los recursos anteriores de los mapas de entrada para futuros juegos sin tener que partir de cero continuamente.
GDScript para que un MeshInstance3D gire en su eje -y- presionando teclas del pc -z-x-;
extends MeshInstance3D
# Velocidad de rotación en radianes por segundo.
@export var rotation_speed: float = 1.0
func _process(delta: float) -> void:
# Por defecto, la dirección de rotación es 0 (está quieto).
var rotation_direction: float = 0.0
# Si se presiona la acción "giraz", gira en una dirección.
if Input.is_action_pressed("giraz"):
rotation_direction = 1.0
# Si se presiona la acción "girax", gira en la dirección opuesta.
elif Input.is_action_pressed("girax"):
rotation_direction = -1.0
# Aplica la rotación en el eje Y.
# Si ninguna tecla está presionada, rotation_direction será 0 y el objeto no girará.
rotate_y(rotation_speed * rotation_direction * delta)
--------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
Explicacion: en mi nuevo videojuego de piratas y bucaneros e puesto unos cañones a bordo que mediante la presion de las teclas -z-x- hacen un giro de lado a lado en su eje -y-, en Godot asigne esas teclas en su mapa de entrada con los nombres "giraz" y "girax" este gdscript cumple mi deseo a la perfeccion,.
Estudio de un desarrollador indie;
¡¡QUE LOCURA!!