User prompt
Добавь фоновую графику
User prompt
После 1 миллисекунды убийце отправляется фото того кого надо убить
User prompt
Если убить не того то то ты проиграешь
User prompt
На телефоне случайно появляется фото одного типа врага
User prompt
Создай типы врагов миллионер бомж человек в красном свитере женщина в розовом элегантный в костюме пиццы
User prompt
На телефоне фотка того кого надо убить
User prompt
Телефон надо двинуть с помощью сенсорного касания его достанешь на весь экран
User prompt
При нажатие на телефон игрок не стреляет а на экра не появляется телефон во весь рост с сообщениями
User prompt
Fix Bug: 'TypeError: phone.containsPoint is not a function' in this line: 'if (phone.containsPoint(touchPos)) {' Line Number: 138
User prompt
При нажатие на телефон открываются сообщения
User prompt
Сообщение про цели и их фото
User prompt
С боку есть телефон на который приходят сообщения о целях и их Артем
User prompt
Убийца может только поворачиваться в стороны
User prompt
Добавь сенсорное управление перемещение на одном месте
User prompt
Кружочек управления находиться в нижнем углу
User prompt
Джойстик находиться в нижнем углу стреляет при нажатие на экран
User prompt
Вращение происходит с помощью джойстика
User prompt
Мы можем крутиться на одном мес те
Initial prompt
2d killer
/**** * Classes ****/ // Define the Hitman class var Hitman = Container.expand(function () { var self = Container.call(this); var hitmanGraphics = self.createAsset('hitman', 'Hitman character', 0.5, 0.5); self.target = null; self.speed = 3; self.moveLeft = function () { self.x -= self.speed; }; self.moveRight = function () { self.x += self.speed; }; self.targetX = self.x; self.targetY = self.y; self.setTargetPosition = function (x) { self.targetX = x; }; self.updatePosition = function () { if (self.x < self.targetX) { self.moveRight(); } else if (self.x > self.targetX) { self.moveLeft(); } }; }); // Define the Millionaire enemy class var MillionaireEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('millionaire', 'Millionaire enemy', 0.5, 0.5); self.speed = 2; self.patrol = function () { self.x += self.speed; if (self.x > 2048 - self.width / 2 || self.x < self.width / 2) { self.speed *= -1; } }; }); // Define the Homeless enemy class var HomelessEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('homeless', 'Homeless enemy', 0.5, 0.5); self.speed = 1; self.patrol = function () { self.x += self.speed; if (self.x > 2048 - self.width / 2 || self.x < self.width / 2) { self.speed *= -1; } }; }); // Define the RedSweater enemy class var RedSweaterEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('redsweater', 'Person in red sweater enemy', 0.5, 0.5); self.speed = 2.5; self.patrol = function () { self.x += self.speed; if (self.x > 2048 - self.width / 2 || self.x < self.width / 2) { self.speed *= -1; } }; }); // Define the PinkLady enemy class var PinkLadyEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('pinklady', 'Woman in pink enemy', 0.5, 0.5); self.speed = 1.5; self.patrol = function () { self.x += self.speed; if (self.x > 2048 - self.width / 2 || self.x < self.width / 2) { self.speed *= -1; } }; }); // Define the Elegant enemy class var ElegantEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('elegant', 'Elegant in suit enemy', 0.5, 0.5); self.speed = 3; self.patrol = function () { self.x += self.speed; if (self.x > 2048 - self.width / 2 || self.x < self.width / 2) { self.speed *= -1; } }; }); // Define the PizzaGuy enemy class var PizzaGuyEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.createAsset('pizzaguy', 'Pizza guy enemy', 0.5, 0.5); self.speed = 2.2; self.patrol = function () { self.x += self.speed; if (self.x > 2048 - self.width / 2 || self.x < self.width / 2) { self.speed *= -1; } }; }); // Define the Bullet class for Hitman var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.createAsset('bullet', 'Bullet fired by Hitman', 0.5, 0.5); self.speed = 10; self.move = function () { self.y -= self.speed; }; }); // Define the Phone class var Phone = Container.expand(function () { var self = Container.call(this); var phoneGraphics = self.createAsset('phone', 'Phone to receive messages', 0.5, 1); self.messages = []; self.messagesVisible = false; self.addMessage = function (message, photoAssetId) { self.messages.push({ message: message, photo: photoAssetId }); // Update the phone display with the new message and photo var messageText = new Text2(message, { size: 30, fill: '#ffffff' }); var photoSprite = self.createAsset(photoAssetId, 'Target photo', 0.5, 0.5); // Position the message and photo on the phone display // This is a simplified example, in a real scenario we would need to handle layout and scrolling messageText.y = self.height - self.messages.length * 100; photoSprite.y = messageText.y + messageText.height + 10; photoSprite.width = self.width * 0.8; // Set the photo width to 80% of the phone width photoSprite.height = photoSprite.width; // Keep the aspect ratio of the photo photoSprite.x = self.width / 2; // Center the photo on the phone self.addChild(messageText); self.addChild(photoSprite); }; self.toggleMessages = function () { self.messagesVisible = !self.messagesVisible; // Toggle the visibility of message elements and randomly display an enemy photo var enemyTypes = ['millionaire', 'homeless', 'redsweater', 'pinklady', 'elegant', 'pizzaguy']; var randomEnemyType = enemyTypes[Math.floor(Math.random() * enemyTypes.length)]; for (var i = 0; i < self.children.length; i++) { self.children[i].visible = self.messagesVisible; } if (self.messagesVisible && self.messages.length > 0) { var lastMessage = self.messages[self.messages.length - 1]; lastMessage.photo = randomEnemyType; // Update the photo display with the new random enemy photo var photoSprite = self.getChildByName('Target photo'); if (photoSprite) { photoSprite.texture = LK.getAsset(randomEnemyType, 'Target photo', 0.5, 0.5).texture; } } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Initialize important asset arrays var enemies = []; var bullets = []; var hitman; // Initialize the Hitman character function initHitman() { hitman = game.addChild(new Hitman()); hitman.x = 2048 / 2; hitman.y = 2732 - 100; } // Initialize enemies function initEnemies() { var enemyClasses = [MillionaireEnemy, HomelessEnemy, RedSweaterEnemy, PinkLadyEnemy, ElegantEnemy, PizzaGuyEnemy]; for (var i = 0; i < enemyClasses.length; i++) { var EnemyClass = enemyClasses[i]; var enemy = new EnemyClass(); enemy.x = 100 + i * 300; // Adjust spacing to fit all enemy types enemy.y = 100; enemies.push(enemy); game.addChild(enemy); } } // Check for bullet-enemy collisions function checkCollisions() { for (var b = bullets.length - 1; b >= 0; b--) { for (var e = enemies.length - 1; e >= 0; e--) { if (bullets[b].intersects(enemies[e])) { if (hitman.target !== enemies[e]) { LK.showGameOver(); } else { enemies[e].destroy(); enemies.splice(e, 1); } bullets[b].destroy(); bullets.splice(b, 1); break; } } } } // Handle touch events for movement and shooting function handleTouch(obj) { var touchPos = obj.event.getLocalPosition(game); hitman.setTargetPosition(touchPos.x); // Check if the phone was touched and toggle messages if (phone.intersects({ x: touchPos.x, y: touchPos.y, width: 1, height: 1 })) { phone.toggleMessages(); if (phone.messagesVisible && phone.messages.length > 0) { var lastMessage = phone.messages[phone.messages.length - 1]; hitman.target = enemies.find(function (enemy) { return enemy.createAsset === lastMessage.photo; }); } // Show the phone full-screen with messages if (phone.messagesVisible) { phone.scale.set(game.width / phone.width, game.height / phone.height); phone.x = game.width / 2; phone.y = game.height / 2; phone.pivot.set(0.5, 0.5); } else { // Reset the phone to its original size and position phone.scale.set(1, 1); phone.x = 2048 - phone.width / 2; phone.y = 2732 - phone.height / 2; phone.pivot.set(0.5, 1); } return; } // Shoot a bullet var bullet = new Bullet(); bullet.x = hitman.x; bullet.y = hitman.y; bullets.push(bullet); game.addChild(bullet); } // Game tick update LK.on('tick', function () { // Move hitman towards target position hitman.updatePosition(); // Move enemies for (var i = 0; i < enemies.length; i++) { enemies[i].patrol(); } // Move bullets for (var j = bullets.length - 1; j >= 0; j--) { bullets[j].move(); // Remove bullets that are off-screen if (bullets[j].y < -50) { bullets[j].destroy(); bullets.splice(j, 1); } } // Check for collisions checkCollisions(); }); // Initialize game elements initHitman(); initEnemies(); // Initialize the Phone object var phone = game.addChild(new Phone()); phone.x = 2048 - phone.width / 2; phone.y = 2732 / 2; // Add touch event listener to the game for movement and shooting game.on('down', handleTouch);
===================================================================
--- original.js
+++ change.js
@@ -4,8 +4,9 @@
// Define the Hitman class
var Hitman = Container.expand(function () {
var self = Container.call(this);
var hitmanGraphics = self.createAsset('hitman', 'Hitman character', 0.5, 0.5);
+ self.target = null;
self.speed = 3;
self.moveLeft = function () {
self.x -= self.speed;
};
@@ -192,10 +193,14 @@
function checkCollisions() {
for (var b = bullets.length - 1; b >= 0; b--) {
for (var e = enemies.length - 1; e >= 0; e--) {
if (bullets[b].intersects(enemies[e])) {
- enemies[e].destroy();
- enemies.splice(e, 1);
+ if (hitman.target !== enemies[e]) {
+ LK.showGameOver();
+ } else {
+ enemies[e].destroy();
+ enemies.splice(e, 1);
+ }
bullets[b].destroy();
bullets.splice(b, 1);
break;
}
@@ -214,8 +219,14 @@
width: 1,
height: 1
})) {
phone.toggleMessages();
+ if (phone.messagesVisible && phone.messages.length > 0) {
+ var lastMessage = phone.messages[phone.messages.length - 1];
+ hitman.target = enemies.find(function (enemy) {
+ return enemy.createAsset === lastMessage.photo;
+ });
+ }
// Show the phone full-screen with messages
if (phone.messagesVisible) {
phone.scale.set(game.width / phone.width, game.height / phone.height);
phone.x = game.width / 2;
Ниндзя с винтовкой лежит. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Телефон с приложениями. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Патрон винтовки. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Богатый человек идёт. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Бомж идёт. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Дорога и кусты. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.