User prompt
otros 4
User prompt
crea 4 personajes mas crealos con un nombre
User prompt
crea otro personaje llamado cubo
User prompt
ordenalos en cuadricula como si fuera un armario
User prompt
quita la animacion
User prompt
Crea una selección de personajes para el jugador. Las opciones deben incluir: gato, robot, rana, zorro, alienígena, mago y pingüino. Todos con estilo caricatura o pixel art. Fondo transparente. Animación simple como parpadeo o movimiento lateral.
User prompt
cuando toquen al persomnaje desaparece las bombas
User prompt
haz que gire las bombas por siempre
User prompt
pon todas las letras en negrita
User prompt
las letras quiero que sean tipo pixel art
User prompt
haz la explosion mas llamativa
User prompt
otro poquito mas arriba
User prompt
un poquitito mas arriba
User prompt
un poquitito mas arriba
User prompt
mas abajo tocando el suelo
User prompt
no tanto en el medio tocando el suelo
User prompt
pon el personaje mas arriba
User prompt
que el suelo tenga una textura independiente y quita el suelo
User prompt
Personaje con control de movimiento (a izquierda y d derecha).
User prompt
Personaje con control de movimiento (← →).
User prompt
ersonaje con control de movimiento (← →).
User prompt
crea un suelo verde
Code edit (1 edits merged)
Please save this source code
User prompt
¡Evita las bombas!
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Clase para la bomba
var Bomb = Container.expand(function () {
var self = Container.call(this);
self.sprite = self.attachAsset('bomb', {
anchorX: 0.5,
anchorY: 0.5
});
// Velocidad vertical aleatoria (más o menos rápida)
self.speedY = 12 + Math.random() * 8;
// Para detectar colisión solo una vez
self.lastIntersecting = false;
// Actualización por frame
self.update = function () {
self.y += self.speedY;
if (self.sprite) {
if (typeof self.sprite.rotation !== "number") self.sprite.rotation = 0;
self.sprite.rotation += 0.13;
}
};
return self;
});
// Efecto de explosión visual
var Explosion = Container.expand(function () {
var self = Container.call(this);
self.circle = self.attachAsset('explosion', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.5,
scaleY: 0.5,
alpha: 0.7
});
// Animación de expansión y desvanecimiento
self.play = function (x, y, _onFinish) {
self.x = x;
self.y = y;
self.circle.alpha = 0.7;
self.circle.scaleX = 0.5;
self.circle.scaleY = 0.5;
// Efecto de destello blanco detrás de la explosión
var flash = LK.getAsset('skybg', {
anchorX: 0.5,
anchorY: 0.5,
x: 0,
y: 0,
scaleX: 3,
scaleY: 3
});
flash.tint = 0xffffff;
flash.alpha = 0.7;
self.addChildAt(flash, 0);
tween(flash, {
alpha: 0
}, {
duration: 350,
onFinish: function onFinish() {
flash.destroy();
}
});
tween(self.circle, {
scaleX: 2.5,
scaleY: 2.5,
alpha: 0
}, {
duration: 600,
easing: tween.easeOut,
onFinish: function onFinish() {
if (_onFinish) _onFinish();
self.destroy();
}
});
};
return self;
});
// Clase para el personaje (gato o robot)
var Player = Container.expand(function () {
var self = Container.call(this);
// Por defecto, es gato
self.type = 'cat';
self.sprite = null;
// Inicializa el sprite según el tipo
self.setType = function (type) {
self.type = type;
if (self.sprite) {
self.removeChild(self.sprite);
}
self.sprite = self.attachAsset(type, {
anchorX: 0.5,
anchorY: 1
});
};
// Devuelve el ancho real del sprite
self.getWidth = function () {
return self.sprite ? self.sprite.width : 0;
};
// Devuelve la altura real del sprite
self.getHeight = function () {
return self.sprite ? self.sprite.height : 0;
};
// Inicializa como gato por defecto
self.setType('cat');
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb // Cielo azul claro
});
/****
* Game Code
****/
// Nuevos personajes extra
// Nuevos personajes
// textura de suelo
// Sonido explosión
// Efecto explosión (círculo rojo)
// Fondo cielo (simple rectángulo azul claro)
// Bombas
// Personajes
// Fondo cielo (no interactivo, solo visual)
var skybg = LK.getAsset('skybg', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
game.addChild(skybg);
// Suelo con textura independiente en la parte inferior
var groundTex = LK.getAsset('groundtex', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 2732 - 180
});
game.addChild(groundTex);
// (El suelo verde ha sido eliminado)
// Variables globales
var player = null;
var bombs = [];
var score = 0;
var scoreTxt = null;
var gameStarted = false;
var lastBombSpawnTick = 0;
var bombSpawnInterval = 45; // frames (~0.75s)
var dragTargetX = null;
var dragActive = false;
var lastScoreTick = 0;
var selectedType = null;
var choosePanel = null;
var explosionEffect = null;
// --- Pantalla de selección de personaje ---
function showChoosePanel() {
// Panel semitransparente
choosePanel = new Container();
// Fondo semitransparente
var panelBg = LK.getAsset('skybg', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
panelBg.alpha = 0.85;
choosePanel.addChild(panelBg);
// Texto
var txt = new Text2('Elige tu personaje', {
size: 120,
fill: 0x222222,
font: "PressStart2P, 'VT323', 'Pixel', 'Courier New', monospace",
fontWeight: 'bold'
});
txt.anchor.set(0.5, 0);
txt.x = 2048 / 2;
txt.y = 400;
choosePanel.addChild(txt);
// Lista de personajes y sus assets
var characterOptions = [{
key: 'cat',
label: 'Gato',
asset: 'cat'
}, {
key: 'robot',
label: 'Robot',
asset: 'robot'
}, {
key: 'frog',
label: 'Rana',
asset: 'frog'
}, {
key: 'fox',
label: 'Zorro',
asset: 'fox'
}, {
key: 'alien',
label: 'Alien',
asset: 'alien'
}, {
key: 'wizard',
label: 'Mago',
asset: 'wizard'
}, {
key: 'penguin',
label: 'Pingüino',
asset: 'penguin'
}, {
key: 'cube',
label: 'Cubo',
asset: 'cube'
}, {
key: 'ghost',
label: 'Fantasma',
asset: 'ghost'
}, {
key: 'pirate',
label: 'Pirata',
asset: 'pirate'
}, {
key: 'ninja',
label: 'Ninja',
asset: 'ninja'
}, {
key: 'unicorn',
label: 'Unicornio',
asset: 'unicorn'
},
// Nuevos personajes extra
{
key: 'vampire',
label: 'Vampiro',
asset: 'vampire'
}, {
key: 'duck',
label: 'Pato',
asset: 'duck'
}, {
key: 'dog',
label: 'Perro',
asset: 'dog'
}, {
key: 'alien2',
label: 'Alien2',
asset: 'alien2'
}];
// Posiciones para los personajes (en cuadrícula tipo armario)
var gridCols = 4;
var gridRows = 2;
var cellW = 340;
var cellH = 400;
var gridStartX = (2048 - gridCols * cellW) / 2 + cellW / 2;
var gridStartY = 950;
for (var i = 0; i < characterOptions.length; i++) {
var opt = characterOptions[i];
var col = i % gridCols;
var row = Math.floor(i / gridCols);
var x = gridStartX + col * cellW;
var y = gridStartY + row * cellH;
// Crea el botón del personaje
var btn = LK.getAsset(opt.asset, {
anchorX: 0.5,
anchorY: 0.5,
x: x,
y: y
});
btn.interactive = true;
btn.buttonMode = true;
btn._charKey = opt.key;
choosePanel.addChild(btn);
// Sin animación: los personajes permanecen estáticos
btn.x = x;
btn.alpha = 1;
// Etiqueta pixel art
var label = new Text2(opt.label, {
size: 80,
fill: 0x333333,
font: "PressStart2P, 'VT323', 'Pixel', 'Courier New', monospace",
fontWeight: 'bold'
});
label.anchor.set(0.5, 0);
label.x = x;
label.y = y + 160;
choosePanel.addChild(label);
// Listener de selección
btn.down = function (key) {
return function (x, y, obj) {
startGame(key);
};
}(opt.key);
}
// No se requiere animación en la pantalla de selección
choosePanel.update = function () {};
game.addChild(choosePanel);
}
// --- Iniciar juego ---
function startGame(type) {
// Eliminar panel de selección
if (choosePanel) {
choosePanel.destroy();
choosePanel = null;
}
// Inicializar jugador
player = new Player();
player.setType(type);
player.x = 2048 / 2;
// Posiciona el personaje otro poquito más arriba del suelo (más arriba que antes, solo un poquito)
var groundY = 2732 - 180; // Y del suelo
var playerHeight = player.getHeight();
// Subimos el personaje 65px respecto al suelo (antes era 55)
player.y = groundY + 0.5 * playerHeight - 65; // El anchorY es 1, así que la base del sprite está en y
game.addChild(player);
// Inicializar score
score = 0;
if (scoreTxt) {
scoreTxt.destroy();
}
scoreTxt = new Text2('0', {
size: 120,
fill: 0xFFFFFF,
font: "PressStart2P, 'VT323', 'Pixel', 'Courier New', monospace",
fontWeight: 'bold'
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Reset bombas
for (var i = 0; i < bombs.length; i++) {
bombs[i].destroy();
}
bombs = [];
// Reset ticks
lastBombSpawnTick = LK.ticks;
lastScoreTick = LK.ticks;
// Estado
gameStarted = true;
selectedType = type;
dragTargetX = null;
dragActive = false;
}
// --- Game Over ---
function triggerGameOver() {
gameStarted = false;
// Efecto explosión visual
if (explosionEffect) {
explosionEffect.destroy();
}
explosionEffect = new Explosion();
game.addChild(explosionEffect);
explosionEffect.play(player.x, player.y - player.getHeight() / 2, function () {
// Nada extra
});
// Sonido explosión
LK.getSound('explosion').play();
// Flash pantalla más fuerte y vibración
LK.effects.flashScreen(0xff0000, 1000);
if (typeof LK.effects.vibrate === "function") {
LK.effects.vibrate(400);
}
// Sacudir la pantalla con tween
if (typeof tween === "function") {
var _doShake = function doShake() {
if (shakeIndex >= shakeTimes) {
game.x = originalX;
game.y = originalY;
return;
}
var angle = Math.random() * Math.PI * 2;
var dx = Math.cos(angle) * shakeAmount;
var dy = Math.sin(angle) * shakeAmount;
tween(game, {
x: originalX + dx,
y: originalY + dy
}, {
duration: shakeStep / 2,
onFinish: function onFinish() {
tween(game, {
x: originalX,
y: originalY
}, {
duration: shakeStep / 2,
onFinish: function onFinish() {
shakeIndex++;
_doShake();
}
});
}
});
};
var originalX = game.x || 0;
var originalY = game.y || 0;
var shakeAmount = 32;
var shakeTimes = 8;
var shakeDuration = 400;
var shakeStep = shakeDuration / shakeTimes;
var shakeIndex = 0;
_doShake();
}
// Mostrar Game Over (el engine lo maneja)
LK.setTimeout(function () {
LK.showGameOver();
}, 700);
}
// --- Spawnear bomba ---
function spawnBomb() {
var bomb = new Bomb();
// Posición X aleatoria, pero dentro de los bordes
var margin = 120;
var minX = margin;
var maxX = 2048 - margin;
bomb.x = minX + Math.random() * (maxX - minX);
bomb.y = -80; // Arriba de la pantalla
bombs.push(bomb);
game.addChild(bomb);
}
// --- Actualización principal ---
game.update = function () {
// Animar personajes en la pantalla de selección si está activa
if (choosePanel && choosePanel.update) choosePanel.update();
if (!gameStarted) return;
// Spawnear bombas cada cierto tiempo
if (LK.ticks - lastBombSpawnTick > bombSpawnInterval) {
spawnBomb();
lastBombSpawnTick = LK.ticks;
}
// Sumar score cada segundo
if (LK.ticks - lastScoreTick >= 60) {
score += 1;
scoreTxt.setText(score);
lastScoreTick = LK.ticks;
}
// Actualizar bombas
for (var i = bombs.length - 1; i >= 0; i--) {
var bomb = bombs[i];
bomb.update();
// Si sale de pantalla, eliminar
if (bomb.y > 2732 + 100) {
bomb.destroy();
bombs.splice(i, 1);
continue;
}
// Colisión con jugador
var intersect = player && bomb.intersects(player);
if (!bomb.lastIntersecting && intersect) {
// Eliminar todas las bombas inmediatamente
for (var j = bombs.length - 1; j >= 0; j--) {
bombs[j].destroy();
}
bombs = [];
// Explosión y game over
triggerGameOver();
return;
}
bomb.lastIntersecting = intersect;
}
// Movimiento del jugador (drag)
if (dragActive && dragTargetX !== null) {
// Suavizar movimiento horizontal
var dx = dragTargetX - player.x;
var speed = 0.32 * dx;
if (Math.abs(dx) > 8) {
player.x += speed;
} else {
player.x = dragTargetX;
}
// Limitar a bordes
var halfW = player.getWidth() / 2;
if (player.x < halfW + 30) player.x = halfW + 30;
if (player.x > 2048 - halfW - 30) player.x = 2048 - halfW - 30;
}
};
// --- Control táctil: mover jugador horizontalmente ---
// Permite mover el personaje a izquierda y derecha con controles táctiles (drag horizontal)
function handleMove(x, y, obj) {
if (!gameStarted) return;
if (!player) return;
// Permite mover el personaje a izquierda y derecha con controles táctiles (drag horizontal)
dragActive = true;
dragTargetX = x;
}
game.move = function (x, y, obj) {
handleMove(x, y, obj);
};
game.down = function (x, y, obj) {
handleMove(x, y, obj);
};
game.up = function (x, y, obj) {
dragActive = false;
dragTargetX = null;
};
// --- Iniciar con pantalla de selección ---
showChoosePanel(); ===================================================================
--- original.js
+++ change.js
@@ -118,8 +118,9 @@
/****
* Game Code
****/
+// Nuevos personajes extra
// Nuevos personajes
// textura de suelo
// Sonido explosión
// Efecto explosión (círculo rojo)
@@ -229,8 +230,26 @@
}, {
key: 'unicorn',
label: 'Unicornio',
asset: 'unicorn'
+ },
+ // Nuevos personajes extra
+ {
+ key: 'vampire',
+ label: 'Vampiro',
+ asset: 'vampire'
+ }, {
+ key: 'duck',
+ label: 'Pato',
+ asset: 'duck'
+ }, {
+ key: 'dog',
+ label: 'Perro',
+ asset: 'dog'
+ }, {
+ key: 'alien2',
+ label: 'Alien2',
+ asset: 'alien2'
}];
// Posiciones para los personajes (en cuadrícula tipo armario)
var gridCols = 4;
var gridRows = 2;
Crea un personaje que sea un gato simpático, estilo pixel art. Debe estar de pie y verse como si pudiera esquivar cosas. Que tenga una expresión divertida o decidida. El fondo debe ser transparente.
Crea un personaje que sea un robot pequeño y amigable. Diseño estilo futurista pero tierno, como un asistente robótico. Que parezca ágil y listo para esquivar bombas. Estilo píxel art. Fondo transparente.. In-Game asset. 2d. High contrast. No shadows
Quiero que la explosión tenga un estilo caricaturesco con una gran nube de humo gris, llamas anaranjadas y un destello amarillo brillante en el centro, que dure menos de un segundo; debe verse redonda, con bordes irregulares como una explosión de cómic, incluyendo pequeños fragmentos o chispas que salgan disparados, todo en pixel art, sin realismo, solo visualmente impactante y llamativa.. In-Game asset. 2d. High contrast. No shadows
La bomba debe tener un diseño caricaturesco, en forma de esfera negra o gris oscuro con un brillo suave, una mecha encendida con fuego animado en la punta, y si es posible, una carita enojada o con expresión divertida; su estilo debe pixel art limpio, con líneas simples y colores llamativos para que resalte bien contra el fondo del cielo, y debe tener un ligero giro o movimiento mientras cae para darle vida.. In-Game asset. 2d. High contrast. No shadows
El cielo debe ser un fondo claro y agradable, de color azul celeste con un suave degradado hacia un azul más claro en la parte inferior, acompañado de algunas nubes blancas esponjosas flotando lentamente para dar una sensación de movimiento y vida; todo en pixel art, sin muchos detalles, con un ambiente brillante, alegre y apto para un juego casual visualmente amigable.. In-Game asset. 2d. High contrast. No shadows
El suelo debe ser una plataforma horizontal clara y visible en la parte inferior de la pantalla, con diseño tipo césped verde brillante sobre tierra marrón, estilo pixel art, con bordes irregulares o redondeados para que no se vea plano ni rígido; puede tener pequeños detalles como piedritas o raíces, pero sin recargarlo, y debe contrastar bien con el cielo para que el personaje destaque al caminar sobre él.. In-Game asset. 2d. High contrast. No shadows
La rana debe ser un personaje simpático de color verde brillante, con ojos grandes y expresivos que miran al frente, mejillas redondeadas y una sonrisa divertida; su cuerpo debe ser compacto y ligeramente ovalado, con patas traseras marcadas pero no exageradas, diseñada en estilo pixel art, y puede tener una pequeña animación de parpadeo o un leve rebote para darle vida; el fondo debe ser transparente y el estilo visual debe coincidir con un juego colorido y casual.. In-Game asset. 2d. High contrast. No shadows
El zorro debe ser un personaje ágil y simpático, de color naranja con detalles blancos en la cara, pecho y punta de la cola, orejas grandes y puntiagudas, ojos vivaces y una expresión decidida pero amigable; su cuerpo debe ser estilizado pero caricaturesco, con una gran cola curva que le dé personalidad, y puede tener una pequeña animación como mover la cola o parpadear; el estilo debe ser pixel art suave, con fondo transparente y colores vivos que lo hagan destacar en un entorno claro y alegre.. In-Game asset. 2d. High contrast. No shadows
El alien debe ser un personaje pequeño y tierno, con piel verde o azul brillante, cabeza grande en forma ovalada, ojos negros y brillantes de estilo caricatura, y dos antenitas cortas que se muevan ligeramente; su cuerpo debe ser redondeado y compacto, con brazos y piernas cortas, dando una apariencia amigable y divertida; el diseño debe ser en estilo 2D o pixel art suave, con una animación sutil como parpadeo o balanceo, y fondo transparente para integrarse bien en un juego colorido y casual.. In-Game asset. 2d. High contrast. No shadows
El mago debe ser un personaje pequeño y encantador, con una túnica azul oscuro o morada, un sombrero puntiagudo con estrellas o una hebilla dorada, barba blanca corta y ojos brillantes que transmitan sabiduría y simpatía; su cuerpo debe ser compacto y redondeado, estilo caricatura o pixel art, con detalles sencillos pero reconocibles como un bastón en la mano o un libro colgando; puede tener una animación sutil como parpadeo, movimiento de barba o chispa mágica en la punta del sombrero, y el fondo debe ser transparente para integrarse bien en un entorno colorido y fantástico. In-Game asset. 2d. High contrast. No shadows
El pingüino debe ser un personaje tierno y redondeado, con cuerpo negro y blanco bien definido, picos y patas naranjas, y ojos grandes y expresivos que transmitan simpatía; puede llevar una bufanda roja o gorrito invernal como detalle extra, y debe tener una animación suave de balanceo lateral o parpadeo para darle vida; el estilo debe ser pixel art limpio, con trazos simples y colores vivos, y el fondo transparente para que se integre perfectamente en un juego casual y alegre. In-Game asset. 2d. High contrast. No shadows
El fantasma debe tener un diseño amigable y en estilo pixel art, con cuerpo flotante de forma ovalada o en forma de gota invertida, color blanco o celeste pálido con bordes suaves y contorno oscuro para resaltar; su cara debe incluir ojos grandes y redondos con expresión simpática o curiosa, y una boca pequeña en forma de sonrisa o círculo; puede tener una animación sutil de flotación vertical, como si levitara suavemente en el aire, y opcionalmente incluir detalles como un leve brillo, transparencia o una colita ondeante en la parte inferior; el fondo debe ser transparente, y su estilo visual debe encajar en un mundo colorido y casual.. In-Game asset. 2d. High contrast. No shadows
El pirata debe ser un personaje simpático y reconocible en estilo pixel art, con sombrero tricornio negro o marrón con una calavera blanca en el centro, un parche en uno de los ojos, barba o bigote corto, y una expresión decidida o divertida; su ropa debe incluir una chaqueta roja o azul, cinturón ancho, pantalones cortos y botas, todo con detalles simples pero claros; puede tener un accesorio como una espada al cinto o un loro en el hombro, y su animación debe mostrarlo caminando o balanceándose ligeramente como si estuviera en un barco; el fondo debe ser transparente y el diseño debe ser compacto, ideal para un juego colorido y caricaturesco.. In-Game asset. 2d. High contrast. No shadows
El ninja debe ser un personaje compacto y ágil en estilo pixel art, con un traje negro o azul oscuro que cubra todo su cuerpo excepto los ojos, los cuales deben ser expresivos y ligeramente entrecerrados para mostrar concentración o determinación; puede tener una banda o pañuelo rojo atado en la frente que se extienda hacia atrás con movimiento, y detalles mínimos como cinturón, guantes o pequeñas armas visibles como una estrella ninja al costado; el diseño debe ser simple pero dinámico, con animación sutil de respiración o movimiento de tela, y fondo transparente, ideal para integrarse en un juego de acción o reflejos con estética caricaturesca o retro.. In-Game asset. 2d. High contrast. No shadows
El unicornio debe ser un personaje adorable y colorido en estilo pixel art, con cuerpo erguido sobre dos patas traseras como si caminara o corriera, crin y cola multicolor en tonos pastel (rosa, celeste, violeta), cuerno dorado o brillante en la frente, y una expresión alegre o soñadora en su rostro; su cuerpo debe ser blanco o lavanda claro, con detalles simples como cascos marcados y orejitas visibles, y su animación puede incluir un suave rebote o movimiento de la crin al desplazarse; el estilo debe ser caricaturesco y alegre, con fondo transparente y un diseño encantador que encaje bien en un juego mágico, infantil o casual.. In-Game asset. 2d. High contrast. No shadows
El vampiro debe ser un personaje pequeño y estilizado en estilo pixel art, con piel pálida o gris clara, ojos rojos o morados brillantes, colmillos visibles en una leve sonrisa y una capa negra o púrpura que se mueva ligeramente al caminar; debe llevar un traje elegante con chaleco rojo, camisa blanca y pantalones oscuros, y tener el clásico peinado de viuda con cabello negro bien marcado; su expresión puede ser confiada o misteriosa, y la animación puede incluir un leve flote o agitación de la capa; todo debe ser caricaturesco y simpático, sin parecer aterrador, con fondo transparente para integrarse en un juego casual o fantástico.. In-Game asset. 2d. High contrast. No shadows
El pato debe ser un personaje simpático y reconocible en estilo pixel art, con cuerpo amarillo redondeado, pico naranja ancho y ojos grandes y amigables; debe estar de pie sobre dos patas naranjas, con pequeñas alas a los costados, y puede tener una expresión alegre o curiosa; su diseño debe ser simple pero encantador, con animación sutil como un leve balanceo, parpadeo o aleteo, y fondo transparente; opcionalmente puede llevar un gorrito, flotador o bufanda para agregar personalidad, siendo perfecto para un juego casual, infantil o humorístico.. In-Game asset. 2d. High contrast. No shadows
El perro debe ser un personaje adorable y expresivo en estilo pixel art, con cuerpo compacto y simpático, orejas grandes (pueden ser caídas o puntiagudas según la raza), ojos redondos y brillantes que transmitan alegría, y una cola visible que se mueva suavemente; su pelaje puede ser marrón, beige, blanco o una combinación simple de colores, con un diseño caricaturesco fácil de reconocer; debe estar de pie sobre dos patas traseras como un personaje antropomorfo, con una leve sonrisa y movimiento de balanceo o parpadeo como animación sutil; el fondo debe ser transparente y su estilo visual debe encajar en un juego casual, amigable y colorido.. In-Game asset. 2d. High contrast. No shadows
El alien debe ser un personaje de aspecto inteligente y misterioso en estilo pixel art, con una gran cabeza semitransparente que permita ver un cerebro rosado o verdoso expuesto, con textura simple y líneas marcadas que lo hagan reconocible; los ojos deben ser grandes, brillantes y expresivos, de color azul, morado o rojo, transmitiendo inteligencia o curiosidad; su cuerpo debe ser delgado o compacto, con brazos largos o dedos visibles, de color verde, gris o púrpura, con detalles mínimos como placas, símbolos alienígenas o un cinturón tecnológico; puede flotar o tener animación de levitación, con fondo transparente y un estilo que combine lo caricaturesco con lo ligeramente inquietante, perfecto para un juego de ciencia ficción o niveles espaciales.. In-Game asset. 2d. High contrast. No shadows
un cuadrado amarillo con ojos cudrados celestes y boca celeste rectangular. In-Game asset. 2d. High contrast. No shadows