Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: rainbowGraphics is not defined' in or related to this line: 'rainbowGraphics.tint = '0xffffff';' Line Number: 59
Code edit (2 edits merged)
Please save this source code
User prompt
Fix Bug: 'Timeout.tick error: Cannot read properties of null (reading 'alpha')' in or related to this line: 'powerupText.alpha -= 1 / fadeStep;' Line Number: 248
User prompt
Fix Bug: 'Timeout.tick error: LK.effects.fadeOut is not a function' in or related to this line: 'LK.effects.fadeOut(powerupText, 3000, function () {' Line Number: 243
User prompt
Fix Bug: 'Timeout.tick error: LK.effects.fadeObject is not a function' in or related to this line: 'LK.effects.fadeObject(powerupText, 0, 3000, function () {' Line Number: 243
User prompt
Fix Bug: 'Timeout.tick error: LK.effects.fadeOut is not a function' in or related to this line: 'LK.effects.fadeOut(powerupText, 3000, function () {' Line Number: 243
User prompt
once added in showpoweruptext, poweruptext should fade out over the course of 3 seconds
Code edit (2 edits merged)
Please save this source code
User prompt
make poweruptext disappear on click, if it exists
Code edit (1 edits merged)
Please save this source code
Code edit (3 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: ball is not defined' in or related to this line: 'console.log('collision occurred: (obstacle:', t.radius, t.angle, t.x, t.y, ') , (player: ', ball.radius, ball.angle, ball.x, ball.y);' Line Number: 345
Code edit (2 edits merged)
Please save this source code
User prompt
Fix Bug: 'ReferenceError: localToGlobal is not defined' in or related to this line: 'var globalPos1 = localToGlobal(object1);' Line Number: 271
Code edit (6 edits merged)
Please save this source code
User prompt
update the getglobalposition function to account for parent objects having been scaled up or down
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'getChildAt')' in or related to this line: 'LK.effects.flashScreen(obstacles[i].parent.getChildAt(0).getTint(), 1000);' Line Number: 342
Code edit (2 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'getChildAt')' in or related to this line: 'LK.effects.flashScreen(obstacles[i].parent.getChildAt(0).tint, 1000);' Line Number: 342
Code edit (9 edits merged)
Please save this source code
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'orbitGraphics')' in or related to this line: 'LK.effects.flashScreen(obstacles[i].parent.orbitGraphics.tint, 1000);' Line Number: 342
Code edit (1 edits merged)
Please save this source code
===================================================================
--- original.js
+++ change.js
@@ -6,9 +6,8 @@
* Maybe player should change orbit direction (and/or speed) with the orbit he jumps into?
* Make sure orbits don't have too many obstacles.
* Maybe skip player and obstacle updating while scaling?
* Current min and max speeds of obstacles should be closer to each other.
-* Make check of circular collision, considering actual display size and stage coordinates of obstacles. (Or even just a forgiving distanc check).
* Maybe background should tint with an offset on the colorwheel?
* Rotate orbits with obstacles statically distributed on them instead of calculating obstacle positions (for performance).
* Would also be cool to be able to jump in AND out of orbits, but hard to implement. Or maybe just tap on the orbit to go to?
****/
@@ -72,8 +71,9 @@
//var angleSpeed = -0.01 * self.parent.direction; //self.orbitSpeed;
//self.radius = self.parent.width / 2 - self.width / 2;
self.radius = self.parent.width / 2 * (1900 / self.parent.width) - self.width / 2 * (100 / self.width);
self.angle = (self.angle || 0) + self.orbitSpeed;
+ self.angle %= Math.PI * 2;
self.x = self.radius * Math.cos(self.angle);
self.y = self.radius * Math.sin(self.angle);
};
});
@@ -202,8 +202,22 @@
};
return '0x' + toHex(r) + toHex(g) + toHex(b);
}
//console.log(rainbowColors);
+// A for our purposes optimized hitdetection, based on orbit layer and angle.
+var radIntersects = function radIntersects(p, t) {
+ if (t.parent == orbits[currentOrbitIndex]) {
+ var pa = (p.angle * (180 / Math.PI) + 180) % 360;
+ var ta = (t.angle * (180 / Math.PI) + 180) % 360;
+ if (Math.abs(pa - ta) < 6) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+};
// Initialize assets used in this game.
// Game variables
var player;
var orbits = [];
@@ -330,11 +344,15 @@
// Update obstacles
for (var i = obstacles.length - 1; i > 0; i--) {
if (obstacles[i] && !obstacles[i]._destroyed) {
obstacles[i].move();
- if (player.intersects(obstacles[i])) {
+ //if (player.intersects(obstacles[i])) {
+ if (radIntersects(player, obstacles[i])) {
var t = obstacles[i];
- console.log('collision occurred: (obstacle:', t.radius, t.angle, ') , (player: ', player.radius, player.angle);
+ console.log('collision occurred: (obstacle:', t.radius, t.angle % (Math.PI * 2), ') , (player: ', player.radius, player.angle % (Math.PI * 2));
+ var ta = (t.angle * (180 / Math.PI) + 180) % 360;
+ var pa = (player.angle * (180 / Math.PI) + 180) % 360;
+ console.log(ta, pa);
//if (radIntersects(player, obstacles[i], 100)) {
if (obstacles[i] instanceof Powerup1) {
obstacles[i].destroy();
obstacles[i]._destroyed = true;