sábado, 31 de agosto de 2024

GDScript diversos movimientos para con mouse y su rueda y sus botones y para teclas del pc; muevo una camara a capricho;

 extends MeshInstance3D


var is_rotating = false

var is_rotating2 = false

var is_rotating3 = false

var is_rotating4 = false


var speed = 11  # Adjust the speed as needed

var delta = 0.009

var delta2 = 0.009

var delta3 = 0.009

var delta4 = 0.0002

var delta5 = 0.0002

var delta6 = 0.09

var delta7 = 0.09



func _input(event):

if event is InputEventMouseButton:

if event.pressed and event.button_index == 1:

is_rotating = true

else:

is_rotating = false


if event.pressed and event.button_index == 2:

is_rotating2 = true

else:

is_rotating2 = false


if event.pressed and event.button_index == 3:

is_rotating3 = true

else:

is_rotating3 = false


if event.button_index == 3 and not event.pressed:

is_rotating4 = true

else:

is_rotating4 = false

if event.pressed and event.is_action("mouse_rueda_arriba"):

rotate_x(-0.04)

translate(Vector3( 0, -speed * delta6,0))  # Move forward

#translate(Vector3(0, 0, speed * delta))  # Move forward

if event.pressed and event.is_action("mouse_rueda_avajo"):

rotate_x(0.04)

translate(Vector3( 0, speed * delta7,0))  # Move forward

#translate(Vector3( 0, 0,-speed * delta))  # Move forward


if event is InputEventKey:

#if event.pressed and event.scancode == KEY_P:

if event.pressed and event.is_action("GRUADIRECCIONDERECHA-I-"):

translate(Vector3(-speed * delta, 0, 0))  # Move forward


if event.pressed and event.is_action("GRUADIRECCIONIZQUIERDA-U-"):

translate(Vector3(speed * delta2, 0, 0))  # Move forward

if event.pressed and event.is_action("GRUADIRECCIONALANTE-J-"):

translate(Vector3( 0, 0, speed * delta))  # Move forward


if event.pressed and event.is_action("GRUADIRECCIONATRAS-K-"):

translate(Vector3( 0, 0, -speed * delta))  # Move forward

if event.pressed and event.is_action("GRUADIRECCIONARRIBA-O-"):

translate(Vector3( 0, speed * delta5,0))  # Move forward

if event.pressed and event.is_action("GRUADIRECCIONABAJO-P-"):

translate(Vector3( 0, -speed * delta5,0))  # Move forward

if event.pressed and event.is_action("OOPARAINCLINACIONIZQUIERDA"):

rotate_z(0.04)


if event.pressed and event.is_action("PPPARAINCLINACIONDERECHA"):

rotate_z(-0.04)




func _process(delta: float) -> void:

if is_rotating:

rotate_y(0.009)


if is_rotating2:

rotate_y(-0.009)


if is_rotating3:

rotate_x(-0.0009)


if is_rotating4:

rotate_x(0.0009)


-------------------------------------------------------------------------------------------------------------------------

EXPLICACION:  

MOVER NIÑO -"W"-"A"-"S"-"D" --- "BOTON DEL RATON IZQUIERDO"-¡¡NIÑO MUERDE!!  Y GIRA IZQUIERDA CAMARA ,"BOTON DERECHO"¡¡NIÑO MUERDE!!  Y  GIRA DERECHA CAMARA ,


"RUEDA DEL RATON"  HACERCA ALEJA CAMARA.

 MOVER LA CAMARA -"U"-"I"-"J"-"K"-

 INCLINACION DE CAMARA-"O"-"P"



El script hace todos estos movimientos para mover un MeshInstance3D que contiene una camara, excepto los del texto de color azul que funcionan en otro script que mueve un CharacterBody3D este mueve al player y el player contiene el MeshInstance3D que contiene una camara,

CharacterBody3D es el padre y este un hijo el MeshInstance3D que contiene una camara,

viernes, 30 de agosto de 2024

GDScript activa una animacion con boton izquierdo del raton y tambien con el derecho;

 extends Node3D


var animacion_actual = "Default simplifiedAction"


func _ready() -> void:

# Reproduce la animación principal en bucle

$AnimationPlayer.play("Default simplifiedAction", -1)


func _input(event):

if event is InputEventMouseButton:

if event.pressed and event.button_index == 1:

# Pausa la animación principal y encola la secundaria

$AnimationPlayer.stop()

$AnimationPlayer.play("Default simplified|INFLACABEZA")


elif event.button_index == 1 and not event.pressed:

# Reanuda la animación principal

$AnimationPlayer.play("Default simplifiedAction", -1)






if event.pressed and event.button_index == 2:

# Pausa la animación principal y encola la secundaria

$AnimationPlayer.stop()

$AnimationPlayer.play("Default simplified|INFLACABEZA")


elif event.button_index == 1 and not event.pressed:

# Reanuda la animación principal

$AnimationPlayer.play("Default simplifiedAction", -1)

GDScript dispara y ataca tanto con boton izquierdo del raton como con el derecho;

 extends Area3D


var Bullet = preload("res://PERSONAJES/CAVEZA NIÑO MONSTRUO ATACANDO/caveza_ataca.tscn")

# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

pass




func _input(event):


if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :


var bullet = Bullet.instantiate()



add_child(bullet)




if event is InputEventMouseButton:




if event.button_index == 2 and event.pressed :


var bullet = Bullet.instantiate()



add_child(bullet)

miércoles, 28 de agosto de 2024

GDScript, movimientos y giros por mouse y teclado, presion de teclas de botones del mouse y de rotacion de su rueda;

 extends MeshInstance3D


var is_rotating = false

var is_rotating2 = false

var is_rotating3 = false

var is_rotating4 = false


var speed = 11  # Adjust the speed as needed

var delta = 0.009

var delta2 = 0.009

var delta3 = 0.009

var delta4 = 0.0002

var delta5 = 0.0002

var delta6 = 0.19

var delta7 = 0.19



func _input(event):

if event is InputEventMouseButton:

if event.pressed and event.button_index == 1:

is_rotating = true

else:

is_rotating = false


if event.pressed and event.button_index == 2:

is_rotating2 = true

else:

is_rotating2 = false


if event.pressed and event.button_index == 3:

is_rotating3 = true

else:

is_rotating3 = false


if event.button_index == 3 and not event.pressed:

is_rotating4 = true

else:

is_rotating4 = false

if event.pressed and event.is_action("mouse_rueda_arriba"):

translate(Vector3( 0, -speed * delta6,0))  # Move forward

if event.pressed and event.is_action("mouse_rueda_avajo"):

translate(Vector3( 0, speed * delta7,0))  # Move forward


if event is InputEventKey:

#if event.pressed and event.scancode == KEY_P:

if event.pressed and event.is_action("GRUADIRECCIONDERECHA-I-"):

translate(Vector3(-speed * delta, 0, 0))  # Move forward


if event.pressed and event.is_action("GRUADIRECCIONIZQUIERDA-U-"):

translate(Vector3(speed * delta2, 0, 0))  # Move forward

if event.pressed and event.is_action("GRUADIRECCIONALANTE-J-"):

translate(Vector3( 0, 0, speed * delta))  # Move forward


if event.pressed and event.is_action("GRUADIRECCIONATRAS-K-"):

translate(Vector3( 0, 0, -speed * delta))  # Move forward

if event.pressed and event.is_action("GRUADIRECCIONARRIBA-O-"):

translate(Vector3( 0, speed * delta5,0))  # Move forward

if event.pressed and event.is_action("GRUADIRECCIONABAJO-P-"):

translate(Vector3( 0, -speed * delta5,0))  # Move forward



func _process(delta: float) -> void:

if is_rotating:

rotate_y(0.0009)


if is_rotating2:

rotate_y(-0.0009)


if is_rotating3:

rotate_x(-0.0009)


if is_rotating4:

rotate_x(0.0009)

martes, 27 de agosto de 2024

Un personaje camina y al presionar boton del mouse hace otra animacion mientras esta presionado, al soltar sigue la de caminar;

 extends Node3D


var animacion_actual = "Default simplifiedAction"


func _ready() -> void:

# Reproduce la animación principal en bucle

$AnimationPlayer.play("Default simplifiedAction", -1)


func _input(event):

if event is InputEventMouseButton:

if event.pressed and event.button_index == 1:

# Pausa la animación principal y encola la secundaria

$AnimationPlayer.stop()

$AnimationPlayer.play("Default simplified|INFLACABEZA")


elif event.button_index == 1 and not event.pressed:

# Reanuda la animación principal

$AnimationPlayer.play("Default simplifiedAction", -1)


----------------------------------------------------------------------------------------------------------------------

----------------------ejemplo 2ª------------------- en este hace otras animacion despues de la primera aunque no lo practique la de arriba si que funciona en Godot4.3---------( ACLARACION LA ANIMACION DE CAMINAR A DE ESTAR EN MODO LOOP DESDE DONDE MANIPULAMOS LAS ANIMACIONES EN EL SCRIPT NO ESTA REFLEJADO)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




extends Node3D


func _ready() -> void:

    $AnimationPlayer.play("Default simplifiedAction", -1)


func _input(event):

    if event is InputEventMouseButton:

        if event.pressed and event.button_index == 1:

            # Pausa la animación principal y encola la secundaria

            $AnimationPlayer.stop()

            $AnimationPlayer.queue("Default simplified|INFLACABEZA")

            $AnimationPlayer.queue("OtraAnimacion")  # Se reproducirá después de la anterior

domingo, 25 de agosto de 2024

Para instanciar un proyectil con Godot 4.3 script GDScript, al presionar boton izquierdo del raton;

 extends Area3D


var Bullet = preload("res://PERSONAJES/CAVEZA NIÑO MONSTRUO ATACANDO/caveza_ataca.tscn")

# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

pass




func _input(event):


if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :


var bullet = Bullet.instantiate()



add_child(bullet)

Para godot 4.3 GDScript ejecuta animacion, hace rotaciones en ejes "y""z""x", tambien borra el nodo a los 2:50 segundos;

 extends Node3D


# Time elapsed since the node entered the scene

var time_elapsed = 0.0


# Called when the node enters the scene tree for the first time.

func _ready() -> void:

$AnimationPlayer.play("Default simplified|ATACA")


func _process(delta: float) -> void:

rotate_y(0.02)

rotate_x(0.0018)

rotate_z(0.0018)

# Update elapsed time

time_elapsed += delta


# Queue free the node after 2 seconds

if time_elapsed >= 2.50:

queue_free()