Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (426)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (466)
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  
  Mouseinput and MatrixView (OpenGL 3.2)  (Read 601 times)
0 Members and 1 Guest are viewing this topic.
Offline gndn

Junior Newbie





« Posted 2013-02-10 14:31:50 »

Hello.
I'm trying to implement/add mouse to my test app. My test app is one of the LWJGL OpenGL 3.2 app from wiki page
http://lwjgl.org/wiki/index.php?title=The_Quad_with_Projection,_View_and_Model_matrices

What I did:
- before while loop in the constructor I add this part of code:
1  
2  
Mouse.setCursorPosition(800/2, 600/2);
Mouse.setGrabbed(true);


- in method "logicCycle()" before "// Translate camera" i added this part of code:
1  
2  
3  
4  
5  
6  
if(Mouse.isGrabbed()) {
   horizontalAngle+= mouseSpeed * Mouse.getDX();
   verticalAngle+= mouseSpeed * Mouse.getDY();

   mouse();
}


where
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  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
float horizontalAngle = 3.14f;
float verticalAngle = 3.14f;
private float mouseSpeed = 0.005f;

private Vector3f direction = new Vector3f();
private Vector3f right = new Vector3f();
private Vector3f up = new Vector3f();

public void mouse(){
        direction.set(
                        (float)Math.cos(verticalAngle) * (float)Math.sin(horizontalAngle),
                        (float)Math.sin(verticalAngle),
                        (float)Math.cos(verticalAngle) * (float)Math.cos(horizontalAngle));
       
        right.set(
                        (float)Math.sin(horizontalAngle - PI/2.0f),
                        0,
                        (float)Math.cos(horizontalAngle - PI/2.0f));
        up = cross(right, direction);
       
        viewMatrix.m00 = up.x;
        viewMatrix.m01 = up.y;
        viewMatrix.m02 = up.z;
        viewMatrix.m10 = right.x;
        viewMatrix.m11 = right.y;
        viewMatrix.m12 = right.z;
        viewMatrix.m20 = direction.x;
        viewMatrix.m21 = direction.y;
        viewMatrix.m22 = direction.z;          
}

private Vector3f cross(Vector3f b, Vector3f c){
        Vector3f cross = new Vector3f();
        cross.x = (b.y*c.z) - (b.z*c.y);
        cross.y = (b.z*c.x) - (b.x*c.z);
        cross.z = (b.x*c.y) - (b.y*c.x);
        return cross;
}


Of course mouse working but not correctly, camera is set in strange positions.
Based on this example app (which display only square), when I turn to the right by 90 degrees and I move the mouse to up another 90 degrees square will be on bottom camera but still should be on the left.
Please HELP I start freaking out how to count this matrix. I assume i have bad count in mouse method.
Offline akzyl

Senior Newbie





« Reply #1 - Posted 2013-02-14 09:14:31 »

It seems that the code works fine problem lies in the fact that the camera is turned to the left by 90 degrees.
If the mouse is turned off camera back to the normal.
It seems that you need to set something more but i don't have idea what.
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.

xsi3rr4x (72 views)
2014-04-15 18:08:23

BurntPizza (68 views)
2014-04-15 03:46:01

UprightPath (79 views)
2014-04-14 17:39:50

UprightPath (65 views)
2014-04-14 17:35:47

Porlus (80 views)
2014-04-14 15:48:38

tom_mai78101 (104 views)
2014-04-10 04:04:31

BurntPizza (164 views)
2014-04-08 23:06:04

tom_mai78101 (260 views)
2014-04-05 13:34:39

trollwarrior1 (210 views)
2014-04-04 12:06:45

CJLetsGame (220 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
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!