Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (499)
Games in Android Showcase (118)
games submitted by our members
Games in WIP (567)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Rotate Rectangle  (Read 1890 times)
0 Members and 1 Guest are viewing this topic.
Offline nhmllr

Senior Member


Medals: 1
Projects: 3


slow and steady...


« Posted 2012-07-20 03:39:57 »

I hate to ask this because it must have been asked a trillion times but I didn't know how to search for it so here it goes

How can I rotate square tiles by 90 degrees?
I can reassign the vertex coordinates but that just seems dirty and there must be a better way
Note that it only be 90/180/270 degrees, nothing like 45

Thanks
Offline UprightPath
« Reply #1 - Posted 2012-07-20 03:50:40 »

I probably can't answer this, but I can ask a few leading questions that might get you closer to your answer.

1) What are you using to do your graphics? (Java2D, LWJGL, JOGL, Slick2D, LibGDX, etc.)
2) Are you asking, specifically, about rotating the tile image for a single tile (Meaning using the unrotated image for other tiles)?

Offline nhmllr

Senior Member


Medals: 1
Projects: 3


slow and steady...


« Reply #2 - Posted 2012-07-20 03:52:14 »

I probably can't answer this, but I can ask a few leading questions that might get you closer to your answer.

1) What are you using to do your graphics? (Java2D, LWJGL, JOGL, Slick2D, LibGDX, etc.)
2) Are you asking, specifically, about rotating the tile image for a single tile (Meaning using the unrotated image for other tiles)?

Good point.
I'm using the standard LWJGL/Slick Util set up
And I mean rotating a single tile, not the rest
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline davedes
« Reply #3 - Posted 2012-07-20 04:08:45 »

One way to do this would be to change the order you lay out your texcoords when rendering your sprite. Another simple solution if you are using fixed-function would be to do the following:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
float angle = 90;
//setup transform
GL11.glTranslatef(x, y, 0);
GL11.glRotatef(angleDegrees, 0f, 0f, 1f);

.. draw sprite at (0, 0)..
   glBegin etc....

//reset transform
GL11.glRotatef(-angleDegrees, 0f, 0f, 1f);
GL11.glTranslatef(-x, -y, 0);

Offline nhmllr

Senior Member


Medals: 1
Projects: 3


slow and steady...


« Reply #4 - Posted 2012-07-20 04:33:01 »

Oh.. That seems to be exactly what I was looking for. Thank you!
Offline matheus23

JGO Kernel


Medals: 108
Projects: 3


You think about my Avatar right now!


« Reply #5 - Posted 2012-07-20 11:49:39 »

Sorry I have to put my nose inside a topic again... But here is how you usually should do it:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
float angle = 90;
//save current transform and start another one
GL11.glPopMatrix();
//setup transform
GL11.glTranslatef(x, y, 0);
GL11.glRotatef(angleDegrees, 0f, 0f, 1f);

.. draw sprite at (0, 0)..
   glBegin etc....

//reset transform
GL11.glPopMatrix();

See my:
    My development Blog:     | Or look at my RPG | Or simply my coding
http://matheusdev.tumblr.comRuins of Revenge  |      On Github
Offline nhmllr

Senior Member


Medals: 1
Projects: 3


slow and steady...


« Reply #6 - Posted 2012-07-20 14:25:22 »

Is there a performance advantage to doing that?
(And don't worry about re answering the question. Shows you care!)
Offline DrZoidberg

Senior Member


Medals: 15



« Reply #7 - Posted 2012-07-20 15:48:00 »

glPushMatrix saves the current state of the opengl matrix and glPopMatrix restores the state. So to prevent your rotation from affecting the rest of the opengl code you should put a call to glPushMatrix before your rotation and a call to glPopMatrix after the rotation.
Offline matheus23

JGO Kernel


Medals: 108
Projects: 3


You think about my Avatar right now!


« Reply #8 - Posted 2012-07-20 18:21:48 »

Is there a performance advantage to doing that?
Yup. I think so. Because rotating the matrix needs to do some sin() and cos() calls, which could take some time. Where glPushMatrix() and glPopMatrix() only have to do with memory allocation and things like that Smiley

See my:
    My development Blog:     | Or look at my RPG | Or simply my coding
http://matheusdev.tumblr.comRuins of Revenge  |      On Github
Offline StonePickaxes

JGO Coder


Medals: 4
Projects: 2


Nathan Kramber


« Reply #9 - Posted 2012-07-20 23:53:49 »

Sorry I have to put my nose inside a topic again... But here is how you usually should do it:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
float angle = 90;
//save current transform and start another one
GL11.glPopMatrix();
//setup transform
GL11.glTranslatef(x, y, 0);
GL11.glRotatef(angleDegrees, 0f, 0f, 1f);

.. draw sprite at (0, 0)..
   glBegin etc....

//reset transform
GL11.glPopMatrix();


Why did you do glPopMatrix twice and no glPushMatrix at all?

 | Nathan

Check out my website!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline UprightPath
« Reply #10 - Posted 2012-07-20 23:59:46 »

I would guess that it was a typo, rather than a purposeful double-pop. Given what he said in his other post, it sounded like he intended it to be:
1  
2  
3  
GL11.glPushMatrix();
//... Other stuff
GL11.glPopMatrix();

Offline matheus23

JGO Kernel


Medals: 108
Projects: 3


You think about my Avatar right now!


« Reply #11 - Posted 2012-07-21 09:05:58 »

I would guess that it was a typo, rather than a purposeful double-pop. Given what he said in his other post, it sounded like he intended it to be:
1  
2  
3  
GL11.glPushMatrix();
//... Other stuff
GL11.glPopMatrix();

Yes. Sorry for that typo Smiley

See my:
    My development Blog:     | Or look at my RPG | Or simply my coding
http://matheusdev.tumblr.comRuins of Revenge  |      On Github
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Pippogeek (39 views)
2014-09-24 16:13:29

Pippogeek (30 views)
2014-09-24 16:12:22

Pippogeek (20 views)
2014-09-24 16:12:06

Grunnt (45 views)
2014-09-23 14:38:19

radar3301 (28 views)
2014-09-21 23:33:17

BurntPizza (63 views)
2014-09-21 02:42:18

BurntPizza (33 views)
2014-09-21 01:30:30

moogie (41 views)
2014-09-21 00:26:15

UprightPath (50 views)
2014-09-20 20:14:06

BurntPizza (54 views)
2014-09-19 03:14:18
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
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
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!