Code edit (3 edits merged)
Please save this source code
User prompt
Shop_bg değil yeni olan inventory assetsi olcak ve ın inventory assetsi açılcak yeni hepsi
User prompt
Shop_bg nin 150 y üstüne yeni bir obje yani arayüz ekle ismi inventory olsun ve click detector ekle üstüne tıklanınca in inventory adlı yeni bir arayüz açılsın yüzde 65 ini kaplayan ekranın ve close 1 adlı yeni bir arayüz olsun oda close ile aynı görevi görüyo sadece ın inventory ve kendisini kapatıcak
Code edit (1 edits merged)
Please save this source code
User prompt
Shopupgradetextin fontunu boldserif yap
Code edit (4 edits merged)
Please save this source code
User prompt
Hata düzelt shopping içindeki yazıyı göster
User prompt
Shopping ın içindeki yazı gözükmüyo görsel eklediğim için
Code edit (1 edits merged)
Please save this source code
User prompt
Win değişkenide kaydedilsin ve shopping deki yazıdan bir şey alınca 1.5 x Le çarpsın 2 x değil ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Ve karakter muscle sini kaydet kullanıcı oyundan çıkıp girsede 0 dan başlamasın en son kaçsa ondan hiç oynamamışsa 0 dan başlasın ve karakter yürüme hızının 2 x arttır ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Ama en fazla 2 sayı yani başta 1 1 artıcak ztn ilk shopping den bir şey alınca böyle olsun
User prompt
Bide şöyle olsun muscle değişkeni asla 1.12 tarzı bişi olamaz yani en fazla 2 sayı gözükecek 1.1 gibi 1.2 gibi 1.21 gibi olmaz
User prompt
Şimdi shop_bg ye tıklayınca açılan yazıya click detector koy ve şöyle olcak eğer kullanıcı ona tıkladıysa 5 kası gidicek ve 0.10 kas boostu gelicek yani artık weightLiftingRect ten 1 kas değil kas + 0.10 kas gelicek ve artık 5 kas değil istenenkas*2 kas isticek ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Şimdi shop objenin boyutunu eklemeden ekranın en sağ altının 50 x sol 50 y üstüne koy
User prompt
Şimdi shop_bg objesini ekranın sol altının 50 x sol 50 y üstüne koy
User prompt
Hata düzelt shop_bg objesi ne tıklamadan asla shopping ve close ve shopping içindeki yazı açılmasın
User prompt
Hata düzelt close objesi tıklanan bir nesne yap
User prompt
Close objesi shopping objesini ve içinde yazan 5 muscle ile olan metni gizleyecek tıklanınca ve kendinide gizleyecek
User prompt
Shop_bg ye tıklayınca sadece shopping imagesi açılacak ve yeni ekleyeceğimiz close assetsine tıklayınca kapanacak shop_bg ye tıklayınca close de açılacak close ye tıklayıncs hem shopping hemde close kapanacak
User prompt
Shop_bg ye tıklayınca assetslere şimdi ekleyeceğimiz shopping imagesi çıkacak ve tekrar shop_bg ye basınca kapanacak metin ile birlikts ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (6 edits merged)
Please save this source code
User prompt
"Place a shop object 50px from the left and 50px from the bottom of the screen, fixed to the camera. When the player clicks on it, open a shopping UI that covers 65% of the screen. In the shopping UI, display a text with font size 60px that says: 5 muscle = +0.10 muscle boost. When the player clicks this text, if they have at least 5 muscle, subtract 5 muscle, increase their muscle gain per flex by +0.10, and then double the price for the next purchase. Update the text to show the new price and boost amount after each purchase." ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Ekranın sol altının 50 x ve 50 y sine shop arayüzü koy ve ona tıklayınca yeni tanıtıcağımız arayüz olan shoping arayüzü açılacak ve ekranın yüzde 65 ini kaplayacak ve bida tıklarsak shop arayüzü shoping kapanacak
User prompt
Ekranın sol altının 50 x ve 50 y sine shop objesini koy ve ona tıklayınca yeni tanıtıcağımız arayüz olan shoping objesi açılacak ve ekranın yüzde 65 ini kaplayacak ve bida tıklarsak enemy objesine shoping kapanacak ↪💡 Consider importing and using the following plugins: @upit/tween.v1
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Character = Container.expand(function () { var self = Container.call(this); var characterGraphics = self.attachAsset('character', { anchorX: 0.5, anchorY: 0.5 }); // Add floating text for muscle display self.muscleText = new Text2('Muscle: 0', { size: 60, fill: '#ffffff' }); self.muscleText.anchor.set(0.5, 1); self.addChild(self.muscleText); self.speed = 4; self.velocityX = 0; self.velocityY = 0; self.targetRotation = 0; self.setVelocity = function (vx, vy) { self.velocityX = vx; self.velocityY = vy; // Calculate rotation to face movement direction if (vx !== 0 || vy !== 0) { self.targetRotation = Math.atan2(vy, vx); } }; self.update = function () { // Store previous position for collision detection var prevX = self.x; var prevY = self.y; // Move character self.x += self.velocityX * self.speed; self.y += self.velocityY * self.speed; // Check collision with enemy (barrier) var enemyLeft = enemy.x - 100 - 115; // enemy half width + character half width var enemyRight = enemy.x + 100 + 115; var enemyTop = enemy.y - 100 - 115; var enemyBottom = enemy.y + 100 + 115; if (self.x >= enemyLeft && self.x <= enemyRight && self.y >= enemyTop && self.y <= enemyBottom) { // Collision detected, revert to previous position self.x = prevX; self.y = prevY; self.setVelocity(0, 0); } // Check collision with weight lifting area (barrier) var weightLeft = weightLiftingRect.x - 175 - 115; // weight half width + character half width var weightRight = weightLiftingRect.x + 175 + 115; var weightTop = weightLiftingRect.y - 203 - 115; // weight half height + character half width var weightBottom = weightLiftingRect.y + 203 + 115; if (self.x >= weightLeft && self.x <= weightRight && self.y >= weightTop && self.y <= weightBottom) { // Collision detected, revert to previous position self.x = prevX; self.y = prevY; self.setVelocity(0, 0); } // Keep character within screen bounds only if (self.x < 40) { self.x = 40; } if (self.x > 2008) { self.x = 2008; } if (self.y < 40) { self.y = 40; } if (self.y > 2692) { self.y = 2692; } // Update muscle text self.muscleText.setText('Muscle: ' + muscle); self.muscleText.x = 0; self.muscleText.y = -100; // 50px higher than before // Update win text if (!self.winText) { self.winText = new Text2('Win: 0', { size: 60, fill: '#ffffff' }); self.winText.anchor.set(0.5, 1); self.addChild(self.winText); } self.winText.setText('Win: ' + win); self.winText.x = 0; self.winText.y = -150; // 50px above muscle text // Smooth rotation towards target var currentRotation = characterGraphics.rotation; var rotationDiff = self.targetRotation - currentRotation; // Handle rotation wrapping if (rotationDiff > Math.PI) { rotationDiff -= 2 * Math.PI; } if (rotationDiff < -Math.PI) { rotationDiff += 2 * Math.PI; } characterGraphics.rotation += rotationDiff * 0.15; }; return self; }); var Joystick = Container.expand(function () { var self = Container.call(this); var baseGraphics = self.attachAsset('joystickBase', { anchorX: 0.5, anchorY: 0.5 }); var handleGraphics = self.attachAsset('joystickHandle', { anchorX: 0.5, anchorY: 0.5 }); baseGraphics.alpha = 0.3; handleGraphics.alpha = 0.7; self.baseRadius = 100; self.handleRadius = 40; self.isActive = false; self.centerX = 0; self.centerY = 0; self.handleX = 0; self.handleY = 0; self.show = function (x, y) { self.visible = true; self.isActive = true; self.x = x; self.y = y; self.centerX = x; self.centerY = y; self.handleX = 0; self.handleY = 0; handleGraphics.x = 0; handleGraphics.y = 0; }; self.hide = function () { self.visible = false; self.isActive = false; // Smooth return to center tween(handleGraphics, { x: 0, y: 0 }, { duration: 200 }); }; self.updateHandle = function (x, y) { if (!self.isActive) { return; } // Calculate offset from center var offsetX = x - self.centerX; var offsetY = y - self.centerY; var distance = Math.sqrt(offsetX * offsetX + offsetY * offsetY); // Constrain handle within base radius if (distance > self.baseRadius) { offsetX = offsetX / distance * self.baseRadius; offsetY = offsetY / distance * self.baseRadius; distance = self.baseRadius; } self.handleX = offsetX; self.handleY = offsetY; handleGraphics.x = offsetX; handleGraphics.y = offsetY; // Return normalized values for movement return { x: offsetX / self.baseRadius, y: offsetY / self.baseRadius, magnitude: distance / self.baseRadius }; }; self.visible = false; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2C3E50 }); /**** * Game Code ****/ // Initialize muscle variable var muscle = 0; // Initialize win variable var win = 0; // Joystick handle (smaller circle) // Joystick base (semi-transparent circle) // Character shape var character = game.addChild(new Character()); character.x = 1024; character.y = 1366; // Create Weight Lifting rectangle at top-center, 100px from left edge var weightLiftingRect = game.addChild(LK.getAsset('weightLiftingRect', { anchorX: 0.5, anchorY: 0.5 })); weightLiftingRect.x = 200 + 175; // 200px from left + half width (175) to center weightLiftingRect.y = 50 + 110; // 50 + half height (70) to center // Add text above the rectangle var weightLiftingText = new Text2('Weight Lifting', { size: 58, // 36 * 1.6 = 57.6, rounded to 58 fill: '#ffffff' }); weightLiftingText.anchor.set(0.5, 1); weightLiftingText.x = weightLiftingRect.x; weightLiftingText.y = weightLiftingRect.y - 75; game.addChild(weightLiftingText); // Create enemy at top right, 150px from top var enemy = game.addChild(LK.getAsset('dusman', { anchorX: 0.5, anchorY: 0.5 })); enemy.x = 2048 - 200; // Right edge minus half width enemy.y = 150 + 100; // 150px from top plus half height // Add power text above enemy var enemyPowerText = new Text2('Power: 10', { size: 60, fill: '#ffffff' }); enemyPowerText.anchor.set(0.5, 1); enemyPowerText.x = enemy.x; enemyPowerText.y = enemy.y - 100; game.addChild(enemyPowerText); // Create shop object at bottom left (50x, 50y) var shop = game.addChild(LK.getAsset('enemy', { anchorX: 0.5, anchorY: 0.5 })); shop.x = 50 + 150; // 50px from left + half width shop.y = 2732 - 50 - 150; // 50px from bottom + half height // Add shop text var shopText = new Text2('Shop', { size: 60, fill: '#ffffff' }); shopText.anchor.set(0.5, 0.5); shopText.x = shop.x; shopText.y = shop.y; game.addChild(shopText); // Create shopping interface (initially hidden) var shoppingInterface = new Container(); shoppingInterface.visible = false; // Shopping background (65% of screen) var shopBg = LK.getAsset('weightLiftingRect', { anchorX: 0.5, anchorY: 0.5 }); shopBg.width = 2048 * 0.65; shopBg.height = 2732 * 0.65; shopBg.x = 2048 / 2; shopBg.y = 2732 / 2; shoppingInterface.addChild(shopBg); // Shopping title var shopTitle = new Text2('Shopping', { size: 80, fill: '#ffffff' }); shopTitle.anchor.set(0.5, 0.5); shopTitle.x = 2048 / 2; shopTitle.y = 2732 / 2 - 400; shoppingInterface.addChild(shopTitle); game.addChild(shoppingInterface); var isShoppingOpen = false; // Variables for weight lifting interaction var isMovingToWeights = false; var isWaitingAtWeights = false; var joystick = game.addChild(new Joystick()); var isDragging = false; var joystickTouchId = null; game.down = function (x, y, obj) { // Check if shop was clicked var shopLeft = shop.x - 150; var shopRight = shop.x + 150; var shopTop = shop.y - 150; var shopBottom = shop.y + 150; if (x >= shopLeft && x <= shopRight && y >= shopTop && y <= shopBottom) { // Toggle shopping interface if (!isShoppingOpen) { shoppingInterface.visible = true; isShoppingOpen = true; } return; } // Check if enemy was clicked (close shopping if open, otherwise increment win) var enemyLeft = enemy.x - 100; var enemyRight = enemy.x + 100; var enemyTop = enemy.y - 100; var enemyBottom = enemy.y + 100; if (x >= enemyLeft && x <= enemyRight && y >= enemyTop && y <= enemyBottom) { if (isShoppingOpen) { // Close shopping interface shoppingInterface.visible = false; isShoppingOpen = false; } else if (muscle >= 10) { // Wait 1.25 seconds then increment win LK.setTimeout(function () { win += 1; }, 1250); } return; } // Check if weight lifting rectangle was clicked var rectLeft = weightLiftingRect.x - 175; var rectRight = weightLiftingRect.x + 175; var rectTop = weightLiftingRect.y - 70; var rectBottom = weightLiftingRect.y + 70; if (x >= rectLeft && x <= rectRight && y >= rectTop && y <= rectBottom && !isMovingToWeights && !isWaitingAtWeights) { // Move character to weight lifting area isMovingToWeights = true; character.setVelocity(0, 0); // Stop current movement tween(character, { x: weightLiftingRect.x, y: weightLiftingRect.y + 350 }, { duration: 500, easing: tween.easeInOut, onFinish: function onFinish() { isMovingToWeights = false; isWaitingAtWeights = true; // Wait 1 second then increase muscle LK.setTimeout(function () { muscle += 1; isWaitingAtWeights = false; }, 250); } }); return; } // Show joystick at bottom-left area when touched if (x < 400 && y > 2332) { joystick.show(x, y); isDragging = true; var input = joystick.updateHandle(x, y); if (input) { character.setVelocity(input.x * input.magnitude, input.y * input.magnitude); } } }; game.move = function (x, y, obj) { if (isDragging && joystick.isActive && !isMovingToWeights && !isWaitingAtWeights) { var input = joystick.updateHandle(x, y); if (input) { character.setVelocity(input.x * input.magnitude, input.y * input.magnitude); } } }; game.up = function (x, y, obj) { if (isDragging && !isMovingToWeights && !isWaitingAtWeights) { isDragging = false; joystick.hide(); character.setVelocity(0, 0); } }; game.update = function () { // Character update is handled automatically by its update method };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Character = Container.expand(function () {
var self = Container.call(this);
var characterGraphics = self.attachAsset('character', {
anchorX: 0.5,
anchorY: 0.5
});
// Add floating text for muscle display
self.muscleText = new Text2('Muscle: 0', {
size: 60,
fill: '#ffffff'
});
self.muscleText.anchor.set(0.5, 1);
self.addChild(self.muscleText);
self.speed = 4;
self.velocityX = 0;
self.velocityY = 0;
self.targetRotation = 0;
self.setVelocity = function (vx, vy) {
self.velocityX = vx;
self.velocityY = vy;
// Calculate rotation to face movement direction
if (vx !== 0 || vy !== 0) {
self.targetRotation = Math.atan2(vy, vx);
}
};
self.update = function () {
// Store previous position for collision detection
var prevX = self.x;
var prevY = self.y;
// Move character
self.x += self.velocityX * self.speed;
self.y += self.velocityY * self.speed;
// Check collision with enemy (barrier)
var enemyLeft = enemy.x - 100 - 115; // enemy half width + character half width
var enemyRight = enemy.x + 100 + 115;
var enemyTop = enemy.y - 100 - 115;
var enemyBottom = enemy.y + 100 + 115;
if (self.x >= enemyLeft && self.x <= enemyRight && self.y >= enemyTop && self.y <= enemyBottom) {
// Collision detected, revert to previous position
self.x = prevX;
self.y = prevY;
self.setVelocity(0, 0);
}
// Check collision with weight lifting area (barrier)
var weightLeft = weightLiftingRect.x - 175 - 115; // weight half width + character half width
var weightRight = weightLiftingRect.x + 175 + 115;
var weightTop = weightLiftingRect.y - 203 - 115; // weight half height + character half width
var weightBottom = weightLiftingRect.y + 203 + 115;
if (self.x >= weightLeft && self.x <= weightRight && self.y >= weightTop && self.y <= weightBottom) {
// Collision detected, revert to previous position
self.x = prevX;
self.y = prevY;
self.setVelocity(0, 0);
}
// Keep character within screen bounds only
if (self.x < 40) {
self.x = 40;
}
if (self.x > 2008) {
self.x = 2008;
}
if (self.y < 40) {
self.y = 40;
}
if (self.y > 2692) {
self.y = 2692;
}
// Update muscle text
self.muscleText.setText('Muscle: ' + muscle);
self.muscleText.x = 0;
self.muscleText.y = -100; // 50px higher than before
// Update win text
if (!self.winText) {
self.winText = new Text2('Win: 0', {
size: 60,
fill: '#ffffff'
});
self.winText.anchor.set(0.5, 1);
self.addChild(self.winText);
}
self.winText.setText('Win: ' + win);
self.winText.x = 0;
self.winText.y = -150; // 50px above muscle text
// Smooth rotation towards target
var currentRotation = characterGraphics.rotation;
var rotationDiff = self.targetRotation - currentRotation;
// Handle rotation wrapping
if (rotationDiff > Math.PI) {
rotationDiff -= 2 * Math.PI;
}
if (rotationDiff < -Math.PI) {
rotationDiff += 2 * Math.PI;
}
characterGraphics.rotation += rotationDiff * 0.15;
};
return self;
});
var Joystick = Container.expand(function () {
var self = Container.call(this);
var baseGraphics = self.attachAsset('joystickBase', {
anchorX: 0.5,
anchorY: 0.5
});
var handleGraphics = self.attachAsset('joystickHandle', {
anchorX: 0.5,
anchorY: 0.5
});
baseGraphics.alpha = 0.3;
handleGraphics.alpha = 0.7;
self.baseRadius = 100;
self.handleRadius = 40;
self.isActive = false;
self.centerX = 0;
self.centerY = 0;
self.handleX = 0;
self.handleY = 0;
self.show = function (x, y) {
self.visible = true;
self.isActive = true;
self.x = x;
self.y = y;
self.centerX = x;
self.centerY = y;
self.handleX = 0;
self.handleY = 0;
handleGraphics.x = 0;
handleGraphics.y = 0;
};
self.hide = function () {
self.visible = false;
self.isActive = false;
// Smooth return to center
tween(handleGraphics, {
x: 0,
y: 0
}, {
duration: 200
});
};
self.updateHandle = function (x, y) {
if (!self.isActive) {
return;
}
// Calculate offset from center
var offsetX = x - self.centerX;
var offsetY = y - self.centerY;
var distance = Math.sqrt(offsetX * offsetX + offsetY * offsetY);
// Constrain handle within base radius
if (distance > self.baseRadius) {
offsetX = offsetX / distance * self.baseRadius;
offsetY = offsetY / distance * self.baseRadius;
distance = self.baseRadius;
}
self.handleX = offsetX;
self.handleY = offsetY;
handleGraphics.x = offsetX;
handleGraphics.y = offsetY;
// Return normalized values for movement
return {
x: offsetX / self.baseRadius,
y: offsetY / self.baseRadius,
magnitude: distance / self.baseRadius
};
};
self.visible = false;
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2C3E50
});
/****
* Game Code
****/
// Initialize muscle variable
var muscle = 0;
// Initialize win variable
var win = 0;
// Joystick handle (smaller circle)
// Joystick base (semi-transparent circle)
// Character shape
var character = game.addChild(new Character());
character.x = 1024;
character.y = 1366;
// Create Weight Lifting rectangle at top-center, 100px from left edge
var weightLiftingRect = game.addChild(LK.getAsset('weightLiftingRect', {
anchorX: 0.5,
anchorY: 0.5
}));
weightLiftingRect.x = 200 + 175; // 200px from left + half width (175) to center
weightLiftingRect.y = 50 + 110; // 50 + half height (70) to center
// Add text above the rectangle
var weightLiftingText = new Text2('Weight Lifting', {
size: 58,
// 36 * 1.6 = 57.6, rounded to 58
fill: '#ffffff'
});
weightLiftingText.anchor.set(0.5, 1);
weightLiftingText.x = weightLiftingRect.x;
weightLiftingText.y = weightLiftingRect.y - 75;
game.addChild(weightLiftingText);
// Create enemy at top right, 150px from top
var enemy = game.addChild(LK.getAsset('dusman', {
anchorX: 0.5,
anchorY: 0.5
}));
enemy.x = 2048 - 200; // Right edge minus half width
enemy.y = 150 + 100; // 150px from top plus half height
// Add power text above enemy
var enemyPowerText = new Text2('Power: 10', {
size: 60,
fill: '#ffffff'
});
enemyPowerText.anchor.set(0.5, 1);
enemyPowerText.x = enemy.x;
enemyPowerText.y = enemy.y - 100;
game.addChild(enemyPowerText);
// Create shop object at bottom left (50x, 50y)
var shop = game.addChild(LK.getAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
}));
shop.x = 50 + 150; // 50px from left + half width
shop.y = 2732 - 50 - 150; // 50px from bottom + half height
// Add shop text
var shopText = new Text2('Shop', {
size: 60,
fill: '#ffffff'
});
shopText.anchor.set(0.5, 0.5);
shopText.x = shop.x;
shopText.y = shop.y;
game.addChild(shopText);
// Create shopping interface (initially hidden)
var shoppingInterface = new Container();
shoppingInterface.visible = false;
// Shopping background (65% of screen)
var shopBg = LK.getAsset('weightLiftingRect', {
anchorX: 0.5,
anchorY: 0.5
});
shopBg.width = 2048 * 0.65;
shopBg.height = 2732 * 0.65;
shopBg.x = 2048 / 2;
shopBg.y = 2732 / 2;
shoppingInterface.addChild(shopBg);
// Shopping title
var shopTitle = new Text2('Shopping', {
size: 80,
fill: '#ffffff'
});
shopTitle.anchor.set(0.5, 0.5);
shopTitle.x = 2048 / 2;
shopTitle.y = 2732 / 2 - 400;
shoppingInterface.addChild(shopTitle);
game.addChild(shoppingInterface);
var isShoppingOpen = false;
// Variables for weight lifting interaction
var isMovingToWeights = false;
var isWaitingAtWeights = false;
var joystick = game.addChild(new Joystick());
var isDragging = false;
var joystickTouchId = null;
game.down = function (x, y, obj) {
// Check if shop was clicked
var shopLeft = shop.x - 150;
var shopRight = shop.x + 150;
var shopTop = shop.y - 150;
var shopBottom = shop.y + 150;
if (x >= shopLeft && x <= shopRight && y >= shopTop && y <= shopBottom) {
// Toggle shopping interface
if (!isShoppingOpen) {
shoppingInterface.visible = true;
isShoppingOpen = true;
}
return;
}
// Check if enemy was clicked (close shopping if open, otherwise increment win)
var enemyLeft = enemy.x - 100;
var enemyRight = enemy.x + 100;
var enemyTop = enemy.y - 100;
var enemyBottom = enemy.y + 100;
if (x >= enemyLeft && x <= enemyRight && y >= enemyTop && y <= enemyBottom) {
if (isShoppingOpen) {
// Close shopping interface
shoppingInterface.visible = false;
isShoppingOpen = false;
} else if (muscle >= 10) {
// Wait 1.25 seconds then increment win
LK.setTimeout(function () {
win += 1;
}, 1250);
}
return;
}
// Check if weight lifting rectangle was clicked
var rectLeft = weightLiftingRect.x - 175;
var rectRight = weightLiftingRect.x + 175;
var rectTop = weightLiftingRect.y - 70;
var rectBottom = weightLiftingRect.y + 70;
if (x >= rectLeft && x <= rectRight && y >= rectTop && y <= rectBottom && !isMovingToWeights && !isWaitingAtWeights) {
// Move character to weight lifting area
isMovingToWeights = true;
character.setVelocity(0, 0); // Stop current movement
tween(character, {
x: weightLiftingRect.x,
y: weightLiftingRect.y + 350
}, {
duration: 500,
easing: tween.easeInOut,
onFinish: function onFinish() {
isMovingToWeights = false;
isWaitingAtWeights = true;
// Wait 1 second then increase muscle
LK.setTimeout(function () {
muscle += 1;
isWaitingAtWeights = false;
}, 250);
}
});
return;
}
// Show joystick at bottom-left area when touched
if (x < 400 && y > 2332) {
joystick.show(x, y);
isDragging = true;
var input = joystick.updateHandle(x, y);
if (input) {
character.setVelocity(input.x * input.magnitude, input.y * input.magnitude);
}
}
};
game.move = function (x, y, obj) {
if (isDragging && joystick.isActive && !isMovingToWeights && !isWaitingAtWeights) {
var input = joystick.updateHandle(x, y);
if (input) {
character.setVelocity(input.x * input.magnitude, input.y * input.magnitude);
}
}
};
game.up = function (x, y, obj) {
if (isDragging && !isMovingToWeights && !isWaitingAtWeights) {
isDragging = false;
joystick.hide();
character.setVelocity(0, 0);
}
};
game.update = function () {
// Character update is handled automatically by its update method
};
2 d az kaslı insan görseli oluştur. In-Game asset. 2d. High contrast. No shadows 1 tane ten renginde
Shop 2 d pixel. In-Game asset. 2d. High contrast. No shadows
Pixel kaslı kol 2d kuş bakışı. In-Game asset. 2d. High contrast. No shadows
Etrafı tablo gibi olan içi gri etrafında kahverengi dışı. In-Game asset. 2d. High contrast. No shadows
1 tane az kaslı yeşil slime yap çok az kası olsun nötr surat olsun. In-Game asset. 2d. High contrast. No shadows ayakları elleri kafası var
Kırmızı kasları ve damarları gözüken slime ama çok değil az gözüken damarları. In-Game asset. 2d. High contrast. No shadows elleri ayakları var kırmızı sinirli insan boyunda kısa değil
Bana sarı kaslı bir slime yap elleri kolları ayakları var kasları kolayca belli oluyo nötr. In-Game asset. 2d. High contrast. No shadows
İnsan boyunda elleri kolları ayakları olan sinirli kaslı damarlı egzotik cyan renginde slime yap. In-Game asset. 2d. High contrast. No shadows
Pixel oyun tarzı köpek balığı peti oluştur 2 d. In-Game asset. 2d. High contrast. No shadows
Ekranı 4 e böl ve 4 tane pet 2 d yap pixel biri papağan biri kaplan biri yılan biri de kemikten oluşan gizemli bir pet siyah kırmızı tarzı renkler kullan. In-Game asset. 2d. High contrast. No shadows
Elleri ayakları kolları olan gökkuşağı renklerinde yüzsüz çok fazla kaslı damarlı slime yap. Tatlı In-Game asset. 2d. High contrast. No shadows