अजीब शीर्षक क्षमा करें। मैंने दीवारों और एक दूसरे के खिलाफ, उछलकर और टकराकर, 200 गेंदों का थोड़ा ग्राफिक डेमो बनाया है। आप देख सकते हैं कि मेरे पास वर्तमान में यहाँ क्या है: http://www.exeneva.com/html5/multipleBallsBouncingAndColliding/
समस्या यह है कि जब भी वे एक-दूसरे से टकराते हैं, वे गायब हो जाते हैं। मुझे यकीन नहीं है कि क्यों। क्या कोई देख सकता है और मेरी मदद कर सकता है?
अद्यतन: जाहिरा तौर पर गेंदों की सरणी में NaN के निर्देशांक के साथ गेंदें हैं। नीचे वह कोड है जहां मैं गेंदों को सरणी पर धकेलता हूं। मुझे पूरी तरह से यकीन नहीं है कि निर्देशांक NaN कैसे प्राप्त कर रहे हैं।
// Variables
var numBalls = 200; // number of balls
var maxSize = 15;
var minSize = 5;
var maxSpeed = maxSize + 5;
var balls = new Array();
var tempBall;
var tempX;
var tempY;
var tempSpeed;
var tempAngle;
var tempRadius;
var tempRadians;
var tempVelocityX;
var tempVelocityY;
// Find spots to place each ball so none start on top of each other
for (var i = 0; i < numBalls; i += 1) {
tempRadius = 5;
var placeOK = false;
while (!placeOK) {
tempX = tempRadius * 3 + (Math.floor(Math.random() * theCanvas.width) - tempRadius * 3);
tempY = tempRadius * 3 + (Math.floor(Math.random() * theCanvas.height) - tempRadius * 3);
tempSpeed = 4;
tempAngle = Math.floor(Math.random() * 360);
tempRadians = tempAngle * Math.PI/180;
tempVelocityX = Math.cos(tempRadians) * tempSpeed;
tempVelocityY = Math.sin(tempRadians) * tempSpeed;
tempBall = {
x: tempX,
y: tempY,
nextX: tempX,
nextY: tempY,
radius: tempRadius,
speed: tempSpeed,
angle: tempAngle,
velocityX: tempVelocityX,
velocityY: tempVelocityY,
mass: tempRadius
};
placeOK = canStartHere(tempBall);
}
balls.push(tempBall);
}