User prompt
karakter öldüğünde level 1'den başlansın
User prompt
karakter öldüğünde level 1'den başlasın
User prompt
arti varlıkları karakterin dibinde doğmasın
User prompt
karakter 30 saniye boyunca ölmez ise level 2 ye geçsin
User prompt
sol üst köşede bir level sayacı olsun
User prompt
karakter 15 saniye boyunca hareket etmez ise karakter ölsün
User prompt
arti varlıkları zeminde oluşmaya sonsuza dek devam etsin
User prompt
karakter ölünce sayaç sıfırlansın ve arti varlıkları gelmeye her zaman devam etsin
User prompt
30 saniyelik sayaç ve arti varlıklarının gelmesi oyun bitince ve tekrar başla butonuna basınca bile devam etsin
User prompt
karakter öldükten sonra her şey yeniden başlasın ve arti varlıkları gelmeye devam etsin
User prompt
karakter öldükten sonra arti varlıkları gelmeye devam etsin
User prompt
30 saniyelik süre karakter ölünce sıfırlansın
User prompt
yukarıda bir 30 saniye sayacı olsun
User prompt
eğer karakter 30 saniye boyunca ölmezse level atlasın
User prompt
arti varlıkları daha hızlı gelsin
User prompt
zeminde arti olarak adlandırdığım varlık gelsin ve karakter arti varlığına değdiğinde oyun bitsin
User prompt
zeminde arti olarak adlandırdığım varlık gelsin ve 3 saniye sonra gitsin. karakter ona değdiğinde karakter ölsün
User prompt
kamera karakteri takip etmesin
User prompt
kamera karakter ile birlikte hareket etsin
User prompt
karakter haraket edebilsin
User prompt
çimen ve hamster dışında tüm varlıkları sil
User prompt
karakter hep ölüp durmasın
User prompt
çimenli bir arazi olsun
User prompt
arka planda çimen olsun
User prompt
arka plan çimenli olsun ve sonsuz olsun
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Hamster (player) class
var Hamster = Container.expand(function () {
var self = Container.call(this);
var hamsterSprite = self.attachAsset('hamster', {
anchorX: 0.5,
anchorY: 0.5
});
self.radius = hamsterSprite.width * 0.5;
// For collision, use self.x, self.y, self.radius
// No per-instance update needed; movement is handled by drag
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xffffff
});
/****
* Game Code
****/
// Game constants
var GAME_WIDTH = 2048;
var GAME_HEIGHT = 2732;
var HAMSTER_START_X = GAME_WIDTH / 2;
var HAMSTER_START_Y = GAME_HEIGHT - 500;
// Camera state
var cameraOffsetX = 0;
var cameraOffsetY = 0;
// Game state
var hamster = null;
var dragNode = null;
// --- Infinite grass background ---
var bgGrass1 = LK.getAsset('grass', {
anchorX: 0,
anchorY: 0,
width: GAME_WIDTH,
height: GAME_HEIGHT
});
var bgGrass2 = LK.getAsset('grass', {
anchorX: 0,
anchorY: 0,
width: GAME_WIDTH,
height: GAME_HEIGHT
});
bgGrass1.y = 0;
bgGrass2.y = -GAME_HEIGHT;
game.addChild(bgGrass1);
game.addChild(bgGrass2);
// --- Hamster ---
// Allow dragging hamster from anywhere on the screen
hamster = new Hamster();
hamster.x = HAMSTER_START_X;
hamster.y = HAMSTER_START_Y;
game.addChild(hamster);
game.down = function (x, y, obj) {
dragNode = hamster;
};
game.up = function (x, y, obj) {
dragNode = null;
};
game.move = function (x, y, obj) {
if (dragNode) {
// Convert screen drag to world position by adding camera offset
var nx = x + cameraOffsetX;
var ny = y + cameraOffsetY;
var r = hamster.radius;
if (nx < r) nx = r;
if (nx > GAME_WIDTH - r) nx = GAME_WIDTH - r;
if (ny < r + 100) ny = r + 100; // Don't allow top 100px (menu)
if (ny > GAME_HEIGHT - r) ny = GAME_HEIGHT - r;
hamster.x = nx;
hamster.y = ny;
}
};
// --- Game update ---
game.update = function () {
// Camera follows hamster: center hamster on screen
cameraOffsetX = hamster.x - GAME_WIDTH / 2;
cameraOffsetY = hamster.y - GAME_HEIGHT / 2;
// Clamp camera to game bounds (optional, if you want to restrict camera movement)
if (cameraOffsetX < 0) cameraOffsetX = 0;
if (cameraOffsetY < 0) cameraOffsetY = 0;
if (cameraOffsetX > GAME_WIDTH) cameraOffsetX = GAME_WIDTH;
if (cameraOffsetY > GAME_HEIGHT) cameraOffsetY = GAME_HEIGHT;
// Scroll background grass with camera
var speed = 8;
bgGrass1.y += speed;
bgGrass2.y += speed;
// Apply camera offset to backgrounds
bgGrass1.x = -cameraOffsetX;
bgGrass1.y = -cameraOffsetY % GAME_HEIGHT;
bgGrass2.x = -cameraOffsetX;
bgGrass2.y = -cameraOffsetY % GAME_HEIGHT - GAME_HEIGHT;
// Apply camera offset to hamster
hamster.x = HAMSTER_START_X;
hamster.y = HAMSTER_START_Y;
// Loop grass backgrounds
if (bgGrass1.y >= GAME_HEIGHT) {
bgGrass1.y = bgGrass2.y - GAME_HEIGHT;
}
if (bgGrass2.y >= GAME_HEIGHT) {
bgGrass2.y = bgGrass1.y - GAME_HEIGHT;
}
}; ===================================================================
--- original.js
+++ change.js
@@ -33,8 +33,11 @@
var GAME_WIDTH = 2048;
var GAME_HEIGHT = 2732;
var HAMSTER_START_X = GAME_WIDTH / 2;
var HAMSTER_START_Y = GAME_HEIGHT - 500;
+// Camera state
+var cameraOffsetX = 0;
+var cameraOffsetY = 0;
// Game state
var hamster = null;
var dragNode = null;
// --- Infinite grass background ---
@@ -67,11 +70,11 @@
dragNode = null;
};
game.move = function (x, y, obj) {
if (dragNode) {
- // Clamp hamster to game area
- var nx = x;
- var ny = y;
+ // Convert screen drag to world position by adding camera offset
+ var nx = x + cameraOffsetX;
+ var ny = y + cameraOffsetY;
var r = hamster.radius;
if (nx < r) nx = r;
if (nx > GAME_WIDTH - r) nx = GAME_WIDTH - r;
if (ny < r + 100) ny = r + 100; // Don't allow top 100px (menu)
@@ -81,12 +84,28 @@
}
};
// --- Game update ---
game.update = function () {
- // Scroll background grass
+ // Camera follows hamster: center hamster on screen
+ cameraOffsetX = hamster.x - GAME_WIDTH / 2;
+ cameraOffsetY = hamster.y - GAME_HEIGHT / 2;
+ // Clamp camera to game bounds (optional, if you want to restrict camera movement)
+ if (cameraOffsetX < 0) cameraOffsetX = 0;
+ if (cameraOffsetY < 0) cameraOffsetY = 0;
+ if (cameraOffsetX > GAME_WIDTH) cameraOffsetX = GAME_WIDTH;
+ if (cameraOffsetY > GAME_HEIGHT) cameraOffsetY = GAME_HEIGHT;
+ // Scroll background grass with camera
var speed = 8;
bgGrass1.y += speed;
bgGrass2.y += speed;
+ // Apply camera offset to backgrounds
+ bgGrass1.x = -cameraOffsetX;
+ bgGrass1.y = -cameraOffsetY % GAME_HEIGHT;
+ bgGrass2.x = -cameraOffsetX;
+ bgGrass2.y = -cameraOffsetY % GAME_HEIGHT - GAME_HEIGHT;
+ // Apply camera offset to hamster
+ hamster.x = HAMSTER_START_X;
+ hamster.y = HAMSTER_START_Y;
// Loop grass backgrounds
if (bgGrass1.y >= GAME_HEIGHT) {
bgGrass1.y = bgGrass2.y - GAME_HEIGHT;
}
Fullscreen modern App Store landscape banner, 16:9, high definition, for a game titled "Hamster vs Mat" and with the description "Drag to move the hamster across scrolling mats, dodging hazards and collecting treats for points. Survive as long as possible!". No text on banner!
Matematikteki artı sembolü. In-Game asset. 2d. High contrast. no shadow
beyaz renk yerine sarı bir rengi olsun