User prompt
Has que la pared sea una línea recta
User prompt
Las partes sin textura ponle el número (1)
User prompt
Has que el piso y el techo sean parte del escenario ósea pseudo-3D
User prompt
Haz que el piso que es el símbolo (8) siempre esté abajo del personaje actuando como piso y poder caminar sobre el
User prompt
Has que el piso siempre esté abajo del personaje
User prompt
Haz que las paredes tengan este símbolo (7) el piso el símbolo (8) y el techo el símbolo (9)
User prompt
Pon que el jugador siempre aparezca en la coordenada ( 0 ) y has que las paredes tengan la altura de ( y 1 )hasta el máximo de( y 5 )
User prompt
Okey, crea una detección automática del piso techo y paredes para evitar confusiones con estas
User prompt
Haz que las paredes tengan colision
User prompt
Haz que las paredes tengan textura del famoso juego Backrooms
User prompt
No mira estas son la regla. 1- vamos a usar toda la pantalla 2- no uses cosas 2D 3- haz y imita lo que te diga pero usando la técnica llamada pseudo-3D
User prompt
Borra todo el código
User prompt
Borra todo compénsenos de nuevo
User prompt
Haz que el jugador tenga la visión en primera persona vamos a usar la isometría para el techo y el piso para dar el efecto 3D que no es 3D para los lados haz paredes y pilares que se puedan colisionar
User prompt
Please fix the bug: 'undefined is not an object (evaluating 'isoFloor.skew.x = -0.3')' in or related to this line: 'isoFloor.skew.x = -0.3;' Line Number: 183
User prompt
Haz espacios isométricos para el piso el techo
User prompt
Haz un sistema de rotación de cámara que deslizando el dedo se vea para una dirección u otra ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Please fix the bug: 'TypeError: undefined is not an object (evaluating 'sanityText.style.fill = sanityColor')' in or related to this line: 'sanityText.style.fill = sanityColor;' Line Number: 369
Code edit (1 edits merged)
Please save this source code
User prompt
Backrooms Infinite Escape
Initial prompt
Hola Ava, mi juego trata de una temática de juego muy popular llamada Backrooms estuvo de moda en el 2020. Quiero que crees habitaciones infinitas y que allá monstruos que te dire más adelante
/**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 });
===================================================================
--- original.js
+++ change.js
@@ -1,341 +1,6 @@
-/****
-* Plugins
-****/
-var tween = LK.import("@upit/tween.v1");
-
-/****
-* Classes
-****/
-var Monster = Container.expand(function () {
- var self = Container.call(this);
- var monsterGraphic = self.attachAsset('monster', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.speed = 1.5;
- self.alertLevel = 0;
- self.patrolAngle = Math.random() * Math.PI * 2;
- self.patrolTimer = 0;
- self.update = function () {
- if (!player) return;
- var dx = player.x - self.x;
- var dy = player.y - self.y;
- var distance = Math.sqrt(dx * dx + dy * dy);
- self.patrolTimer++;
- if (distance < 200) {
- // Player detected - chase
- self.alertLevel = Math.min(100, self.alertLevel + 2);
- if (self.alertLevel > 50) {
- // Active chase
- var moveX = dx / distance * self.speed * 1.5;
- var moveY = dy / distance * self.speed * 1.5;
- self.x += moveX;
- self.y += moveY;
- if (LK.ticks % 120 === 0) {
- LK.getSound('monster_growl').play();
- }
- }
- } else {
- // Patrol behavior
- self.alertLevel = Math.max(0, self.alertLevel - 1);
- if (self.patrolTimer % 90 === 0) {
- self.patrolAngle = Math.random() * Math.PI * 2;
- }
- self.x += Math.cos(self.patrolAngle) * self.speed;
- self.y += Math.sin(self.patrolAngle) * self.speed;
- }
- // Keep monster in bounds
- self.x = Math.max(-320, Math.min(320, self.x));
- self.y = Math.max(-320, Math.min(320, self.y));
- // Visual alert indication
- if (self.alertLevel > 50) {
- monsterGraphic.tint = 0xff4444;
- } else if (self.alertLevel > 20) {
- monsterGraphic.tint = 0xff8888;
- } else {
- monsterGraphic.tint = 0x8b0000;
- }
- };
- return self;
-});
-var Player = Container.expand(function () {
- var self = Container.call(this);
- var playerGraphic = self.attachAsset('player_dot', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.speed = 4;
- self.sanity = 100;
- self.moving = false;
- self.moveTo = function (targetX, targetY) {
- if (self.moving) return;
- // Check bounds
- if (targetX < -350 || targetX > 350 || targetY < -350 || targetY > 350) return;
- self.moving = true;
- tween(self, {
- x: targetX,
- y: targetY
- }, {
- duration: 400,
- easing: tween.easeOut,
- onFinish: function onFinish() {
- self.moving = false;
- LK.getSound('step').play();
- }
- });
- };
- self.update = function () {
- // Sanity decreases over time
- if (LK.ticks % 180 === 0) {
- self.sanity = Math.max(0, self.sanity - 1);
- }
- // Check monster proximity
- if (currentRoom && currentRoom.monster) {
- var dx = self.x - currentRoom.monster.x;
- var dy = self.y - currentRoom.monster.y;
- var distance = Math.sqrt(dx * dx + dy * dy);
- if (distance < 100) {
- self.sanity -= 0.3;
- }
- if (distance < 30) {
- LK.showGameOver();
- }
- }
- // Check exit
- if (currentRoom && currentRoom.exit) {
- var dx = self.x - currentRoom.exit.x;
- var dy = self.y - currentRoom.exit.y;
- var distance = Math.sqrt(dx * dx + dy * dy);
- if (distance < 50) {
- roomsEscaped++;
- LK.setScore(roomsEscaped);
- LK.getSound('escape').play();
- generateNewRoom();
- if (roomsEscaped >= 15) {
- LK.showYouWin();
- }
- }
- }
- if (self.sanity <= 0) {
- LK.showGameOver();
- }
- };
- return self;
-});
-var Room = Container.expand(function () {
- var self = Container.call(this);
- // Floor
- var floor = self.attachAsset('room_floor', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- // Walls
- var topWall = self.attachAsset('room_wall', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: 0,
- y: -400,
- scaleX: 14
- });
- var bottomWall = self.attachAsset('room_wall', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: 0,
- y: 400,
- scaleX: 14
- });
- var leftWall = self.attachAsset('room_wall', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: -400,
- y: 0,
- rotation: Math.PI / 2,
- scaleX: 14
- });
- var rightWall = self.attachAsset('room_wall', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: 400,
- y: 0,
- rotation: Math.PI / 2,
- scaleX: 14
- });
- // Lighting
- var light1 = self.attachAsset('light_fixture', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: -150,
- y: -150,
- alpha: 0.8
- });
- var light2 = self.attachAsset('light_fixture', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: 150,
- y: 150,
- alpha: 0.8
- });
- // Doors
- self.doors = [];
- self.createDoors = function () {
- var numDoors = Math.floor(Math.random() * 3) + 2;
- var positions = [{
- x: 0,
- y: -380,
- dir: 'north'
- }, {
- x: 0,
- y: 380,
- dir: 'south'
- }, {
- x: -380,
- y: 0,
- dir: 'west'
- }, {
- x: 380,
- y: 0,
- dir: 'east'
- }];
- for (var i = 0; i < numDoors; i++) {
- var pos = positions[Math.floor(Math.random() * positions.length)];
- var door = self.attachAsset('door', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: pos.x + (Math.random() - 0.5) * 100,
- y: pos.y
- });
- door.direction = pos.dir;
- self.doors.push(door);
- }
- };
- // Exit
- self.hasExit = Math.random() < 0.2;
- if (self.hasExit) {
- self.exit = self.attachAsset('exit_portal', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: (Math.random() - 0.5) * 600,
- y: (Math.random() - 0.5) * 600
- });
- // Pulsing effect for exit
- tween(self.exit, {
- alpha: 0.3
- }, {
- duration: 1000,
- easing: tween.easeInOut,
- yoyo: true,
- repeat: -1
- });
- }
- // Monster
- if (Math.random() < 0.4) {
- self.monster = self.addChild(new Monster());
- self.monster.x = (Math.random() - 0.5) * 500;
- self.monster.y = (Math.random() - 0.5) * 500;
- }
- return self;
-});
-
-/****
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x1a1a1a
-});
-
-/****
-* Game Code
-****/
-var player;
-var currentRoom;
-var roomsEscaped = 0;
-// UI
-var sanityBar = new Text2('Sanity: 100', {
- size: 50,
- fill: 0x00ff00
-});
-sanityBar.anchor.set(0, 0);
-LK.gui.topRight.addChild(sanityBar);
-var escapeCounter = new Text2('Rooms Escaped: 0', {
- size: 50,
- fill: 0xffffff
-});
-escapeCounter.anchor.set(0, 0);
-escapeCounter.y = 70;
-LK.gui.topRight.addChild(escapeCounter);
-function generateNewRoom() {
- // Clear current room
- if (currentRoom) {
- game.removeChild(currentRoom);
- }
- // Create new room
- currentRoom = game.addChild(new Room());
- currentRoom.x = 1024;
- currentRoom.y = 1366;
- currentRoom.createDoors();
- // Reset player position
- if (player) {
- player.x = 0;
- player.y = 0;
- player.sanity = Math.min(100, player.sanity + 10); // Small sanity boost for progress
- }
-}
-function initGame() {
- player = game.addChild(new Player());
- player.x = 1024;
- player.y = 1366;
- generateNewRoom();
-}
-game.down = function (x, y, obj) {
- if (!player || player.moving) return;
- var gamePos = game.toLocal({
- x: x,
- y: y
- });
- var targetX = gamePos.x - 1024;
- var targetY = gamePos.y - 1366;
- // Check door clicks
- if (currentRoom && currentRoom.doors) {
- for (var i = 0; i < currentRoom.doors.length; i++) {
- var door = currentRoom.doors[i];
- var dx = targetX - door.x;
- var dy = targetY - door.y;
- var distance = Math.sqrt(dx * dx + dy * dy);
- if (distance < 60) {
- LK.getSound('door_sound').play();
- generateNewRoom();
- return;
- }
- }
- }
- // Move player
- player.moveTo(targetX, targetY);
-};
-game.update = function () {
- // Update UI
- if (player) {
- var sanityColor = 0x00ff00;
- if (player.sanity < 50) sanityColor = 0xffff00;
- if (player.sanity < 25) sanityColor = 0xff0000;
- sanityBar.setText('Sanity: ' + Math.floor(player.sanity));
- sanityBar.tint = sanityColor;
- }
- escapeCounter.setText('Rooms Escaped: ' + roomsEscaped);
- // Flickering lights
- if (currentRoom && LK.ticks % 60 === 0) {
- for (var i = 0; i < currentRoom.children.length; i++) {
- var child = currentRoom.children[i];
- if (child.alpha !== undefined && Math.random() < 0.1) {
- var originalAlpha = child.alpha;
- child.alpha = 0.2;
- tween(child, {
- alpha: originalAlpha
- }, {
- duration: 100
- });
- }
- }
- }
-};
-// Start the game
-initGame();
\ No newline at end of file
+ backgroundColor: 0x000000
+});
\ No newline at end of file