Archive for the ‘C#’ Category
XNA – TriangleStrip

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.

C# Preprocessor

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
- Preprocessor directives must be on separate line
- Must not terminate with semicolon compared to normal C# statements
- Starts with # character
- End of line comments are not allowed
- Delimited comments are not allowed

XNA – Quaternion

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
), although it’s very hard to understand mathematically (it makes my head blown away) a quaternion is VERY very easy to use.

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.
XNA – Camera Rotation

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.

XNA – Using Effect

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 :

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();
XNA – Set Up Camera

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.

XNA – Load 3D Model
XNA – Draw Text

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.

XNA – Displaying Cursor

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 =]

Oracle Database and C# : SQL Function

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
}












