DirectX using C#
DirectX using C++
DirectX using Visual Basic

Latest Forum posts

 DVD movies through media streamer
  Posted by: VIKIVannessa
  When: 16/04/2014 at 02:25:09

 DVD movies to play on Galaxy Tab 3 10.1
  Posted by: VIKIVannessa
  When: 16/04/2014 at 02:20:51

 Blu-ray to Apple ProRes
  Posted by: Applefly
  When: 12/04/2014 at 00:47:46

 HD H.264 MP4 format
  Posted by: Applefly
  When: 12/04/2014 at 00:43:23

 DVD collection to computer
  Posted by: VIKIVannessa
  When: 04/04/2014 at 07:13:33

 DVD movies to play on Galaxy Tab 3 10.1
  Posted by: VIKIVannessa
  When: 04/04/2014 at 07:11:27

 DVD movies to play on Galaxy Tab 3 10.1
  Posted by: VIKIVannessa
  When: 04/04/2014 at 07:11:27

 DVD Ripper to populate
  Posted by: Applefly
  When: 04/04/2014 at 05:01:35

 kids and family watch DVD
  Posted by: Applefly
  When: 04/04/2014 at 04:59:21

 Blu-ray movie for your lovely kids
  Posted by: VIKIVannessa
  When: 02/04/2014 at 05:47:49

 DVD to DNxHD Converter for Mac
  Posted by: VIKIVannessa
  When: 02/04/2014 at 05:46:04

 play HD Videos on Galaxy
  Posted by: Applefly
  When: 01/04/2014 at 03:16:39

 video on iPhone 6
  Posted by: Applefly
  When: 01/04/2014 at 03:15:18

  Posted by: net777
  When: 31/03/2014 at 03:34:55

 Play MVI/MKV/AVI on Galaxy NotePro 12.2
  Posted by: VIKIVannessa
  When: 31/03/2014 at 01:30:21

 Create family videos with iMovie on Mac
  Posted by: VIKIVannessa
  When: 31/03/2014 at 01:29:25

 WMV format from DVD
  Posted by: Applefly
  When: 28/03/2014 at 02:55:09

  Posted by: Applefly
  When: 28/03/2014 at 02:53:35

 Put all kinds videos to Kurio 7S
  Posted by: VIKIVannessa
  When: 27/03/2014 at 01:20:22

 play movie & video on Nexus 6
  Posted by: VIKIVannessa
  When: 27/03/2014 at 01:19:47

Topic: Crosshair and First Person mode

Goto parent category
Create a new user account

   Crosshair and First Person mode
 Poster : rohitmitra
 Posts: 5
 Country : India
 City: Kolkata

Posted by rohitmitra on 08/05/2011 at 00:21:02
Hi, I was trying to convert the game into an FPS style flight sim. The code I used changed the UpdateCamera function as

if (FPS)
                camPos = new Vector3(0, 0, 0);
                camPos = new Vector3(0, 0.1f, 0.6f);
            camPos = Vector3.Transform(camPos, Matrix.CreateFromQuaternion(xWingRotation));
            camPos += xWingPosition;
            camUp = new Vector3(0, 1, 0);
            camUp = Vector3.Transform(camUp, Matrix.CreateFromQuaternion(xWingRotation));
            if (FPS)
                viewMatrix = Matrix.CreateLookAt(camPos, xWingPosition + Vector3.Transform(new Vector3(0,0,-1), Matrix.CreateFromQuaternion(xWingRotation)), camUp);
                viewMatrix = Matrix.CreateLookAt(camPos, xWingPosition, camUp);

I had a check in the process keyboard function whereby if you press the button F, then the game would toggle between First Person and 3rd person


bool FPS=false;

processKeyboard function:

if (keys.IsKeyDown(Keys.F))
    FPS = !FPS;

Now this is working fine.
However I wanted to add a crosshair to the first person mode.
I kept a variable
to check whether the plane was rotating or not. If it wasn't I would show a simple crosshair joined at the center, while if it was moving then I would show a crosshair that was slightly open at the center. I have both the pictures as crosshair.jpg and crosshairmov.jpg.

Now I used the following code:


Texture2D crosshairTexture;
Texture2D crosshairmovTexture;

LoadContent function:

            crosshairTexture = Content.Load<Texture2D>("crosshair");
            crosshairmovTexture = Content.Load<Texture2D>("crosshairmov");

Draw function:


And then finally I created the DrawCrosshair function as

            if (FPS)
                VertexPositionTexture[] crosshairVertices = new VertexPositionTexture[6];
                Vector3 crossPos = xWingPosition + Vector3.Transform(new Vector3(0, 0, -1), Matrix.CreateFromQuaternion(xWingRotation));

                crosshairVertices[0] = new VertexPositionTexture(crossPos, new Vector2(1, 1));
                crosshairVertices[1] = new VertexPositionTexture(crossPos, new Vector2(0, 0));
                crosshairVertices[2] = new VertexPositionTexture(crossPos, new Vector2(1, 0));

                crosshairVertices[3] = new VertexPositionTexture(crossPos, new Vector2(1, 1));
                crosshairVertices[4] = new VertexPositionTexture(crossPos, new Vector2(0, 1));
                crosshairVertices[5] = new VertexPositionTexture(crossPos, new Vector2(0, 0));

                effect.CurrentTechnique = effect.Techniques["TexturedNoShading"];
                if (isMov)

                foreach (EffectPass Pass in effect.CurrentTechnique.Passes)
                    device.DrawUserPrimitives(PrimitiveType.TriangleList, crosshairVertices, 0, 2, VertexPositionTexture.VertexDeclaration);

However, my crosshair isn't displaying. Any help here would be appreciated
 Poster : Archenon
 Posts: 428
 Country : Romania
 City: Oradea

Posted by Archenon on 11/05/2011 at 04:59:14
Drawcrosshair function in line


should't contain a translation matrix to the chrosshairs position?

Post a new reply

If you appreciate the amount of time I spend creating and updating
these pages, feel free to donate -- any amount is welcome !
- Website design & DirectX code : Riemer Grootjans -
©2006 Riemer Grootjans

XNA 2.0 Recipes Book (8)
XNA 3.0 Recipes Book (8)
Extra Reading (3)
Matrices: geometrical
Matrix Mathematics
Homogenous matrices
Community Projects (1)
Tutorials (160)
XNA 4.0 using C# (89)
DirectX using C# (54)
Series 1:Terrain (14)
Opening a window
Linking to the Device
Drawing a triangle
Rotation - Translation
Terrain creation
Terrain from file
Importing bmp files
Colored vertices
DirectX Light basics
Mesh creation
Mesh lighting
Series 2: Flightsim (19)
Series 3: HLSL (19)
Short Tuts (2)
Resizing problem
Checking Device caps
DirectX using C++ (15)
DirectX using VB (2)