ゲームを作成しようとしていますが、次のコードでは、switch ステートメントを配置した for ループを使用して関数を定義しています。今、console.log() で、すべて正常に機能したが、switch ステートメントが機能していないことがわかります。たとえば、compX と compY の両方が 2 を超えている場合でも、彼は switch の case-statement でコードを実行しません。その case-statement で 'rux' と 'ruy' を要求した console.log() でテストしましたが、コンソールには何も表示されませんでした。それで、誰かが私が間違っていることを知っていますか?多分誰かがそれがどのように機能するかの例を持っていますか? すべての小さな答えに感謝します!
function updatePosition() {
for (var pc = policeNum; pc > 0; pc--) {
policeRef.child(pc).once('value', function (snapshot) {
var oldData = snapshot.val();
//KI:
var compX = newX - oldData.X;
var compY = newY - oldData.Y;
console.log('We found X:', compX);
console.log('We found Y:', compY);
switch (compX, compY) {
case compX < -2 && compY < -2: //links und oben
var lox = oldData.X - pixelWidth;
var loy = oldData.Y - pixelHeight;
policeRef.child(pc).update({
X: lox,
Y: loy
});
break;
case compX > 2 && compY < -2: //rechts und oben
var rox = oldData.X + pixelWidth;
var roy = oldData.Y - pixelHeight;
policeRef.child(pc).update({
X: rox,
Y: roy
});
break;
case compX < -2 && compY > 2: //links und unten
var lux = oldData.X - pixelWidth;
var luy = oldData.Y + pixelHeight;
policeRef.child(pc).update({
X: lux,
Y: luy
});
break;
case compX > 2 && compY > 2: //rechts und unten
var rux = oldData.X + pixelWidth;
var ruy = oldData.Y + pixelHeight;
console.log('We found rux:', rux);
console.log('We found ruy:', ruy);
policeRef.child(pc).update({
X: rux,
Y: ruy
});
break;
case compX > -2 && compX < 2 && compY > 2: //unten
var uy = oldData.Y + pixelHeight;
console.log('We found uy:', uy);
policeRef.child(pc).update({
Y: uy
});
break;
case compX > -2 && compX < 2 && compY < -2: //oben
var oy = oldData.Y - pixelHeight;
policeRef.child(pc).update({
Y: oy
});
break;
case compY > -2 && compY < 2 && compX > 2: //rechts
var rx = oldData.X + pixelWidth;
policeRef.child(pc).update({
X: rx
});
break;
case compY > -2 && compY < 2 && compX < 2: //links
var lx = oldData.X - pixelWidth;
policeRef.child(pc).update({
X: lx
});
break;
}
context.clearRect(oldData.Y, oldData.X, pixelHeight, pixelWidth)
});
updateDraw();
}
}