www.computer-horror.co.cc

Archive for the ‘C#’ Category

XNA – TriangleStrip

without comments

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 the rest of this entry »

Written by azer89

August 9, 2009 at 4:30 pm

Posted in C#, Game Programming, Programming, XNA

Tagged with , ,

C# Preprocessor

without comments

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 the rest of this entry »

Written by azer89

August 1, 2009 at 12:08 am

Posted in C#, Programming

Tagged with , ,

XNA – Quaternion

without comments

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 the rest of this entry »

Written by azer89

July 24, 2009 at 11:27 pm

Posted in C#, Game Programming, Programming, XNA

Tagged with , ,

XNA – Camera Rotation

without comments

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 the rest of this entry »

Written by azer89

July 19, 2009 at 9:34 pm

Posted in C#, Game Programming, Programming, XNA

Tagged with , ,

XNA – Using Effect

without comments

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 the rest of this entry »

Written by azer89

July 19, 2009 at 9:55 am

Posted in C#, Game Programming, Programming, XNA

Tagged with , ,

XNA – Set Up Camera

with one 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 the rest of this entry »

Written by azer89

July 18, 2009 at 11:44 pm

Posted in C#, Programming, XNA

Tagged with , ,

XNA – Load 3D Model

without comments

xna_logo

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

one two

three four

five six

Read the rest of this entry »

Written by azer89

July 11, 2009 at 12:24 pm

Posted in C#, Programming, XNA

Tagged with , , ,

XNA – Draw Text

with one 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 the rest of this entry »

Written by azer89

July 11, 2009 at 12:43 am

Posted in C#, Programming, XNA

Tagged with , ,

XNA – Displaying Cursor

without comments

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 the rest of this entry »

Written by azer89

July 8, 2009 at 1:13 pm

Posted in C#, Programming, XNA

Tagged with , ,

Oracle Database and C# : SQL Function

without comments

Function for Query
ex : SELECT

        public DataSet ExecuteQuery(string sql)
        {
            DataSet dsResult = new DataSet();

            try
            {
                OracleDataAdapter daAdapter = new OracleDataAdapter(sql, conn);
                daAdapter.Fill(dsResult);
            }
            catch (OracleException oex)
            {
                if (oex.Number == 2292)
                    MessageBox.Show("crash from a data from other table");
                else
                    MessageBox.Show(oex.Message);

                CloseConnection();
                OpenConnection();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

                CloseConnection();
                OpenConnection();
            }

            return dsResult;
        }

Function for DML
ex : UPDATE, DELETE


        public int ExecuteSQL(string sql)
        {
            int isAffectedRows = 0;

            try
            {
                OracleTransaction oTransaction = conn.BeginTransaction();
                OracleCommand oCmd = conn.CreateCommand();
                oCmd.CommandText = sql;
                isAffectedRows = oCmd.ExecuteNonQuery();
                oTransaction.Commit();
            }
            catch (OracleException oex)
            {
                if (oex.Number == 2292)
                {
                    MessageBox.Show("crash from a data from other table");
                }
                else
                {
                    MessageBox.Show(oex.Message);
                }

                CloseConnection();
                OpenConnection();

                return 0;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

                CloseConnection();
                OpenConnection();

                return 0;
            }

            return isAffectedRows;  // if success return value not 0
        }

Written by azer89

March 26, 2009 at 12:32 am

Posted in C#, Database, Programming

Tagged with , ,