Java-Gaming.org Hi !
 Featured games (83) games approved by the League of Dukes Games in Showcase (582) Games in Android Showcase (163) games submitted by our members Games in WIP (633) games currently in development
 News: Read the Java Gaming Resources, or peek at the official Java tutorials
Pages: [1]
 ignore  |  Print
 Keep both players in shot  (Read 1150 times) 0 Members and 1 Guest are viewing this topic.
wookoouk

Senior Newbie

 « Posted 2012-01-12 21:17:09 »

If I want to keep both player in the screen at all times no matter how far apart, how can I do this with GLOrtho?

I am trying to calculate the distance between them +the player width but im not sure how to tell the camera to display that width and center (distance between players /2)

theagentd

« JGO Bitwise Duke »

Medals: 455
Projects: 2
Exp: 8 years

 « Reply #1 - Posted 2012-01-12 21:45:35 »

 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27 `double minX = Math.min(player1.x, player2.x) - 10;double minY = Math.min(player1.y, player2.y) - 10;double maxX = Math.max(player1.x, player2.x) + 10;double maxY = Math.max(player1.y, player2.y) + 10;double dx = maxX-minX;double dy = maxY-minY;double aspectRatio = dx / dy;double WANTED_ASPECT_RATIO = (double)screenWidth/screenHeight;if(aspectRatio < WANTED_ASPECT_RATIO){    double centerY = minY + dy*0.5;    double correction = dx*0.5 * WANTED_ASPECT_RATIO;    minY = centerY - correction;    maxY = centerY + correction;}else{    double centerX = minX + dx*0.5;    double correction = dy*0.5 / WANTED_ASPECT_RATIO;    minX = centerX - correction;    maxX = centerX + correction;}glOrtho(minX, maxX, maxY, minY, -1, 1);`

COMPLETELY UNTESTED. IF IT WORKS, I'LL BE SURPRISED.

Myomyomyo.
wookoouk

Senior Newbie

 « Reply #2 - Posted 2012-01-12 21:55:59 »

VERY quick and detailed reply! but this zooms the camera in about 1000% and puts the camera in the top right LEFT. I will fiddle with it and get back to you

Thanks
theagentd

« JGO Bitwise Duke »

Medals: 455
Projects: 2
Exp: 8 years

 « Reply #3 - Posted 2012-01-12 22:36:33 »

Geh! I knew it! =S

To describe what I was trying to do:

1. calculate a bounding box around the units (first 4 lines)
2. fix the aspect ratio
3. glOtho...

Myomyomyo.
wookoouk

Senior Newbie

 « Reply #4 - Posted 2012-01-12 22:44:13 »

Ahhh! you little genius!

How would you focus on one player, aka, zoom in 300% and offset the cam over the player. Dont have to code if you dont want too, Im just trying to get my head round it so that I can learn and not just follow blindly

.....as I am typing I can see that my glOrtho is in my init method.....so not being updated by player movement.....shit.
theagentd

« JGO Bitwise Duke »

Medals: 455
Projects: 2
Exp: 8 years

 « Reply #5 - Posted 2012-01-12 22:49:56 »

Hmm. It should be easier to just setup glOrtho with the screen resolution and then translate and scale to the right place.

Just glTranslate to the players coordinates. You might want to center the screen on him too by subtracting half the screen width/height from the translation coordinates. It should be easier to center on the point in between the players (the average of the two players' positions), and then scale based on how far away they are from each other...

Myomyomyo.
wookoouk

Senior Newbie

 « Reply #6 - Posted 2012-01-12 22:55:21 »

Damm, didnt know I could use scale and translate, I should be able to use the same as I have used in a slick2D game:

g.scale(1.5f, 1.5f);
g.translate(-x + windowWidth / 2 - 120, -y + windowHeight / 2 - 120);

...Im a numpty, thanks for your help, maby all this will make as much scene as it does to you.

Pages: [1]
 ignore  |  Print

You cannot reply to this message, because it is very, very old.

 Ralphanese (22 views) 2015-05-29 13:07:55 Gibbo3771 (18 views) 2015-05-29 06:54:17 Ralphanese (23 views) 2015-05-28 16:52:52 theagentd (31 views) 2015-05-27 22:21:17 theagentd (38 views) 2015-05-27 22:21:08 CopyableCougar4 (27 views) 2015-05-27 19:24:50 MrMapcom (24 views) 2015-05-23 20:26:16 MrMapcom (33 views) 2015-05-23 20:23:34 Waterwolf (39 views) 2015-05-20 15:01:45 chrislo27 (46 views) 2015-05-20 03:42:21
 Riven 27x Rayvolution 25x theagentd 23x BurntPizza 21x KevinWorkman 17x Spasi 17x orangepascal 16x Drenius 15x ra4king 13x DavidBVal 12x princec 12x opiop65 12x Husk 11x EgonOlsen 10x Zeldar 9x kevglass 9x
 Intersection Methodsby Roquen2015-05-29 08:19:33List of Learning Resources2015-05-05 10:20:32How to: JGO Wikiby Mac702015-02-17 20:56:162D Dynamic Lighting2015-01-01 20:25:42How do I start Java Game Development?by gouessej2014-12-27 19:41:21Resources for WIP gamesby kpars2014-12-18 10:26:14Understanding relations between setOrigin, setScale and setPosition in libGdx2014-10-09 22:35:00Definite guide to supporting multiple device resolutions on Android (2014)2014-10-02 22:36:02
 java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org