ändert So verwende ich die Funktion von diesem TutorialBenötigen Neupositionierung einen Kreis helfen, wenn die Leinwandgröße
sieht es so aus -
function resizeGame() {
var gameArea = document.getElementById('canvas-container');
var widthToHeight = 11/6;
var newWidth = window.innerWidth;
var newHeight = window.innerHeight;
var newWidthToHeight = newWidth/newHeight;
if (newWidthToHeight > widthToHeight) {
newWidth = newHeight * widthToHeight;
gameArea.style.height = newHeight + 'px';
gameArea.style.width = newWidth + 'px';
} else {
newHeight = newWidth/widthToHeight;
gameArea.style.width = newWidth + 'px';
gameArea.style.height = newHeight + 'px';
}
gameArea.style.marginTop = (-newHeight/2) + 'px';
gameArea.style.marginLeft = (-newWidth/2) + 'px';
var gameCanvas = document.getElementById('ctx');
gameCanvas.width = newWidth;
gameCanvas.height = newHeight;
HEIGHT = newHeight;
WIDTH = newWidth
}
So alles, was ich Verwenden Sie BREITE und HÖHE, um auf der Leinwand zu arbeiten. Aber es gibt andere Dinge, die ich in meinem Spiel habe, die nur ein x und y verwenden und nicht mit der Leinwand wechseln.
if(drawBall){
ctx.save();
ctx.beginPath();
ctx.arc(ball.x, ball.y, (ball.diameter/2) - 5,0, 2*Math.PI);
ctx.fillStyle = ball.color;
ctx.fill();
ctx.restore();
}
Was kann ich tun, um meine ball.x und ball.y zu machen, so ist es richtig mit der Leinwand verändert?
Können wir einen Ausschnitt oder eine Geige bekommen, um zu sehen, wie es aussieht, wenn es läuft? –
Ich glaube, ball.x und ball.y sind x und y Positionen oder Koordinaten. Angesichts der Höhe und Breite des Fensters, würde nicht ein bestimmter Prozentsatz von Ihnen, geben Sie eine gegebene Koordinate? –
Also sollte ich das Verhältnis 11/6 verwenden ..? – joe