2016-09-08 7 views
0

Ich arbeite derzeit an einem Spiel, wo Sie Asteroiden vermeiden müssen. Ich begann mit willkürlichen Einheiten.Wie setze ich Abitrary-Einheiten richtig?

public final static int WIDTH = 100, HEIGHT = 100; 

Zusätzlich ich bin mit einem OrthographicCamera:

float aspectratio = 16/10; 
cam = new OrthographicCamera(100, 100 * aspectratio); 
cam.position.set(cam.viewportWidth/2f, cam.viewportHeight/2f, 0); 
cam.update(); 

Im Spielbildschirm, die Asteroiden deformiert aussehen:

enter image description here

+0

Ich vermute, die gelbe Kleckse sind der Asteroid. Wie sind sie "deformiert"? Welche Form sollten sie haben? Von Ihren Code-Stücken scheint es, als ob Sie denken, das Problem ist mit der Kamera. Warum denkst du, dass? Ansonsten zeige uns vielleicht Code, der die Asteroiden beeinflusst. Was passiert, wenn Sie die Größe Ihres Fensters ändern? – valid

+0

@valid die gelben Asteroiden sollten Kreise sein. Ich weiß nicht, welches Bildformat am besten passt? Ich bin mir ziemlich sicher, dass das Problem mit den Asteroiden nichts zu tun hat, denn in einer früheren Version ohne OrthographicCamera und Seitenverhältnis sah das Spiel mit Kreisen wie Asteroiden ganz gut aus und sind schärfer SpaShip. Sogar schwer [hier] (http://stackoverflow.com/questions/39378730/gamescreen-shows-black-screen-solved) ist der volle Asteroids Code. –

Antwort

0

Das ist ein Problem der Ihr Ansichtsfenster. Schauen Sie sich this page an. Zum Beispiel können Sie eine FitViewport verwenden, die Ihr Spiel so viel wie möglich skaliert, um den Bildschirm anzupassen, aber es kann schwarze Balken geben.

0

Ihr Aspekt ist ausgeschaltet. Beachten Sie, dass Ihre Planeten auch nicht rund sind. Ihr Darstellungsbereich ist 500 x 400, was ein 5: 4-Aspekt ist, Sie möchten 16: 10-Aspekt.

Try Ändern

cam = new OrthographicCamera(500, 250 * aspectratio);

zu

cam = new OrthographicCamera(500 * aspectratio, 500);

, dass Sie ein Ansichtsfenster von 800x500 geben wird, oder 16:10

+0

Entschuldigung, der falsche OrthographicCamera Code wurde eingefügt. Das ist meine OrthographicCamrea im Spielbildschirm: 'cam = new OrthographicCamera (100, 100 * aspiratio)' –

+0

dann setze '* aspectionatio' auf der linken Seite, nicht auf der rechten Seite. Das Seitenverhältnis ist größer als 1 und Sie möchten, dass Ihre Breite größer als Ihre Höhe ist. – Mick