2016-10-17 2 views
0

Ich habe eine Leinwand, die gestreckt ist, seit ich ein Sandbox-Spiel mache. Ich kann nicht die normale Methode zur Erkennung des Pixels auf der Seite verwenden, auf die ein Canvas geklickt wird, weil ich wissen muss, auf welches Stretch-Pixel geklickt wurde. Hoffentlich macht das Sinn?Wie erkennt man, wo auf eine Leinwand geklickt wurde?

+1

Einige Code wäre schön – TheGuyWhoCodes

+0

Erstens, bearbeiten Sie Ihre Frage, um ein ausführbares Snippet enthalten, die die grundlegende Umgebung benötigt um was zu tun du willst. Als nächstes zeigen Sie uns, was Sie bisher versucht haben und erklären Sie, warum es für Ihre Situation nicht funktioniert. In [Hilfecenter] (http://stackoverflow.com/help/mcve) finden Sie weitere Informationen darüber, wie Sie eine bessere Frage stellen und bessere Antworten erhalten. –

Antwort

0

Alles, was Sie tun müssen, ist die Position auf der Grundlage Ihrer aktuellen Leinwandgröße und der ursprünglichen Leinwandgröße zu skalieren.

function scaleCursorPoint(int mouseX, int mouseY, ctx) { 
    return { 
     x: mouseX * (ctx.canvas.width/ctx.width), 
     y: mouseY * (ctx.canvas.height/ctx.height) 
    }; 
} 

ctx (die mit canvas.getContext('2d') erhalten wird, hat die Breite des ursprünglichen ungereckten. ctx.canvas das ursprüngliche canvas DOM-Element erhält. ctx.canvas.width die Größe des DOM-Element ist (die gedehnten Größe).

unterteilen den Zwei und Sie erhalten den Maßstab Wert dann nur mehrere dieser Skala Wert mit den Punkten, die Sie haben und Sie sind gut

+0

Danke! funktioniert perfekt –

+0

@InvincibleBlaze Wenn es die Antwort ist, klicken Sie bitte das Häkchen unter der Nummer, damit andere, die auf diese Frage stoßen, die Antwort auch wissen. Froh, dass es funktioniert. =) – samanime

Verwandte Themen