lunes, 14 de septiembre de 2026

Videojuego de humor terror surrealista; And he lost his mind.;


Juega desde la web o descargatelo para windows o para linux.  Recomendado se juega mas fluido.

Paso un GDScript muy curioso es el que hace la musica del juego......


extends Node

@export_group("Ritmo Discoteca")
## Velocidad clásica de Disco (entre 115 y 128 BPM)
@export_range(90.0, 150.0, 1.0) var bpm: float = 122.0
@export_range(0.0, 1.0, 0.05) var volumen_general: float = 0.5

@export_group("Elementos de Batería Disco")
@export_range(0.0, 1.0, 0.05) var bombo_potencia: float = 0.9
@export_range(0.0, 1.0, 0.05) var caja_snare: float = 0.5
@export_range(0.0, 1.0, 0.05) var platos_contratiempo: float = 0.4
@export_range(0.0, 1.0, 0.05) var palmas_disco: float = 0.35

@export_group("Bajo Octavado (Disco Bass)")
@export_range(0.0, 1.0, 0.05) var bajo_volumen: float = 0.5
## Nota base del bajo (82 Hz es un MI grave / E2)
@export_range(50.0, 150.0, 1.0) var bajo_nota_base: float = 82.41

var audio_player: AudioStreamPlayer
var playback: AudioStreamGeneratorPlayback
var sample_rate: float = 44100.0
var time: float = 0.0

func _ready() -> void:
audio_player = AudioStreamPlayer.new()
var generator = AudioStreamGenerator.new()
generator.mix_rate = sample_rate
generator.buffer_length = 0.1
audio_player.stream = generator
add_child(audio_player)
audio_player.play()
playback = audio_player.get_stream_playback()

func _process(_delta: float) -> void:
if playback == null:
return
# Tiempo de una corchea (la base del ritmo disco)
var step_duration: float = 60.0 / bpm / 4.0
var frames_to_fill = playback.get_frames_available()
while frames_to_fill > 0:
# Patrón de 16 pasos (1 compás de 4/4)
var step = int(time / step_duration) % 16
# 1. BOMBO DISCO (Four-on-the-Floor: Pasos 0, 4, 8, 12)
var kick_env = max(0.0, 1.0 - fmod(time, step_duration * 4) / 0.14) if step % 4 == 0 else 0.0
# Golpe grave con caída rápida de frecuencia
var kick = sin(2.0 * PI * (50.0 + kick_env * 140.0) * time) * kick_env * bombo_potencia
# 2. CAJA / SNARE (Tiempos 4 y 12 -> Tiempo 2 y 4 de la música)
var snare_env = max(0.0, 1.0 - fmod(time, step_duration * 4) / 0.15) if (step == 4 or step == 12) else 0.0
var snare_noise = (randf() * 2.0 - 1.0) * 0.7 + sin(2.0 * PI * 200.0 * time) * 0.3
var snare = snare_noise * snare_env * caja_snare
# 3. PLATOS A CONTRATIEMPO (Off-beat Hi-Hat: Pasos 2, 6, 10, 14)
# Este es el sonido crucial de los platos en la discoteca
var hat_env = max(0.0, 1.0 - fmod(time, step_duration * 2) / 0.08) if step % 2 != 0 else 0.0
var hihat = (randf() * 2.0 - 1.0) * hat_env * platos_contratiempo
# 4. PALMAS / CLAP (Acompañan a la caja en los pasos 4 y 12)
var clap_env = max(0.0, 1.0 - fmod(time, step_duration * 4) / 0.07) if (step == 4 or step == 12) else 0.0
var clap = (randf() * 2.0 - 1.0) * clap_env * palmas_disco

# 5. BAJO EN OCTAVAS (El clásico "Tung-Tsing-Tung-Tsing")
# Si el paso es par -> Nota Grave; Si es impar -> Octava Aguda (frecuencia x 2)
var freq_bajo = bajo_nota_base
if step % 2 != 0:
freq_bajo *= 2.0 # Salto de octava
# Cambio de acorde básico cada 4 pasos
if step in [8, 9, 10, 11]: freq_bajo *= 1.33 # Subida a Cuarta
elif step in [12, 13, 14, 15]: freq_bajo *= 1.5 # Subida a Quinta
var bass_env = max(0.0, 1.0 - fmod(time, step_duration) / 0.1)
# Onda corta y marcada para bajo funky
var bass_wave = 1.0 if sin(2.0 * PI * freq_bajo * time) > 0 else -1.0
var bass = bass_wave * bass_env * bajo_volumen

# MEZCLA FINAL RÍTMICA
var mezcla = (kick + snare + hihat + clap + bass) * volumen_general
playback.push_frame(Vector2(mezcla, mezcla))
time += 1.0 / sample_rate
frames_to_fill -= 1

---------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
Explicacion : le pedi a una IA generase ella unos segundos de musica disco....pero se empeño en hacerlo por programacion , asi que le pedi que desde el inspector se pudiesen calibrar algunos parametros, y te lo hace puedes subir vajar volumen y cambiar velocidades y aspectos musicales como tonos graves y agudos creo......bueno es solo un comienzo....me resulta muy interesante que con Godot tambien se pueda programar musica, buena mas asumar en este fenomenal motor de juegos¡¡¡¡¡
----------------------------------------------------------------------------------------------------------------------------

Este videojuego pertenece a una coleccion de juegos muy cortos pero completos que intento sacar 1 cada 1 o 2 semanas y lo estoy consiguiendo, la tematica es , horror gore surrealismo humor grepy y cosas chocantes y de miedo o sorpresibas......paso enlaces de los que llevo ya echos sumando este.



































¡¡¡¡¡¡¡¡Aprovechar ahora descargarlos....pronto pueden estar en venta.......!!!!!!!!