Godot Playground

Ejemplos

133 proyectos que se abren directamente en el editor. Todos son GDScript puro que arma su propia escena, así que no hay nada que importar.

133 de 133 ejemplos
Movimiento12
2D

Pelota que rebota

Una pelota cruzando la pantalla y rebotando en los bordes. El bucle más pequeño que hay: lee el delta, mueve, invierte la velocidad.

Polygon2DColorRect
2D

Seguir el ratón

Dos formas persiguiendo el mismo objetivo, una con lerp y otra con move_toward. La diferencia entre ambas es toda la lección.

Node2DPolygon2DInputEventMouseMotion
2D

Órbita y giro

Tres Node2D anidados y dos rotaciones. El hijo orbita porque el padre gira, y el nieto orbita al hijo.

Node2DLine2DPolygon2D
2D

Perseguir y huir

El fugitivo huye del ratón y el perseguidor sigue al fugitivo. Ambos usan direction_to, solo cambia el signo.

Node2DLine2DVector2
2D

Envolver la pantalla

Una nave estilo Asteroids y ocho rocas que salen por un borde y vuelven por el otro. Dos llamadas a wrapf lo hacen.

Node2DPolygon2DInput
2D

Estela del ratón

Un Line2D que gana un punto donde está el puntero y suelta el más viejo cuando se llena. La curva de ancho y el degradado hacen el desvanecido.

Line2DGradientCurve
2D

Dibujar con el ratón

Mantén el botón izquierdo para dibujar. Cada trazo es un Line2D nuevo, y el botón derecho limpia el lienzo.

Line2DInputEventMouseButtonInputEventMouseMotion
2D

Seguir una curva

Una Curve2D construida punto a punto, dibujada con tessellate y recorrida por tres PathFollow2D. El progreso es lo único que cambia.

Path2DPathFollow2DCurve2D
2D

Muelle amortiguado

Un muelle críticamente amortiguado y un seguidor con lerp rastreando el mismo objetivo en movimiento. El muelle aguanta el ritmo, el lerp se queda atrás.

Polygon2DLine2DLabel
2D

Ajuste a rejilla

Una posición libre moviéndose en bucle y la misma posición pasada por snapped. El cuadrado azul solo se para en nodos de la rejilla.

Polygon2DLine2DVector2
2D

Flotar y oscilar

Nueve formas en la misma onda senoidal, cada una un paso de fase por delante de la anterior. Sin Tween y sin AnimationPlayer.

Node2DLine2DTime
2D

Fotograma contra delta

La misma constante de velocidad aplicada con y sin delta, con la distancia recorrida en cada fila. La segunda solo es rápida en la medida de la tasa de fotogramas.

Polygon2DLabelEngine
Física15
2D

Plataformas

Gravedad, salto y detección de suelo con CharacterBody2D, sobre plataformas construidas por código.

CharacterBody2DStaticBody2DCollisionShape2D
2D

Pila de cajas

Dieciséis cajas soltadas entre dos paredes. Lo primero que probar cuando quieres ver trabajar al solver.

RigidBody2DCollisionShape2DRectangleShape2D
2D

Cadena de juntas

Doce eslabones unidos entre sí y un peso al final. Haz clic para empujar la cadena y verla asentarse.

PinJoint2DRigidBody2DStaticBody2D
2D

Juntas de muelle

Tres muelles con la misma longitud de reposo y distinta rigidez y amortiguación, uno al lado del otro.

DampedSpringJoint2DRigidBody2DLine2D
2D

Detector de área

Una zona que cuenta lo que cae por ella, usando las señales body_entered y body_exited.

Area2DRigidBody2DLabel
2D

Cono de visión

Veintiocho rayos abiertos en abanico hacia el ratón. Cada uno se pone rojo donde choca con un muro, que es línea de visión en su forma más simple.

RayCast2DLine2DStaticBody2D
2D

Shape cast

Una caja que pregunta dónde se detendría antes de moverse. El fantasma es la fracción segura que devuelve el cast.

ShapeCast2DPolygon2DStaticBody2D
2D

Plataformas de un sentido

Salta a través de las plataformas azules desde abajo y aterriza sobre ellas desde arriba. Una propiedad hace todo eso.

CharacterBody2DCollisionShape2DStaticBody2D
2D

Rebote y fricción

Tres pelotas soltadas desde la misma altura con tres ajustes de PhysicsMaterial. El valor de bounce es toda la diferencia.

PhysicsMaterialRigidBody2DStaticBody2D
2D

Cinta transportadora

Dos cintas que no se mueven ni un píxel. constant_linear_velocity arrastra lo que las esté tocando.

StaticBody2DRigidBody2DCollisionShape2D
2D

Impulso de clic

Un muro de 54 cajas y un clic que las aparta, con la fuerza cayendo con la distancia.

RigidBody2DInputEventMouseButtonCollisionShape2D
3D

Caída con física

Haz clic para soltar un RigidBody3D en el suelo y ver cómo se apila. Los que creas se limpian solos a los diez segundos.

RigidBody3DStaticBody3DCollisionShape3D
3D

Cadena de dominó

Veinte piezas en una curva y un impulso en la primera. Todo lo demás es el solver.

RigidBody3DBoxShape3DCamera3D
3D

Puerta con bisagra

Una puerta sujeta por una bisagra con límite de ángulo. Haz clic para empujarla y ver dónde el límite corta el giro.

HingeJoint3DRigidBody3DStaticBody3D
3D

Cubos de gelatina

Tres cubos SoftBody3D cayendo con distinta rigidez. Es la propia malla la que se deforma.

SoftBody3DBoxMeshStaticBody3D
Partículas6
Interfaz16
Control

Galería de controles

Los controles básicos en una sola pantalla, cada uno reportando al mismo label a través de su señal.

ButtonCheckBoxOptionButtonHSliderSpinBoxLineEdit
Control

Tour de contenedores

Las mismas cuatro cajas entregadas a cuatro contenedores. El layout en Godot es elegir quién ordena a los hijos.

VBoxContainerHBoxContainerGridContainerCenterContainer
Control

Anclas y presets

Seis paneles fijados con presets de layout. Redimensiona el panel del juego y cada uno mantiene su esquina.

ControlPanelStyleBoxFlat
Control

Tema por código

Los mismos tres nodos dos veces, y la diferencia es un puñado de add_theme.

StyleBoxFlatButtonProgressBar
Control

Texto enriquecido

Negrita, color, wave, shake y rainbow, todo con etiquetas BBCode dentro de un label. Sin ningún nodo de animación de por medio.

RichTextLabel
Control

Progreso y temporizador

Un Timer llenando una barra, con pausa y reanudación. La barra lee time_left, no cuenta por su cuenta.

ProgressBarTimerButton
Control

Arrastrar y soltar

Fichas moviéndose entre ranuras. Tres métodos lo hacen todo: _get_drag_data, _can_drop_data y _drop_data.

PanelContainerGridContainerColorRect
Control

Vista de árbol

Un árbol de escena con dos columnas, construido desde un diccionario anidado por una función recursiva.

TreeTreeItem
Control

Lista de inventario

Un ItemList con selección múltiple, quitando las filas seleccionadas y devolviéndolas.

ItemListButton
Control

Pestañas y divisiones

Un panel lateral y tres pestañas repartiéndose el ancho. Arrastra el divisor y ambos lados acompañan.

TabContainerHSplitContainerPanelContainer
Control

Grafo de nodos

Cuatro nodos con puertos que conectas arrastrando. GraphEdit dibuja la curva, aceptar la conexión es cosa tuya.

GraphEditGraphNode
Control

Selector de color

El selector completo conectado a una vista previa en vivo, al valor hex y a una fila de muestras guardadas.

ColorPickerColorRect
Control

Popups y diálogos

Un menú contextual y dos diálogos, cada uno respondiendo por su propia señal.

PopupMenuAcceptDialogConfirmationDialog
Control

Foco de teclado

Nueve botones enlazados en anillo por focus_neighbor, recorridos con tab y las flechas. Interfaz que funciona sin ratón.

ButtonGridContainer
Control

Joystick virtual

Un stick que se sujeta a su anillo y conduce un punto. En un móvil el mismo código responde al tacto.

PanelStyleBoxFlatInputEventMouseMotion
Control

Panel adaptable

Seis tarjetas en una rejilla que pasa de tres columnas a dos cuando la viewport se estrecha.

GridContainerPanelContainerMarginContainer
Escena 3D12
3D

Tour de primitivas

Las seis mallas primitivas en un anillo que gira, cada una con su propio material: metal, rugoso y emisivo.

MeshInstance3DStandardMaterial3DDirectionalLight3D
3D

Rejilla en onda

Una rejilla de 196 cubos montados en una onda senoidal. Dos bucles anidados al montarla, una línea de matemáticas por fotograma.

MeshInstance3DBoxMeshCamera3D
3D

Mover un cubo

WASD conduciendo un CharacterBody3D entre pilares, con una cámara que va detrás. Sin mirar con el ratón.

CharacterBody3DCamera3DStaticBody3D
3D

Cámara en órbita

Arrastra con el botón izquierdo para girar la cámara alrededor de la pieza central, y usa la rueda para el zoom. Yaw, pitch y distancia son todo el estado.

Camera3DInputEventMouseMotionInputEventMouseButton
3D

Mirar al objetivo

Ocho conos ejecutando look_at sobre el mismo orbe en movimiento. Una llamada por fotograma sustituye toda la trigonometría.

Node3DMeshInstance3DOmniLight3D
3D

Sistema solar

Pivotes Node3D anidados, cada uno girando a su ritmo. Una luna orbita su planeta y hereda la órbita del planeta gratis.

Node3DMeshInstance3DOmniLight3D
3D

Formas CSG

Una caja mantenida en intersección con una esfera, perforada por tres cilindros que alternan entre sustracción, unión e intersección cada dos segundos.

CSGCombiner3DCSGBox3DCSGSphere3DCSGCylinder3D
3D

Bosque con MultiMesh

Cuatro mil árboles dibujados por dos nodos MultiMeshInstance3D, con un color por instancia en las copas.

MultiMeshInstance3DMultiMeshCylinderMesh
3D

Sprites en 3D

Gemas Sprite3D en billboard sobre una textura pintada píxel a píxel en código, cada una nombrada por un Label3D. El cartel del centro deja el billboard apagado para comparar.

Sprite3DLabel3DImageTexture
3D

Tour de luces

La misma geometría y el mismo material blanco tres veces. Una cull mask le da a cada luz su tercio de la escena.

OmniLight3DSpotLight3DDirectionalLight3D
3D

Reflection probe

Esferas metálicas reflejando una sala de colores sin reflejos en espacio de pantalla. Tres valores de rugosidad muestran lo rápido que el espejo se vuelve borrón.

ReflectionProbeStandardMaterial3DCamera3D
3D

Básicos de Transform

Cinco cajas y cinco Transform3D escritos a mano: identidad, origen, Basis rotada, Basis escalada y los tres combinados. Un fantasma marca dónde está la identidad.

Transform3DBasisMeshInstance3D
Shaders14
2DShader

Shader de canvas

Un shader de canvas a pantalla completa animado por TIME. Cambia un uniform, guarda, y el proyecto se recarga.

ColorRectShaderMaterialCanvasLayer
2DShader

Cambio de paleta

El sprite guarda índices de paleta en vez de colores, así que rotar la paleta repinta todo el arte.

Sprite2DImageTextureShaderMaterial
2DShader

Pantalla CRT

Curvatura, scanlines y separación cromática sobre una escena 2D normal. Todo el aspecto es una sola pasada a pantalla completa.

ColorRectCanvasLayerPolygon2D
2DShader

Viñeta y grano

Desaturación, viñeta y grano de película sobre una escena 3D, en once líneas que leen la textura de pantalla.

ColorRectCanvasLayerMeshInstance3D
3DShader

Shader spatial

Una esfera cuyos vértices montan una onda mientras la emisión late, escrita en un shader spatial.

MeshInstance3DShaderMaterialWorldEnvironment
3DShader

Disolver

Una textura de ruido creada en GDScript y un discard en el shader, con un borde ardiendo en el umbral.

MeshInstance3DNoiseTexture2DFastNoiseLite
3DShader

Luz de borde

El ángulo entre la normal y la vista, elevado a una potencia. Tres formas, tres potencias de borde.

MeshInstance3DShaderMaterialWorldEnvironment
3DShader

Sombreado toon

Iluminación dividida en bandas dentro de la función light del shader, con un punto especular duro.

MeshInstance3DDirectionalLight3DShaderMaterial
3DShader

Shader de cielo

Un atardecer procedural con estrellas, escrito como shader_type sky. El disco del sol sigue al nodo de luz.

SkyShaderMaterialDirectionalLight3D
3DShader

Niebla por profundidad

Un quad delante de la cámara leyendo DEPTH_TEXTURE, así la niebla sabe a qué distancia está cada píxel.

QuadMeshCamera3DShaderMaterial
3DShader

Ondas de calor

Ruido empujando la UV de pantalla, enmascarado a la mitad de abajo para que la diferencia sea fácil de ver.

ColorRectNoiseTexture2DCanvasLayer
3DShader

Plano de agua

Olas en el vertex shader con la normal recalculada desde la derivada, así la luz las acompaña.

PlaneMeshShaderMaterialMeshInstance3D
3DShader

Rejilla infinita

Un plano y ninguna textura. fwidth mantiene cada línea de un píxel de ancho por lejos que esté la cámara.

PlaneMeshShaderMaterialCamera3D
3DShader

Mapeado triplanar

Cuatro mallas sin mapa UV, texturizadas proyectando desde los tres ejes del mundo y mezclando por la normal.

MeshInstance3DNoiseTexture2DShaderMaterial
Procedural13
2D

Visor de ruido

Los seis tipos de FastNoiseLite uno al lado del otro, misma semilla y sin fractal, para que se vea el carácter de cada uno.

FastNoiseLiteNoiseTexture2DTextureRect
3D

Terreno por ruido

Un mapa de altura convertido en ArrayMesh con SurfaceTool, coloreado por altura mediante colores de vértice.

SurfaceToolArrayMeshMeshInstance3D
2D

Generador de islas

Ruido multiplicado por una máscara radial y pintado en una Image banda a banda. Haz clic para otra isla.

FastNoiseLiteImageImageTexture
2D

Generador de laberintos

Un laberinto perfecto excavado por backtracking. Los pasillos aparecen en el orden en que se abrieron, coloreados por ese orden.

ImageImageTextureSprite2D
2D

Salas de mazmorra

Salas colocadas sin solaparse, y luego un paseo aleatorio cavando el pasillo entre cada par.

Polygon2DLine2DRect2i
2D

Árbol con L-system

Una cadena reescrita cuatro veces por dos reglas y luego leída como movimientos de tortuga, un Line2D por rama.

Line2DLabel
2D

Campo de flujo

El ruido le da un ángulo a cada punto de la pantalla. Las flechas muestran el campo y las partículas lo siguen.

FastNoiseLiteLine2D
2D

Marching squares

El contorno de un campo de ruido, redibujado según barre el umbral. El campo nunca cambia, solo el corte.

Node2DFastNoiseLiteLabel
3D

Líneas con ImmediateMesh

Una malla limpiada y reconstruida vértice a vértice cada fotograma, con una tira de líneas y una superficie de líneas.

ImmediateMeshMeshInstance3DStandardMaterial3D
3D

Sólido con SurfaceTool

El mismo sólido generado dos veces con SurfaceTool, plano y suave. Solo cambia el grupo de suavizado.

SurfaceToolArrayMeshLabel3D
3D

Vóxeles con GridMap

Una MeshLibrary construida en tiempo de ejecución y un GridMap rellenado desde un mapa de altura, un cubo por celda.

GridMapMeshLibraryBoxMesh
2D

TileMap por código

Un TileSet cuyo atlas es una Image pintada píxel a píxel, colocada celda a celda en un TileMapLayer.

TileMapLayerTileSetTileSetAtlasSource
2D

Ayudas de geometría

Tres llamadas de Geometry2D con el resultado dibujado: intersección de polígonos, envolvente convexa y offset de polígono.

Geometry2DPolygon2DLine2D
Navegación9
2D

Agente 2D

Una región de navegación generada por código y un agente recorriendo cuatro esquinas por ella. Haz clic en cualquier sitio para mandarlo a otro lado.

NavigationRegion2DNavigationAgent2DNavigationPolygon
3D

Agente 3D

La misma idea en tres dimensiones, con la NavigationMesh generada de mallas primitivas al cargar. Haz clic en el suelo para elegir destino.

NavigationRegion3DNavigationAgent3DCharacterBody3D
2D

Obstáculos dinámicos

Tres obstáculos entrando y saliendo de la malla de navegación. Cada cambio regenera la región y el agente toma el carril que siga abierto.

NavigationObstacle2DNavigationRegion2DNavigationAgent2D
2D

AStarGrid2D

Una rejilla donde los muros bloquean celdas y las amarillas cuestan seis veces más de cruzar. El resultado es la ruta más barata, no la más corta.

AStarGrid2DPolygon2DLine2D
2D

Grafo AStar2D

Cuarenta puntos enlazados por distancia, con AStar2D trazando ruta entre dos de ellos. Aquí nada es una rejilla, el grafo es lo que tú conectes.

AStar2DLine2DPolygon2D
2D

Buscar y huir

Buscar y huir son las mismas dos líneas con un signo cambiado. Los vectores dibujados son la velocidad deseada, la actual y la diferencia entre ambas.

Node2DPolygon2DLine2D
2D

Deambular

Cada agente apunta a un punto que solo se desliza un poco alrededor de un círculo delante de él. Eso es lo que hace que deambular parezca intención y no ruido.

Node2DLine2DRandomNumberGenerator
2D

Boids

Setenta y dos boids ejecutando separación, alineación y cohesión contra todo lo que hay dentro de un radio pequeño. Cada uno se colorea según cuántos vecinos ve.

Polygon2DLine2DNode2D
2D

Máquina de estados de patrulla

Un enum y un bloque match llevando patrulla, persecución y regreso. La tira de abajo son los últimos segundos de estado.

Node2DLabelLine2D
Cámara8
2D

Seguir y limitar

Una Camera2D con suavizado de posición y las cuatro propiedades de límite. La cruz amarilla es el centro de la cámara, así puedes verla detenerse en el borde mientras el jugador sigue andando.

Camera2DLine2DPolygon2D
2D

Temblor de pantalla

Trauma que decae con el tiempo, muestreado de FastNoiseLite hacia el offset y la rotación de la cámara. Una explosión dispara cada 1,2 segundos y el slider la escala.

Camera2DFastNoiseLiteHSlider
2D

Zoom y paneo

Arrastra para mover y gira la rueda para hacer zoom en el puntero en vez del centro de la pantalla, que son dos líneas de matemáticas sobre Camera2D.zoom.

Camera2DInputEventMouseButtonLine2D
3D

Render a textura

Una escena 3D renderizada dentro de un SubViewport y mostrada como la textura de un monitor que está en una pantalla 2D.

SubViewportTextureRectCamera3D
3D

Pantalla dividida

Dos SubViewports lado a lado con una cámara cada uno, ambos mirando al mismo World3D. Cada panel sigue su propio cubo.

SubViewportSubViewportContainerCamera3D
2D

Minimapa

Una Camera2D alejada en un SubViewport que comparte el World2D del juego. El HUD está fuera de ese mundo, por eso no aparece en el mapa.

SubViewportCamera2DWorld2D
2D

Capas de parallax

Tres capas Parallax2D con distinto scroll_scale, repetidas por repeat_size para que las crestas nunca se acaben mientras la cámara avanza.

Parallax2DCamera2DPolygon2D
3D

Tercera persona 3D

Un SpringArm3D que acerca la cámara cuando una pared se mete entre ella y el personaje. El panel compara spring_length con el largo que el brazo consiguió de verdad.

SpringArm3DCamera3DCharacterBody3D
Animación9
2D

Curvas de tween

Cinco cuadrados cruzando la pantalla, uno por curva de transición. La forma más rápida de ver qué hace cada easing.

TweenPolygon2DLabel
2D

Tweens encadenados

Un tween ejecutando cuatro pasos seguidos. tween_callback enciende el paso en pantalla y parallel pone dos propiedades en el mismo paso.

TweenPolygon2DLine2D
2D

Animación por código

Una pista de posición y otra de color escritas clave a clave al arrancar, sin ningún archivo .anim. La línea de tiempo de abajo muestra las mismas claves que insertó el código.

AnimationPlayerAnimationAnimationLibrary
2D

Recurso Curve

Una Curve construida punto a punto y leída con sample(t). La gráfica se dibuja del mismo recurso que mueve el cuadrado, junto a otro movido solo por el tiempo.

CurveLine2DPolygon2D
2D

Sprite frames por código

Un ciclo de caminata de ocho fotogramas pintado en buffers de Image al arrancar y entregado a un AnimatedSprite2D. La tira de abajo es el propio SpriteFrames.

AnimatedSprite2DSpriteFramesImageTexture
2D

Esqueleto 2D

Un brazo articulado hecho de un solo Polygon2D con skin en dos huesos. Girar un Bone2D mueve los vértices que tienen peso en él.

Skeleton2DBone2DPolygon2D
2D

Squash y stretch

El mismo salto con el mismo tiempo en ambos lados, y solo el de la derecha hace tween de la escala. Tres líneas de más son toda la diferencia.

TweenPolygon2DColorRect
2D

Animación por estado

Reposo, preparación, embestida y recuperación, cada uno con su tween. Entrar en un estado mata el tween del anterior, así nunca pelean por la misma propiedad.

TweenPolygon2DLabel
3D

Pose de esqueleto 3D

Una cadena de seis huesos creada por código y colocada cada fotograma con set_bone_pose_rotation. Cada BoneAttachment3D lleva la malla que viaja con su hueso.

Skeleton3DBoneAttachment3DMeshInstance3D
Audio6
Entrada5
Datos8
Control

Señales propias

Un nodo declara una señal y nunca se entera de quién escucha. Cinco paneles se conectan a ella y se encienden cuando les toca.

signalSignal.emitSignal.connectPanelContainer
2D

Grupos de nodos

Setenta y dos cuadrados repartidos en cuatro grupos. Un call_group alcanza a todos los miembros de un bloque sin una sola referencia.

Node.add_to_groupSceneTree.call_groupPolygon2D
Control

Guardar y cargar

Un diccionario con el estado de la escena escrito en user:// como JSON, con el contenido del archivo al lado de los valores en vivo.

FileAccessJSONDirAccess
Control

Resource propio

Un Resource con class_name usado como dato tipado. Seis ítems comparten el script y cada tarjeta se redibuja con la señal changed.

Resourceclass_nameResource.changedGDScript
2D

Pool de objetos

Dos fuentes emitiendo al mismo ritmo, una reservando cada partícula y otra tomándolas de un pool. Los contadores son los que discuten.

Node.queue_freePolygon2DPerformance
Control

Panel de benchmark

Fotogramas por segundo, memoria estática y número de nodos muestreados cada fotograma en tres gráficas vivas, mientras una oleada de nodos se crea y se elimina.

PerformanceControl._drawCanvasItem.draw_polyline
Control

Aleatorio con semilla

Tres columnas de tres generadores. Los dos que comparten semilla producen los mismos números siempre, el tercero no.

RandomNumberGeneratorProgressBar
Control

Callables y lambdas

Seis operaciones guardadas en un array como Callables, cinco lambdas y un método con bind, cada una entregada a Array.map sobre los mismos números.

CallableCallable.bindArray.map