User prompt
kırmızıyla
User prompt
sağ alt tarafta yazsın o yazı
User prompt
o yazıyı sol tarafa al ve biraz büyüt boyutunu
User prompt
ekranın üst tarafında alttaki hız yazısı ile aynı renkte ve ölçüde ve fontta şu yazsın. Gay Tavish
User prompt
ama çıkmadı ekran
User prompt
Oyunu başlatmadan önce ekranda Başlat ekranı çıksın.
User prompt
speed kelimesini Ultra Mega Üper Düper Hız ile değiştir
Remix started
Copy Dirt Rally 3
/**** 
* Classes
****/ 
var Car = Container.expand(function () {
	var self = Container.call(this);
	self.projectMovement = function (vector) {
		var angle = -Math.PI / 4;
		var cosAngle = Math.cos(angle);
		var sinAngle = Math.sin(angle);
		return {
			x: vector.x * cosAngle - vector.y * sinAngle,
			y: vector.x * sinAngle + vector.y * cosAngle
		};
	};
	var carGraphics = self.attachAsset('car', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.direction = 0;
	self.momentum = {
		x: 0,
		y: 0
	};
	self._move_migrated = function () {
		var momentumModifier = 0.1;
		if (self.direction === 0) {
			self.momentum.x += self.speed * momentumModifier;
		} else {
			self.momentum.y -= self.speed * momentumModifier;
		}
		var projectedMovement = self.projectMovement(self.momentum);
		// Check if car reaches the center of the screen on the X coordinate
		if (self.lastX <= 2048 / 2 && self.x > 2048 / 2) {
			console.log("Car reached the center of the screen on the X coordinate");
		}
		self.lastX = self.x;
		self.x += projectedMovement.x;
		self.y += projectedMovement.y;
		// Check if car arrives at a specific X, Y coordinate
		if (self.lastY <= 1500 && self.y > 1500 && self.lastX <= 1000 && self.x > 1000) {
			console.log("Car arrived at the specific X, Y coordinate");
		}
		self.lastY = self.y;
		self.lastX = self.x;
		// Check if car comes close to the bottom of the screen on the Y coordinate
		if (self.lastY <= 2732 - 100 && self.y > 2732 - 100) {
			console.log("Car is close to the bottom of the screen");
		}
		self.lastY = self.y;
		var nonTravelMomentum;
		if (self.direction === 0) {
			self.momentum.x *= 0.98;
			self.momentum.y *= 0.95;
			nonTravelMomentum = self.momentum.y;
		} else {
			self.momentum.x *= 0.95;
			self.momentum.y *= 0.98;
			nonTravelMomentum = self.momentum.x;
		}
		self.nonTravelMomentum = nonTravelMomentum;
	};
	self.changeDirection = function () {
		self.direction = self.direction === 0 ? 1 : 0;
		carGraphics.scale.x *= -1;
	};
});
var DriftAndDodge = Container.expand(function () {
	var self = Container.call(this);
});
var Particle = Container.expand(function () {
	var self = Container.call(this);
	var particleGraphics = self.attachAsset('particle', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	particleGraphics.rotation = Math.PI / 4;
	self.lifetime = 100;
	self.tick = function () {
		if (--self.lifetime <= 0) {
			self.destroy();
		}
	};
});
var Rock = Container.expand(function () {
	var self = Container.call(this);
	var rockGraphics = self.attachAsset('rock', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
var SnowyEmbankment = Container.expand(function () {
	var self = Container.call(this);
	var embankmentGraphics = self.attachAsset('rods', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
var Tree = Container.expand(function () {
	var self = Container.call(this);
	var treeGraphics = self.attachAsset('tree', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
var Tree2 = Container.expand(function () {
	var self = Container.call(this);
	var treeGraphics = self.attachAsset('tree2', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0xFFFFFF
});
/**** 
* Game Code
****/ 
// Start Screen Overlay
var startScreenOverlay = new Container();
var startScreenBg = LK.getAsset('line', {
	width: 2048,
	height: 2732,
	color: 0x000000,
	anchorX: 0,
	anchorY: 0
});
startScreenBg.alpha = 0.7;
startScreenOverlay.addChild(startScreenBg);
var startText = new Text2('Başlatmak için dokunun', {
	size: 120,
	fill: 0x00FFFF,
	weight: '800',
	dropShadow: true,
	dropShadowColor: '#000000',
	dropShadowBlur: 8,
	dropShadowAngle: Math.PI / 6,
	dropShadowDistance: 8
});
startText.anchor.set(0.5, 0.5);
startText.x = 2048 / 2;
startText.y = 2732 / 2;
startScreenOverlay.addChild(startText);
game.addChild(startScreenOverlay);
var gameStarted = false;
function startGame() {
	if (gameStarted) return;
	gameStarted = true;
	startScreenOverlay.destroy();
	// Enable game input after start
	driftAndDodge.interactive = true;
	car.interactive = true;
}
startScreenOverlay.interactive = true;
startScreenOverlay.down = function (x, y, obj) {
	startGame();
};
// Disable game input before start
// (driftAndDodge and car are created later, so we will set their .interactive after creation)
var driftAndDodge = game.addChild(new DriftAndDodge());
driftAndDodge.interactive = false;
driftAndDodge.on('down', function (x, y, obj) {
	// Add the event handler for 'down' event here
});
driftAndDodge.on('up', function (x, y, obj) {
	// Add the event handler for 'up' event here
});
driftAndDodge.on('move', function (x, y, obj) {
	// Add the event handler for 'move' event here
});
game.calculateDistanceToPoint = function (point, segmentStart, segmentEnd) {
	var A = point.x - segmentStart.x;
	var B = point.y - segmentStart.y;
	var C = segmentEnd.x - segmentStart.x;
	var D = segmentEnd.y - segmentStart.y;
	var dot = A * C + B * D;
	var len_sq = C * C + D * D;
	var param = -1;
	if (len_sq != 0) {
		param = dot / len_sq;
	}
	var xx, yy;
	if (param < 0) {
		xx = segmentStart.x;
		yy = segmentStart.y;
	} else if (param > 1) {
		xx = segmentEnd.x;
		yy = segmentEnd.y;
	} else {
		xx = segmentStart.x + param * C;
		yy = segmentStart.y + param * D;
	}
	var dx = point.x - xx;
	var dy = point.y - yy;
	return Math.sqrt(dx * dx + dy * dy);
};
game.addRoadSegment = function () {
	var lastSegment = roadSegments[roadSegments.length - 1];
	zigzag = !zigzag;
	var segment = roadContainer.attachAsset('roadSegment', {
		anchorX: 0.5
	});
	segment.width = segmentWidth;
	segmentWidth = Math.max(350, segmentWidth - 15);
	segment.height = (i === 1 ? 3000 : Math.floor(Math.random() * (4000 - 1200 + 1)) + 1200) * 2;
	segment.rotation = zigzag ? -Math.PI - Math.PI / 4 : -Math.PI + Math.PI / 4;
	segment.y = currentY;
	segment.x = currentX;
	var adjustedHeight = segment.height - segmentWidth / 2;
	currentY += adjustedHeight * Math.cos(segment.rotation);
	currentX -= adjustedHeight * Math.sin(segment.rotation);
	segment.shadow = roadContainer.attachAsset('roadSegmentShadow', {
		anchorX: 0.5
	});
	segment.shadow.width = segment.width;
	segment.shadow.height = segment.height;
	segment.shadow.rotation = segment.rotation;
	segment.shadow.x = segment.x;
	segment.shadow.y = segment.y + 50;
	segment.shadow.alpha = 1;
	segment.used = false;
	roadSegments.push(segment);
	roadContainer.addChildAt(segment.shadow, 0);
	roadContainer.addChild(segment);
	// Add multiple trees to the left and right of the road segment
	var treeSpacing = 150; // Space between trees
	var numberOfTrees = Math.floor(segment.height / treeSpacing) - 3; // Decrease the number of trees by 3
	var numberOfTree2 = Math.floor(segment.height / treeSpacing) - 3; // Decrease the number of tree2 by 3
	for (var i = 0; i < numberOfTree2; i++) {
		var leftTree = new Tree();
		leftTree.x = segment.x - segment.width - 200 - i * treeSpacing; // Decrease the distance from the road by 100 units
		leftTree.y = segment.y + i * treeSpacing;
		roadContainer.addChild(leftTree);
		var rightTree = new Tree2();
		rightTree.x = segment.x + segment.width + 200 + i * treeSpacing; // Decrease the distance from the road by 100 units
		rightTree.y = segment.y + i * treeSpacing;
		roadContainer.addChild(rightTree);
	}
	// Add rocks to the left and right of the road segment
	var leftRock = new Rock();
	leftRock.x = segment.x - segment.width - 1000; // Double the distance from the road
	leftRock.y = segment.y;
	roadContainer.addChildAt(leftRock, 0);
	roadContainer.addChildAt(rightRock, 0);
	var rightRock = new Rock();
	rightRock.x = segment.x + segment.width + 1000; // Double the distance from the road
	rightRock.y = segment.y;
	// Attach snowy embankments to the left and right of the road segment
	var leftEmbankment = new SnowyEmbankment();
	leftEmbankment.x = segment.x - segment.width / 2 - 50; // Increase distance by 50 units 
	leftEmbankment.y = segment.y;
	roadContainer.addChild(leftEmbankment);
	var rightEmbankment = new SnowyEmbankment();
	rightEmbankment.x = segment.x + segment.width / 2 + 50; // Increase distance by 50 units 
	rightEmbankment.y = segment.y;
	roadContainer.addChild(rightEmbankment);
};
var wallpaper = game.attachAsset('wallpaper', {
	anchorX: 0.5,
	anchorY: 0.5,
	x: 2048 / 2,
	y: 2732 / 2
});
var particles = [];
var mainContainer = game.addChild(new Container());
var roadContainer = mainContainer.addChild(new Container());
var roadSegments = [];
var segmentLength = Math.floor(Math.random() * (1000 - 200 + 1)) + 200;
var segmentWidth = 1200;
var currentX = 2048 / 2;
var currentY = 2732 / 2;
var zigzag = true;
for (var i = 1; i <= 15; i++) {
	game.addRoadSegment();
}
var scoreText = new Text2('0', {
	size: 150,
	fill: 0xFFFFFF,
	weight: '800',
	dropShadow: true,
	dropShadowColor: '#373330',
	dropShadowBlur: 4,
	dropShadowAngle: Math.PI / 6,
	dropShadowDistance: 6
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
// Add a neon blue-colored speedometer to the bottom left corner of the map
var speedometer = new Text2('Ultra Mega Üper Düper Hız: 0', {
	size: 50,
	fill: 0x00FFFF,
	// Neon blue color
	weight: '800',
	dropShadow: true,
	dropShadowColor: '#000000',
	dropShadowBlur: 4,
	dropShadowAngle: Math.PI / 6,
	dropShadowDistance: 6
});
speedometer.anchor.set(0, 1); // Anchor to bottom left
LK.gui.bottomLeft.addChild(speedometer);
// Add 'Gay Tavish' text at the bottom right of the screen, larger than speedometer style
var gayTavishText = new Text2('Gay Tavish', {
	size: 100,
	fill: 0xFF0000,
	//{1D} // Changed to red
	weight: '800',
	dropShadow: true,
	dropShadowColor: '#000000',
	dropShadowBlur: 4,
	dropShadowAngle: Math.PI / 6,
	dropShadowDistance: 6
});
gayTavishText.anchor.set(1, 1); // Bottom right
LK.gui.bottomRight.addChild(gayTavishText);
gayTavishText.x = 0;
gayTavishText.y = 0;
var car = mainContainer.addChild(new Car());
car.x = 2048 / 2;
car.y = 2732 / 2;
var isGameOver = false;
var score = 0;
var closestSegment = null;
game.on('down', function (x, y, obj) {
	car.changeDirection();
});
LK.on('tick', function () {
	if (!gameStarted) {
		return;
	}
	car._move_migrated();
	LK.playMusic('Car', {
		loop: true
	});
	var carIsOnRoad = false;
	var carPosition = {
		x: car.x,
		y: car.y
	};
	// Update the speedometer with the current speed
	speedometer.setText('Ultra Mega Üper Düper Hız: ' + Math.round(Math.sqrt(car.momentum.x * car.momentum.x + car.momentum.y * car.momentum.y) * 5) + ' km/h');
	var currentClosestSegment = null;
	var currentClosestDistance = Infinity;
	roadSegments.forEach(function (segment) {
		var segmentStart = {
			x: segment.x + Math.sin(segment.rotation) * 100,
			y: segment.y - Math.cos(segment.rotation) * 100
		};
		var segmentEnd = {
			x: segment.x - Math.sin(segment.rotation) * (segment.height - segment.width / 2),
			y: segment.y + Math.cos(segment.rotation) * (segment.height - segment.width / 2)
		};
		var distance = game.calculateDistanceToPoint(carPosition, segmentStart, segmentEnd);
		if (distance < currentClosestDistance) {
			currentClosestDistance = distance;
			currentClosestSegment = segment;
		}
		if (distance < segment.width / 2 - 50) {
			carIsOnRoad = true;
		}
	});
	if (closestSegment !== currentClosestSegment && !currentClosestSegment.used) {
		// Check for intersection between car and road segment
		if (car.lastWasIntersecting === false && car.intersects(currentClosestSegment)) {
			console.log("Car intersected with a road segment");
		}
		car.lastWasIntersecting = car.intersects(currentClosestSegment);
		closestSegment = currentClosestSegment;
		closestSegment.used = true;
		score++;
		LK.setScore(score);
		scoreText.setText(score.toString());
	}
	if (!carIsOnRoad) {
		LK.showGameOver();
	} else {}
	var particle = new Particle();
	particle.alpha = Math.max(0, Math.min(1, Math.abs(car.nonTravelMomentum) / 5 - 0.5));
	if (particle.alpha > 0) {
		var noiseX = (Math.random() - 0.5) * 10;
		var noiseY = (Math.random() - 0.5) * 10;
		particle.x = car.x + noiseX;
		particle.y = car.y + noiseY;
		mainContainer.addChildAt(particle, 1);
		particles.push(particle);
	}
	particles.forEach(function (particle, index) {
		particle.tick();
		if (particle.lifetime <= 0) {
			particles.splice(index, 1);
		}
	});
	var carLocalPosition = game.toLocal(car.position, car.parent);
	var offsetX = (2048 / 2 - carLocalPosition.x) / 20;
	var offsetY = (2732 - 450 - carLocalPosition.y) / 20;
	mainContainer.x += offsetX;
	mainContainer.y += offsetY;
	for (var i = roadSegments.length - 1; i >= 0; i--) {
		var segmentGlobalPosition = game.toLocal(roadSegments[i].position, roadSegments[i].parent);
		if (segmentGlobalPosition.y - roadSegments[i].height > 2732 * 2) {
			roadSegments[i].shadow.destroy();
			roadSegments[i].destroy();
			roadSegments.splice(i, 1);
			game.addRoadSegment();
		}
		// Destroy embankments which are off screen
		if (roadSegments[i].leftEmbankment && roadSegments[i].leftEmbankment.y < -50) {
			roadSegments[i].leftEmbankment.destroy();
		}
		if (roadSegments[i].rightEmbankment && roadSegments[i].rightEmbankment.y < -50) {
			roadSegments[i].rightEmbankment.destroy();
		}
	}
});
// Add the game logic for 'DriftAndDodge' here ===================================================================
--- original.js
+++ change.js
@@ -306,9 +306,10 @@
 LK.gui.bottomLeft.addChild(speedometer);
 // Add 'Gay Tavish' text at the bottom right of the screen, larger than speedometer style
 var gayTavishText = new Text2('Gay Tavish', {
 	size: 100,
-	fill: 0x00FFFF,
+	fill: 0xFF0000,
+	//{1D} // Changed to red
 	weight: '800',
 	dropShadow: true,
 	dropShadowColor: '#000000',
 	dropShadowBlur: 4,
 Hyperrealistic blue Subaru rally car with yellow liverys, top down view from the rear wing
 realistic Snowy ground, top view
 Real snowy ground top view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 snowy wheel track top view
 Single Photorealistic snowy Pinewood
 
 
 Photorealistic Yellow Checkpoint rally roadsignal covered by snow, drone view.