Archive

Posts Tagged ‘Programming’

XNA – TriangleStrip

August 9, 2009 azer89 Leave a comment

xna_logo

The idea behind TriangleStrips is that you should define each vertex only once. So for the first triangle, you have to define vertices 0,1 and 2. Now, for the next triangle, you only have to add vertex 3, XNA will always use the last 3 vertices to draw the triangle, so for the second triangle it uses vertices 1, 2 and 3, which is correct.

Untitled

Read more…

C# Preprocessor

August 1, 2009 azer89 Leave a comment

These commands never translated and included into the executable file but these are very useful for compilation process. Using preprocessors, we can stop the compiler from compiling certain potion of code. This is very helpful in the situation where you are planning to release two versions of software one basic version which has less features and one advance version which has more features. The preprocessor directives are all starts with the # symbol in the beginning of them.

C# actually has almost all the standard preprocessor directives – it just happens to be that the functionality of some of them . The one notable directive that is missing is #include – and it makes sense that C# wouldn’t have it, because C# gets the same sort of functionality from the using statements (although there is the fact that #include refers to files and using refers to assemblies – so they are definitely not equivalent).

Rules

  1. Preprocessor directives must be on separate line
  2. Must not terminate with semicolon compared to normal C# statements
  3. Starts with # character
  4. End of line comments are not allowed
  5. Delimited comments are not allowed

blog

Read more…

Categories: C#, Programming Tags: , ,

XNA – Quaternion

July 24, 2009 azer89 Leave a comment

xna_logo

The XNA Framework provides the Quaternion structure to represent and calculate the efficient rotation about a vector around a specified angle. Quaternions represent a rotation. Typically, they are used for smooth interpolation between two angles, and for avoiding the gimbal lock problem that can occur with euler angles.

A Quaternion is much like a Matrix, but can only store a rotation. Don’t let the name of this thing scare you away (for first time i hear it, i thinks it is a weird planet’s name :D ), although it’s very hard to understand mathematically (it makes my head blown away) a quaternion is VERY very easy to use.

Untitled

In this tutorial, we will create a simple example program using quaternion, we will draw a spacecraft and it would be flying through 3D world.

Read more…

XNA – Camera Rotation

July 19, 2009 azer89 Leave a comment

xna_logo

In this article, we will create a simple XNA program that load a 3D model, and rotating the camera around the model. In this example,  showing how to moving your camera position around the model. Camera target and camera up vector will remain same, what we need is to change camera position vector.

Untitled

Read more…

XNA – Using Effect

July 19, 2009 azer89 Leave a comment

xna_logo

The XNA Content Pipeline is pretty good. It implifies the process for importing and loading models, textures, and other content. Unfortunately, it is optimized for loading data, not code. Effect files are essentially code, so an alternative approach could provide additional benefits.

Like the XNA Content Pipeline, Effect Generator compiles your .fx files at build time, reducing game load times. Additionally, Effect Generator further simplifies run-time loading and effect parameterization.

Place your effect file in Content folder :

Untitled


We start by declaring an Effect:

Effect effect;


We’ll use the Content pipeline to load an instance of the Effect class:

effect = Content.Load<effect>("effects");


And render using the effect:

effect.CurrentTechnique = effect.Techniques["Pretransformed"];
effect.Begin();
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
    pass.Begin();

    pass.End();
}
effect.End();

Read more…

XNA – Set Up Camera

July 18, 2009 azer89 1 comment

xna_logo

Before we render 3D world, we need set up camera. We do this by specifying the View and Projection matrices. Before rendering, both matrices are needed so the graphics card can correctly transform 3D world to 2D screen in our monitor.

Setting up camera in 3D world comes down to specifying two matrices. We can save the camera position and direction in a single matrix, which is called the View matrix. To create the View matrix, XNA needs to know the Position, Targer, and Up vector of camera. We can also save the view frustum, which is the part of the 3D world that is actually seen by the camera, in another matrix, which is called the Projection matrix.

Untitled

Read more…

Categories: C#, Programming, XNA Tags: , ,

XNA – Load 3D Model

July 11, 2009 azer89 Leave a comment

xna_logo

here’s the screenshot (click image for larger view):

one two

three four

five six

Read more…

Categories: C#, Programming, XNA Tags: , , ,

XNA – Draw Text

July 11, 2009 azer89 1 comment

xna_logo

Another simple example, how to draw a text in XNA =D
Demonstrates how to import a SpriteFont into a project and draw text using DrawString.

text

Read more…

Categories: C#, Programming, XNA Tags: , ,

XNA – Displaying Cursor

July 8, 2009 azer89 Leave a comment

xna_logo

XNA doesn’t automatically show a mouse pointer within the game window. First, you need a position for your mouse. You’ll also need a 2d texture to display as your mouse pointer

It’s very simple, just load a png image, and displaying it using spriteBatch.Draw();

Of course, we always keep track the mouse position =]

images

Read more…

Categories: C#, Programming, XNA Tags: , ,

Socket Programming ?

June 25, 2009 azer89 1 comment

Untitled

Socket adalah sebuah cara untuk berkomunikasi dengan program atau node lain menggunakan file deskriptor. Di UNIX (dimana socket diciptakan) kita sering mendengar slogan: “everything is a file”, jadi untuk berkomunikasi dengan program atau node lain semudah kita membaca dan menulis file deskriptor. Antarmuka socket dan file adalah mirip, jika pada file kita membukanya dengan open() sedangkan pada socket kita manggunakan socket(). Pada file deskriptor yang menjadi tujuan adalah sebuah file, sedangkan pada socket adalah komputer atau node lain. Intinya ketika kita telah terhubung dengan socket(), maka antarmukanya sama saja dengan sebuah file. Sebuah abstraksi perangkat lunak yang digunakan sebagai suatu “terminal” dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi

Read more…