我有一個球,一個杯子,以及代表投擲力量欄的內部和外部div的圖像。
當用戶點擊球時,電源欄開始增加,然後遞減。當用戶第二次點擊球時,投擲力棒停止並且球被投擲。如何將球扔進杯子?
正如我已經開始編碼這個,我意識到某些事情會變得非常複雜,即使這個想法本身很簡單。
例如,我希望球能夠「反彈」,這意味着我將不僅需要跟蹤球的X和Y座標,而且Z座標代表深度。
當球落下時,z座標減少,並且球的圖像應該按比例縮小,當它開始反彈時,它應該放大,再次根據z座標。如果到達杯子時z座標低於某個特定值,我還希望球從杯子上彈開,如果它是某個甜蜜點,則進入杯子;如果z值超過杯子,則進入杯子。那個甜蜜的地方。
爲了保持這個簡短的地方,我只是發佈我迄今爲止的。這個例子缺乏某些我希望人們可以幫助我的東西。
<html>
<head>
<style>
#ball {
position:absolute;
width:75px;
height:75px;
}
#cup1 {
position:absolute;
left:375px;
}
#outerPowerMeter {
position:absolute;
width:25px;
height:100px;
background-color:red;
}
#innerPowerMeter {
position:absolute;
width:25px;
height:100px;
background-color:black;
}
</style>
<script>
window.onload = function() {
var ball = document.getElementById("ball");
var yPos = 500;
var xPos = 400;
var zPos = 100;
var ballWidth = 75;
var ballHeight = 75;
var throwBallInterval;
var changeBallSizeInterval;
ball.style.top = yPos + "px";
ball.style.left = xPos + "px";
var cup1 = document.getElementById("cup1");
var powerMeter = document.getElementById("innerPowerMeter");
var powerMeterValue = 0;
var powerMeterHeight = 100;
var powerMeterActive = false;
var powerMeterInterval;
powerMeter.style.height = powerMeterHeight + "px";
ball.onclick = function() {
if (powerMeterActive == false) {
powerMeterActive = true;
startPowerMeter();
} else {
powerMeterActive = false;
stopPowerMeter();
throwBall();
}
}
function throwBall() {
throwBallInterval = setInterval(function() {
yPos = yPos - 1;
ball.style.top = yPos + "px";
}, 1);
changeBallSizeInterval = setInterval(function() {
zPos = zPos - 1;
ballWidth = ballWidth - 1;
ballHeight = ballHeight - 1;
ball.style.width = ballWidth;
ball.style.height = ballHeight;
}, 100);
}
function startPowerMeter() {
var increment = true;
powerMeterInterval = setInterval(function() {
if (increment == true) {
powerMeterValue = powerMeterValue + 1;
powerMeter.style.height = (powerMeterHeight - powerMeterValue) + "px";
if (powerMeterValue == 100) {
increment = false;
}
} else {
powerMeterValue = powerMeterValue - 1;
powerMeter.style.height = (powerMeterHeight - powerMeterValue) + "px";
if (powerMeterValue == 0) {
increment = true;
}
}
},1);
}
function stopPowerMeter() {
clearInterval(powerMeterInterval);
}
function detectCollision() { }
function detectGoal() { }
}
</script>
</head>
<body>
<img id="cup1" src="http://beerwar.com/game/images/cup.png">
<img id="ball" src="http://beerwar.com/game/images/ball.png">
<div id="outerPowerMeter">
<div id="innerPowerMeter"></div>
</div>
</body>
</html>
那麼,你究竟在問什麼?我冒昧地從您的帖子中刪除了大量不相關的信息,但我在那裏找不到實際的問題。這個代碼有什麼「不起作用」嗎?發生了什麼,你期望/想要發生什麼? – Cerbrus 2014-10-22 07:58:49
對不起,如果我不清楚。我會複製和粘貼我所問的「肉」,如果那還不是直截了當的,請告訴我。例如,我希望球能夠「反彈」,這意味着我不僅需要跟蹤球x和y座標,還需要表示深度的z座標。當球落下時,z座標減少,並且球的圖像尺寸應該縮小,並且當它開始反彈時,它應該放大,再次基於z座標。 – 2014-10-22 08:01:15
我也想讓球在杯子到達杯子時,如果z座標低於某個值,杯子會跳出杯子,如果它是某個甜蜜點,則進入杯子,如果杯子的z值是在那個甜蜜的地方。 – 2014-10-22 08:01:41