2016-11-04 7 views
2

Für mein Spiel, mein Server Objekte API dient alle Informationen für Spielobjekte/Artikel als JSON.
Flip x y Positionen

Meine Objekte hat Richtungen. Richtung System funktioniert mit Spiegeln: Wenn Sie Richtung 6 umdrehen, erhalten Sie Richtung 0. Jedes Objekt hat Schichten. Jede Schicht hat eine Bild und seine vordefiniertenx, y (top, left in px) Position, so dass das Objekt zusammengebaut werden kann.

Also ich möchte an den Client Objekte senden, die Alerdy umgedreht sind. Wenn ich Richtung haben 6, und die Client-Anforderung ist Richtung 0, wird mein Server Flip jeder Schicht Bilder und x,yKoordinatender Richtung so kann das Objekt korrekt MIT UMGEKEHRT Bilder zusammengesetzt werden und die Client hat nicht alles zu spiegeln, nur um das Objekt mit den gegebenen x,y Koordinaten für jede Schicht zu montieren.

Spiegeln von Bildern ist in Ordnung, ich habe es getan und ich habe keine Probleme. Aber ich weiß nicht, was ich tun soll, damit die X, Y-Koordinaten mit den umgedrehten Ebenenbildern arbeiten und es nicht richtig zeichnet.


Beispiel:

Unflipped Schicht Info:

direction: 6, 
base64ImageURL: [b64 string], 
x: 42, 
y: 16 

Flipped Schicht info sein sollte:

direction: 0, 
base64ImageURL: [b64 string flipped], 
x: ??, 
y: ?? 

Ein weiteres Beispiel:

Zum Beispiel habe ich Schichten auf meinem Objekt: Schicht 1, 2 und 3 Richtung 0 das Ergebnis Richtung Spiegeln ist 6. So habe ich diese in Richtung 6:

{ 
    Layer1: {image: "[b64 image]", x:32, y:20}, 
    Layer2: {image: "[b64 image]", x:50, y:45}, 
    Layer3: {image: "[b64 image]", x:10, y:65} 
} 

Wenn ich also jede Schicht Bild Flip die x, y-Positionen sollten auch verändert werden, sonst Schichten nicht richtig zusammengesetzt ein Richtung 0 info Objekt zu haben. Aber was soll ich mit der x & y machen? Welche Operation?

+0

Sie möchten im Wesentlichen die Bildpixel übertragen (http://www.ajaxblender.com/howto-rotate-image-using-javascript-canvas.html)? –

+0

Ich möchte die Bilder und ihre Zeichenkoordinaten spiegeln. Ich habe es mit 'scale (-1, 1) gemacht;' so jetzt muss ich die x, y Positionen umdrehen und ich weiß nicht, wie – tchikitanikita

Antwort

0

Ich bekomme nicht genau, wenn Sie das Bild spiegeln oder transponieren möchten. Das .scale(-1,1) sollte das Bild über seine Y-Achse spiegeln.

Fügen Sie einfach diese CSS zu Ihrem Bildklasse:

.flipped { 
    transform: scale(-1, 1); 
    -moz-transform: scale(-1, 1); 
    -webkit-transform: scale(-1, 1); 
    -o-transform: scale(-1, 1); 
    -khtml-transform: scale(-1, 1); 
    -ms-transform: scale(-1, 1); 
} 

Oder von Ihrem Code geht, habe ich eine Ahnung haben, dass dies funktionieren könnte:

context.scale(-1, 1); 
context.drawImage(image, image.width, 0); 

Entfernen der - Zeichen von image.width

+0

Das Problem betrifft nicht das Bild, es geht um X- und Y-Koordinaten der Schichten wenn das Bild ist umgedreht – tchikitanikita

+0

Zum Beispiel habe ich 3 Schichten auf meinem Objekt: layer1, 2 und 3 Richtung 0 ist das Ergebnis der flipping-Richtung 6. So habe ich das in Richtung 6: 'Layer1: x = 32; y = 20; Schicht2: x = 50; y = 45; Schicht3: x = 10; y = 65; ' Wenn ich also jedes Layer-Bild umblättere, sollten auch die x, y-Positionen geändert werden, da sonst die Layer nicht korrekt zusammengefügt werden. Aber was soll ich mit dem x & y machen? Welche Operation? – tchikitanikita

+0

Was bedeuten diese 'x, y'-Koordinaten? Oben links in der Ebene? Sind alle Ebenen gleich groß? – User528491

Verwandte Themen