Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
use the Ring class in gameInitialize
User prompt
create a Class for the ring
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: player is undefined' in or related to this line: 'if ((player.leftHand.intersects(opponent.head) || player.rightHand.intersects(opponent.head)) && player.isPunching) {' Line Number: 293
Code edit (1 edits merged)
Please save this source code
User prompt
only flash on hit when an athlete is Punching
User prompt
restore self.isPunching
User prompt
update self.isPunching
User prompt
add a propoery isPunching to athlete class
Code edit (1 edits merged)
Please save this source code
User prompt
set isPlaying to true on 1st screen tap
Code edit (1 edits merged)
Please save this source code
User prompt
don't update athletes when isPlaying is false
Code edit (2 edits merged)
Please save this source code
User prompt
add a globalVariable isPlaying
Code edit (1 edits merged)
Please save this source code
User prompt
in mainMove(); define a target within the ring then progressively move to the target. when reached choose another target
Code edit (1 edits merged)
Please save this source code
User prompt
in Athlete mainMove, make player randomly move around the ring center
Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
in Player mini movements, also move forearms ans hands
User prompt
Add another button in the bottom center : gardButton
===================================================================
--- original.js
+++ change.js
@@ -3,12 +3,12 @@
****/
/****************************************************************************************** */
/************************************* ATHLETE CLASS ************************************** */
/****************************************************************************************** */
-var Athlete = Container.expand(function (isHuman) {
+var Athlete = Container.expand(function (isPlayer) {
var self = Container.call(this);
self.isPunching = false; // Indicates if the athlete is currently punching
- self.isHuman = isHuman;
+ self.isPlayer = isPlayer;
self.body = new Container();
game.addChild(self.body);
// Define punch distance for punching animation
var punchDistance = 50;
@@ -66,9 +66,9 @@
self.torso = self.body.attachAsset('body', {
anchorX: 0.5,
anchorY: 0.5
});
- self.head = self.body.attachAsset(isHuman ? 'head' : 'head2', {
+ self.head = self.body.attachAsset(isPlayer ? 'head' : 'head2', {
anchorX: 0.5,
anchorY: 0.5,
y: -40
});
@@ -121,9 +121,9 @@
// Update body position and rotation
self.body.x = self.x;
self.body.y = self.y;
// Calculate angle to face the opponent
- var target = self.isHuman ? opponent : player; // Determine target based on whether self is human or enemy
+ var target = self.isPlayer ? opponent : player; // Determine target based on whether self is Player or Opponent
var angleToOpponent = Math.atan2(target.y - self.y, target.x - self.x) + Math.PI * 0.5;
self.body.rotation = angleToOpponent;
};
self.targetX = self.targetX || 1024; // Default target X
@@ -205,8 +205,17 @@
self.width /= 0.9;
self.height /= 0.9;
};
});
+var Ring = Container.expand(function () {
+ var self = Container.call(this);
+ self.ringAsset = self.attachAsset('ring', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.x = 1024; // Center of the screen horizontally
+ self.y = 1366; // Center of the screen vertically
+});
/****
* Initialize Game
****/
@@ -270,18 +279,21 @@
opponent.x = 1024; // Center horizontally
opponent.y = 1066; // Center vertically in the middle of the ring
opponent.rotation = Math.PI * 0.5;
}
+/****************************************************************************************** */
+/************************************** MAIN GAME LOOP ************************************ */
+/****************************************************************************************** */
// Game update function
game.update = function () {
// This section has been removed to prevent redundant player movement handling.
- // Check for collision between player's hand and enemy's head
+ // Check for collision between player's hand and opponent's head
if ((player.leftHand.intersects(opponent.head) || player.rightHand.intersects(opponent.head)) && player.isPunching) {
// Player hit reaction: head goes back, flash screen red
- // Calculate enemy's current direction and move back accordingly
- var enemyDirection = Math.atan2(opponent.y - player.y, opponent.x - player.x);
- opponent.x += Math.cos(enemyDirection) * 50; // Move enemy back in the x direction of current movement
- opponent.y += Math.sin(enemyDirection) * 50; // Move enemy back in the y direction of current movement
+ // Calculate opponent's current direction and move back accordingly
+ var opponentDirection = Math.atan2(opponent.y - player.y, opponent.x - player.x);
+ opponent.x += Math.cos(opponentDirection) * 50; // Move opponent back in the x direction of current movement
+ opponent.y += Math.sin(opponentDirection) * 50; // Move opponent back in the y direction of current movement
opponent.head.y -= 20; // Head returns to normal position
LK.effects.flashScreen(0xFFFFFF, 100); // Flash the whole screen red for 0.5 seconds
LK.setTimeout(function () {
opponent.head.y += 20; // Head returns to normal position
clear
basic light gray convex round button with a red boxing glove icon. UI
Un gant de boxe bleu vu de dessus. video game
basic light round convex gray button with a raised blue shield icon.. UI
un éclair. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
remove
a basic white heart.. game icon
A boxer has lost the match..
man boxer with red gloves is KO on the ring..