Escribir juegos / Runtime
API del runtime
Módulos que ves desde GSH Script. La referencia de actores está en Actores y física.
Window
| Método | |
Window.set_title(texto) | Título. |
Window.set_background(r, g, b) | Fondo 0–255. |
Window.set_size(w, h) | Tamaño en píxeles. |
Window.set_resizable(bool) | Redimensionar. |
Window.maximize() | Maximizar. |
Window.toggle_fullscreen() | Pantalla completa. |
Graphics
| API | |
Graphics.load_image(ruta) | Textura (carga diferida). Devuelve handle. |
Graphics.get_width / get_height | Tamaño del handle. |
draw_rect, draw_circle, draw_triangle | Primitivas inmediatas. |
draw_image / draw_image_scaled | Blit. |
draw_solid_image | Imagen + cuerpo sólido. |
set_layer(n) | Capa del último dibujo. |
Si puedes, usa actores Sprite en vez de draw_image cada frame. El blit inmediato sirve para debug o efectos que no viven en la jerarquía.
Physics
| API | |
Physics.add_solid(collider) | Obstáculo. |
Physics.check_collision(...) | AABB con ocho números. |
Physics.is_colliding(a, b) | Dos colliders. |
Physics.move_and_slide(cuerpo, hitbox, ox, oy, dx, dy) | Mover y deslizar. |
Physics.move_and_slide(..., excepciones) | Igual, ignorando una lista. |
Physics.draw_solid_rect | Rectángulo sólido visible. |
Input
| API | |
Input.is_key_down("W") | Mantenida. |
Input.is_key_pressed("SPACE") | Este frame. |
Input.is_mouse_down / is_mouse_pressed | LEFT / RIGHT. |
Input.get_mouse_x / get_mouse_y | Pantalla. |
Input.get_char_pressed() | Texto tipeado. |
input("mensaje") | Lee stdin; pausa el juego. Poco útil en un título. |
Teclas que el mapeo cubre bien: WASD, SPACE, ENTER, ESC, SHIFT, letras A–Z, dígitos 0–9.
Camera
| API | |
Camera.follow(objeto) | Sigue un actor. |
Camera.follow(obj, "x", "y") | Sigue campos con otro nombre. |
Camera.set_zoom(1.5) | Zoom. |
Camera.get_mouse_x / get_mouse_y | Ratón en mundo. |
Math
Math.PI, random, sqrt, abs, pow, sin, cos, tan, atan2, clamp, distance, lerp, degrees / radians.
Hay un random(min, max) global, atajo de Math.random. atan2 es el que usas para apuntar al mouse (demo 04).
Audio
| API | |
load_sound("alias", "ruta.wav") | Efecto. |
load_music("alias", "ruta.mp3") | Música. |
Audio.play_sound / play_music / stop_music | Por alias. |
Audio.set_master_volume(0.5) | 0.0–1.0. |
Audio.set_volume("alias", 0.8) | Por asset. |
Scene
Scene.change("otra.gsh") pide el cambio; no es instantáneo en mitad de un callback raro. Trátalo como “al terminar este frame, vámonos”.
Otras funciones
| Función | |
spawn | Ver actores. |
run_code("...") | Evalúa GSH en caliente. Debug, no diseño. |
tokenize(codigo) | Tokens del analizador. Debug. |
load_font, draw_text, draw_custom_text | Texto inmediato. |
measure_text(texto) | Ancho aproximado. |
Biblioteca embebida
| Clase | Métodos que importan |
BasicEnemy | pursue_logic, check_player_impact |
Button | create, check_click, disable, enable |
TextureButton | Sprite + frames de estado. |
Animator | play(sprite, delta, f_ini, f_fin, fps, moving) |
Timer | start(segundos), tick(delta) |
VfxPlayer | tick(delta) |