Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
Drift City Online
User prompt
Bana GTA 5 tarzı arkadaşlarla sunucuya çevrimiçi bir şekilde araba satın alıp satabildiğimiz otobanda arabalarla makaslarla,drift vesaire yapabildiğimiz bir çevrimiçi oyun yapabilirmisin ve ayrıca Herkesin kendisine ait bir sunucu açabilmeli ve isteyen şifreli yapabilmeli ve bu arabalarda gerçek hayatta kalma lüks arabalardan bir kaçı olsun ve ekstra olarak BMW nin tüm modeller olsun araba satın alma işleminde arabayı garajda görebilelim ve değiştirilebilelim
User prompt
Herkes kendine ait bir sunucu açabilmeli ve isteyen şifreli yapabilmeli ve bu arabalar gerçek hayattaki lüks arabalardan bir kaçı olsun ve ekstra olarak BMW nin tüm modelleri olsun araba satın aldığımızda arabayı garajda görebilelim ve modifiye edebilelim
Initial prompt
Bana GTA 5 tarzı arkadaşlarla server açıp online bir şekilde araba satın alıp satabildiğimiz otobanda aldığımız arabalarla makas,drift vesaire yapabildiğimiz bir online oyun
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var Car = Container.expand(function (carType, price) { var self = Container.call(this); self.carType = carType || 'car'; self.price = price || 1000; self.speed = 0; self.maxSpeed = 8; self.acceleration = 0.3; self.rotation = 0; self.isPlayer = false; var carGraphics = self.attachAsset(self.carType, { anchorX: 0.5, anchorY: 0.5 }); self.accelerate = function () { if (self.speed < self.maxSpeed) { self.speed += self.acceleration; } }; self.brake = function () { if (self.speed > 0) { self.speed -= self.acceleration * 2; } if (self.speed < 0) { self.speed = 0; } }; self.drift = function () { if (self.speed > 2) { LK.getSound('drift').play(); LK.effects.flashObject(self, 0xffff00, 500); } }; self.update = function () { if (self.isPlayer) { var moveX = Math.cos(self.rotation) * self.speed; var moveY = Math.sin(self.rotation) * self.speed; self.x += moveX; self.y += moveY; // Keep car on screen if (self.x < 60) { self.x = 60; } if (self.x > 1988) { self.x = 1988; } if (self.y < 60) { self.y = 60; } if (self.y > 2672) { self.y = 2672; } // Natural slowdown if (self.speed > 0) { self.speed -= 0.05; } if (self.speed < 0) { self.speed = 0; } } }; return self; }); var CarDealer = Container.expand(function () { var self = Container.call(this); self.cars = [{ type: 'bmw', name: 'BMW M3', price: 5000 }, { type: 'mercedes', name: 'Mercedes AMG', price: 7000 }, { type: 'audi', name: 'Audi R8', price: 9000 }, { type: 'car', name: 'Basic Car', price: 1000 }]; var dealerBg = self.attachAsset('dealership', { anchorX: 0.5, anchorY: 0.5 }); var titleText = new Text2('Car Dealership', { size: 60, fill: '#ffffff' }); titleText.anchor.set(0.5, 0); titleText.x = 0; titleText.y = -280; self.addChild(titleText); self.showCars = function () { for (var i = 0; i < self.cars.length; i++) { var carData = self.cars[i]; var carSlot = new Container(); var slotBg = carSlot.attachAsset('carSlot', { anchorX: 0.5, anchorY: 0.5 }); var carPreview = carSlot.attachAsset(carData.type, { anchorX: 0.5, anchorY: 0.5, scaleX: 0.7, scaleY: 0.7 }); var priceText = new Text2('$' + carData.price, { size: 30, fill: '#00ff00' }); priceText.anchor.set(0.5, 0); priceText.y = 35; carSlot.addChild(priceText); carSlot.x = i % 2 * 200 - 100; carSlot.y = Math.floor(i / 2) * 120 - 100; carSlot.carData = carData; carSlot.down = function (x, y, obj) { buyCar(this.carData); }; self.addChild(carSlot); } }; return self; }); var Server = Container.expand(function (name, hasPassword) { var self = Container.call(this); self.serverName = name || 'My Server'; self.hasPassword = hasPassword || false; self.players = []; var serverBg = self.attachAsset('serverButton', { anchorX: 0, anchorY: 0 }); var nameText = new Text2(self.serverName, { size: 40, fill: '#ffffff' }); nameText.anchor.set(0.5, 0.5); nameText.x = 150; nameText.y = 40; self.addChild(nameText); self.down = function (x, y, obj) { joinServer(self); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x1a1a1a }); /**** * Game Code ****/ // Game state var gameState = 'menu'; // menu, server, garage, dealership, driving var currentServer = null; var playerCar = null; var ownedCars = storage.ownedCars || []; var playerMoney = storage.playerMoney || 10000; var servers = []; // Initialize storage defaults if (!storage.ownedCars) { storage.ownedCars = [{ type: 'car', name: 'Starter Car' }]; ownedCars = storage.ownedCars; } // UI Elements var moneyDisplay = new Text2('Money: $' + playerMoney, { size: 50, fill: '#00ff00' }); moneyDisplay.anchor.set(1, 0); LK.gui.topRight.addChild(moneyDisplay); var stateDisplay = new Text2('Main Menu', { size: 40, fill: '#ffffff' }); stateDisplay.anchor.set(0.5, 0); LK.gui.top.addChild(stateDisplay); // Game elements var road = game.addChild(LK.getAsset('road', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366 })); var track = game.addChild(LK.getAsset('track', { anchorX: 0.5, anchorY: 0.5, x: 1600, y: 500 })); // Menu buttons var createServerBtn = game.addChild(LK.getAsset('serverButton', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 800 })); var createServerText = new Text2('Create Server', { size: 40, fill: '#ffffff' }); createServerText.anchor.set(0.5, 0.5); createServerBtn.addChild(createServerText); var garageBtn = game.addChild(LK.getAsset('serverButton', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 920 })); var garageText = new Text2('Garage', { size: 40, fill: '#ffffff' }); garageText.anchor.set(0.5, 0.5); garageBtn.addChild(garageText); var dealershipBtn = game.addChild(LK.getAsset('serverButton', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1040 })); var dealershipText = new Text2('Car Dealership', { size: 40, fill: '#ffffff' }); dealershipText.anchor.set(0.5, 0.5); dealershipBtn.addChild(dealershipText); // Initialize some demo servers for (var i = 0; i < 3; i++) { var server = new Server('Server ' + (i + 1), i === 0); server.x = 400; server.y = 600 + i * 100; servers.push(server); game.addChild(server); } var dealer = new CarDealer(); dealer.x = 1024; dealer.y = 1366; dealer.visible = false; game.addChild(dealer); // Functions function updateMoneyDisplay() { moneyDisplay.setText('Money: $' + playerMoney); storage.playerMoney = playerMoney; } function buyCar(carData) { if (playerMoney >= carData.price) { playerMoney -= carData.price; ownedCars.push(carData); storage.ownedCars = ownedCars; updateMoneyDisplay(); LK.effects.flashScreen(0x00ff00, 500); } else { LK.effects.flashScreen(0xff0000, 500); } } function showGarage() { gameState = 'garage'; stateDisplay.setText('Garage'); hideAllMenus(); for (var i = 0; i < ownedCars.length; i++) { var carData = ownedCars[i]; var garageCar = new Car(carData.type, carData.price); garageCar.x = 300 + i % 3 * 200; garageCar.y = 800 + Math.floor(i / 3) * 150; garageCar.down = function (x, y, obj) { selectCar(this); }; game.addChild(garageCar); } } function selectCar(car) { if (playerCar) { playerCar.destroy(); } playerCar = new Car(car.carType, car.price); playerCar.x = 1024; playerCar.y = 1200; playerCar.isPlayer = true; game.addChild(playerCar); gameState = 'driving'; stateDisplay.setText('Driving'); hideAllMenus(); LK.playMusic('cityTrack'); } function joinServer(server) { currentServer = server; gameState = 'server'; stateDisplay.setText('Server: ' + server.serverName); hideAllMenus(); if (!playerCar && ownedCars.length > 0) { playerCar = new Car(ownedCars[0].type, ownedCars[0].price); playerCar.x = 1024; playerCar.y = 1200; playerCar.isPlayer = true; game.addChild(playerCar); } } function hideAllMenus() { createServerBtn.visible = false; garageBtn.visible = false; dealershipBtn.visible = false; dealer.visible = false; for (var i = 0; i < servers.length; i++) { servers[i].visible = false; } } function showMainMenu() { gameState = 'menu'; stateDisplay.setText('Main Menu'); createServerBtn.visible = true; garageBtn.visible = true; dealershipBtn.visible = true; dealer.visible = false; for (var i = 0; i < servers.length; i++) { servers[i].visible = true; } // Clear garage cars var children = game.children.slice(); for (var j = 0; j < children.length; j++) { if (children[j] instanceof Car && !children[j].isPlayer) { children[j].destroy(); } } } // Event handlers createServerBtn.down = function (x, y, obj) { var newServer = new Server('My Server', false); newServer.x = 400; newServer.y = 600 + servers.length * 100; servers.push(newServer); game.addChild(newServer); joinServer(newServer); }; garageBtn.down = function (x, y, obj) { showGarage(); }; dealershipBtn.down = function (x, y, obj) { gameState = 'dealership'; stateDisplay.setText('Car Dealership'); hideAllMenus(); dealer.visible = true; dealer.showCars(); }; var isDragging = false; var dragStartX = 0; var dragStartY = 0; game.down = function (x, y, obj) { if (gameState === 'driving' && playerCar) { isDragging = true; dragStartX = x; dragStartY = y; LK.getSound('engine').play(); } else if (gameState !== 'menu' && gameState !== 'dealership') { showMainMenu(); } }; game.move = function (x, y, obj) { if (isDragging && playerCar && gameState === 'driving') { var deltaX = x - dragStartX; var deltaY = y - dragStartY; if (Math.abs(deltaX) > 20 || Math.abs(deltaY) > 20) { playerCar.rotation = Math.atan2(deltaY, deltaX); playerCar.accelerate(); // Drift detection if (Math.abs(deltaX) > 50) { playerCar.drift(); } } } }; game.up = function (x, y, obj) { if (isDragging && playerCar) { isDragging = false; playerCar.brake(); } }; game.update = function () { // Update player money earned from driving if (gameState === 'driving' && playerCar && playerCar.speed > 3) { if (LK.ticks % 180 === 0) { // Every 3 seconds at 60fps playerMoney += 10; updateMoneyDisplay(); } } // Update car rotation visual if (playerCar) { var carGraphics = playerCar.children[0]; if (carGraphics) { carGraphics.rotation = playerCar.rotation; } } }; // Start with main menu showMainMenu();
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var Car = Container.expand(function (carType, price) {
var self = Container.call(this);
self.carType = carType || 'car';
self.price = price || 1000;
self.speed = 0;
self.maxSpeed = 8;
self.acceleration = 0.3;
self.rotation = 0;
self.isPlayer = false;
var carGraphics = self.attachAsset(self.carType, {
anchorX: 0.5,
anchorY: 0.5
});
self.accelerate = function () {
if (self.speed < self.maxSpeed) {
self.speed += self.acceleration;
}
};
self.brake = function () {
if (self.speed > 0) {
self.speed -= self.acceleration * 2;
}
if (self.speed < 0) {
self.speed = 0;
}
};
self.drift = function () {
if (self.speed > 2) {
LK.getSound('drift').play();
LK.effects.flashObject(self, 0xffff00, 500);
}
};
self.update = function () {
if (self.isPlayer) {
var moveX = Math.cos(self.rotation) * self.speed;
var moveY = Math.sin(self.rotation) * self.speed;
self.x += moveX;
self.y += moveY;
// Keep car on screen
if (self.x < 60) {
self.x = 60;
}
if (self.x > 1988) {
self.x = 1988;
}
if (self.y < 60) {
self.y = 60;
}
if (self.y > 2672) {
self.y = 2672;
}
// Natural slowdown
if (self.speed > 0) {
self.speed -= 0.05;
}
if (self.speed < 0) {
self.speed = 0;
}
}
};
return self;
});
var CarDealer = Container.expand(function () {
var self = Container.call(this);
self.cars = [{
type: 'bmw',
name: 'BMW M3',
price: 5000
}, {
type: 'mercedes',
name: 'Mercedes AMG',
price: 7000
}, {
type: 'audi',
name: 'Audi R8',
price: 9000
}, {
type: 'car',
name: 'Basic Car',
price: 1000
}];
var dealerBg = self.attachAsset('dealership', {
anchorX: 0.5,
anchorY: 0.5
});
var titleText = new Text2('Car Dealership', {
size: 60,
fill: '#ffffff'
});
titleText.anchor.set(0.5, 0);
titleText.x = 0;
titleText.y = -280;
self.addChild(titleText);
self.showCars = function () {
for (var i = 0; i < self.cars.length; i++) {
var carData = self.cars[i];
var carSlot = new Container();
var slotBg = carSlot.attachAsset('carSlot', {
anchorX: 0.5,
anchorY: 0.5
});
var carPreview = carSlot.attachAsset(carData.type, {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.7,
scaleY: 0.7
});
var priceText = new Text2('$' + carData.price, {
size: 30,
fill: '#00ff00'
});
priceText.anchor.set(0.5, 0);
priceText.y = 35;
carSlot.addChild(priceText);
carSlot.x = i % 2 * 200 - 100;
carSlot.y = Math.floor(i / 2) * 120 - 100;
carSlot.carData = carData;
carSlot.down = function (x, y, obj) {
buyCar(this.carData);
};
self.addChild(carSlot);
}
};
return self;
});
var Server = Container.expand(function (name, hasPassword) {
var self = Container.call(this);
self.serverName = name || 'My Server';
self.hasPassword = hasPassword || false;
self.players = [];
var serverBg = self.attachAsset('serverButton', {
anchorX: 0,
anchorY: 0
});
var nameText = new Text2(self.serverName, {
size: 40,
fill: '#ffffff'
});
nameText.anchor.set(0.5, 0.5);
nameText.x = 150;
nameText.y = 40;
self.addChild(nameText);
self.down = function (x, y, obj) {
joinServer(self);
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x1a1a1a
});
/****
* Game Code
****/
// Game state
var gameState = 'menu'; // menu, server, garage, dealership, driving
var currentServer = null;
var playerCar = null;
var ownedCars = storage.ownedCars || [];
var playerMoney = storage.playerMoney || 10000;
var servers = [];
// Initialize storage defaults
if (!storage.ownedCars) {
storage.ownedCars = [{
type: 'car',
name: 'Starter Car'
}];
ownedCars = storage.ownedCars;
}
// UI Elements
var moneyDisplay = new Text2('Money: $' + playerMoney, {
size: 50,
fill: '#00ff00'
});
moneyDisplay.anchor.set(1, 0);
LK.gui.topRight.addChild(moneyDisplay);
var stateDisplay = new Text2('Main Menu', {
size: 40,
fill: '#ffffff'
});
stateDisplay.anchor.set(0.5, 0);
LK.gui.top.addChild(stateDisplay);
// Game elements
var road = game.addChild(LK.getAsset('road', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366
}));
var track = game.addChild(LK.getAsset('track', {
anchorX: 0.5,
anchorY: 0.5,
x: 1600,
y: 500
}));
// Menu buttons
var createServerBtn = game.addChild(LK.getAsset('serverButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 800
}));
var createServerText = new Text2('Create Server', {
size: 40,
fill: '#ffffff'
});
createServerText.anchor.set(0.5, 0.5);
createServerBtn.addChild(createServerText);
var garageBtn = game.addChild(LK.getAsset('serverButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 920
}));
var garageText = new Text2('Garage', {
size: 40,
fill: '#ffffff'
});
garageText.anchor.set(0.5, 0.5);
garageBtn.addChild(garageText);
var dealershipBtn = game.addChild(LK.getAsset('serverButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1040
}));
var dealershipText = new Text2('Car Dealership', {
size: 40,
fill: '#ffffff'
});
dealershipText.anchor.set(0.5, 0.5);
dealershipBtn.addChild(dealershipText);
// Initialize some demo servers
for (var i = 0; i < 3; i++) {
var server = new Server('Server ' + (i + 1), i === 0);
server.x = 400;
server.y = 600 + i * 100;
servers.push(server);
game.addChild(server);
}
var dealer = new CarDealer();
dealer.x = 1024;
dealer.y = 1366;
dealer.visible = false;
game.addChild(dealer);
// Functions
function updateMoneyDisplay() {
moneyDisplay.setText('Money: $' + playerMoney);
storage.playerMoney = playerMoney;
}
function buyCar(carData) {
if (playerMoney >= carData.price) {
playerMoney -= carData.price;
ownedCars.push(carData);
storage.ownedCars = ownedCars;
updateMoneyDisplay();
LK.effects.flashScreen(0x00ff00, 500);
} else {
LK.effects.flashScreen(0xff0000, 500);
}
}
function showGarage() {
gameState = 'garage';
stateDisplay.setText('Garage');
hideAllMenus();
for (var i = 0; i < ownedCars.length; i++) {
var carData = ownedCars[i];
var garageCar = new Car(carData.type, carData.price);
garageCar.x = 300 + i % 3 * 200;
garageCar.y = 800 + Math.floor(i / 3) * 150;
garageCar.down = function (x, y, obj) {
selectCar(this);
};
game.addChild(garageCar);
}
}
function selectCar(car) {
if (playerCar) {
playerCar.destroy();
}
playerCar = new Car(car.carType, car.price);
playerCar.x = 1024;
playerCar.y = 1200;
playerCar.isPlayer = true;
game.addChild(playerCar);
gameState = 'driving';
stateDisplay.setText('Driving');
hideAllMenus();
LK.playMusic('cityTrack');
}
function joinServer(server) {
currentServer = server;
gameState = 'server';
stateDisplay.setText('Server: ' + server.serverName);
hideAllMenus();
if (!playerCar && ownedCars.length > 0) {
playerCar = new Car(ownedCars[0].type, ownedCars[0].price);
playerCar.x = 1024;
playerCar.y = 1200;
playerCar.isPlayer = true;
game.addChild(playerCar);
}
}
function hideAllMenus() {
createServerBtn.visible = false;
garageBtn.visible = false;
dealershipBtn.visible = false;
dealer.visible = false;
for (var i = 0; i < servers.length; i++) {
servers[i].visible = false;
}
}
function showMainMenu() {
gameState = 'menu';
stateDisplay.setText('Main Menu');
createServerBtn.visible = true;
garageBtn.visible = true;
dealershipBtn.visible = true;
dealer.visible = false;
for (var i = 0; i < servers.length; i++) {
servers[i].visible = true;
}
// Clear garage cars
var children = game.children.slice();
for (var j = 0; j < children.length; j++) {
if (children[j] instanceof Car && !children[j].isPlayer) {
children[j].destroy();
}
}
}
// Event handlers
createServerBtn.down = function (x, y, obj) {
var newServer = new Server('My Server', false);
newServer.x = 400;
newServer.y = 600 + servers.length * 100;
servers.push(newServer);
game.addChild(newServer);
joinServer(newServer);
};
garageBtn.down = function (x, y, obj) {
showGarage();
};
dealershipBtn.down = function (x, y, obj) {
gameState = 'dealership';
stateDisplay.setText('Car Dealership');
hideAllMenus();
dealer.visible = true;
dealer.showCars();
};
var isDragging = false;
var dragStartX = 0;
var dragStartY = 0;
game.down = function (x, y, obj) {
if (gameState === 'driving' && playerCar) {
isDragging = true;
dragStartX = x;
dragStartY = y;
LK.getSound('engine').play();
} else if (gameState !== 'menu' && gameState !== 'dealership') {
showMainMenu();
}
};
game.move = function (x, y, obj) {
if (isDragging && playerCar && gameState === 'driving') {
var deltaX = x - dragStartX;
var deltaY = y - dragStartY;
if (Math.abs(deltaX) > 20 || Math.abs(deltaY) > 20) {
playerCar.rotation = Math.atan2(deltaY, deltaX);
playerCar.accelerate();
// Drift detection
if (Math.abs(deltaX) > 50) {
playerCar.drift();
}
}
}
};
game.up = function (x, y, obj) {
if (isDragging && playerCar) {
isDragging = false;
playerCar.brake();
}
};
game.update = function () {
// Update player money earned from driving
if (gameState === 'driving' && playerCar && playerCar.speed > 3) {
if (LK.ticks % 180 === 0) {
// Every 3 seconds at 60fps
playerMoney += 10;
updateMoneyDisplay();
}
}
// Update car rotation visual
if (playerCar) {
var carGraphics = playerCar.children[0];
if (carGraphics) {
carGraphics.rotation = playerCar.rotation;
}
}
};
// Start with main menu
showMainMenu();
BMW e36. In-Game asset. 2d. High contrast. No shadows
BMW M3 gtr. In-Game asset. 2d. High contrast. No shadows
Sunucu yazısi. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
GTA 5 garaj iconu. In-Game asset. 2d. High contrast. No shadows
4 şeritli beyaz aralıkli çizgili uzun yol. In-Game asset. 2d. High contrast. No shadows
Mercedes g class. In-Game asset. 2d. High contrast. No shadows
Otopark 8 slotlu. In-Game asset. 2d. High contrast. No shadows
Göz. In-Game asset. 2d. High contrast. No shadows
Araba bayisi. In-Game asset. 2d. High contrast. No shadows
Mikrofon. In-Game asset. 2d. High contrast. No shadows