RSS

XNA Game Studio – Create First Project

13 Aug

Сайн байна уу Залуусаа? XNA болон .NET – ийг суулган бэлдсэн байх аа гэж найдаж байна.
За нөгөө яриад байсан хуучин зураг арай л шаардлага хангадаггүй ээ, муу байна. Тийм болхоор шинээр марионы анимашин зургийг хийхээр болсон. Гэхдээ өнөөдөртөө хуучин зурагаа ашиглачихая. ОК.

Эхлээд хуучин аа эргэн дурсая. Маш муу болсон байна лээ.
/Delphi 5.0 – КТМС 3р курс, 2006он/

хэхэ хэдүүлээ арай дээрийг хийнэ гэж бодож байна. Гэхдээ хамгийн гол нь XNA – гаа ойлгох, хэрэглэж сурах шүү дээ. За тэгээд шинэ прожектоо нээнэ…

За тэгээд шууд практик хийж байгаа болхоор өөрөө дэлгэрүүлж унших болон асуухыг бодоорой. Би хувьдаа жаахан буруу зуршилтай чадахгүй байж ном уншдаггүй шууд л хийгээд эхлэнэ тэгээд номны жишээ кодны тайлбар төдийг л уншдаг талтай😛
Solution Explorer дээр байрлах үүссэн ElvishFistGame прожектын Content хэсэгт хулганы солгой товчийг ашиглан MyResource хавтасыг үүсгэн зураг дээрх Add-Existing Item сонголтыг хийн зургийн файлыг оруулж бэлдэнэ.

C# – ын нэг онцлогийг хэлхэд нээсэн прожект бүрт Program гэсэн класс байх ба үүнээс эхлэн ажилладаг. Visual Basic өөр байдаг …

За тэгээд XNA дээрээ зурахдаа Sprite ашиглая …
Цэгцтэй байлгах үүднээс Sprite нэртэй класс үүсгэе. классын давуу талыг мэдэх байх гэж бодож байна …

Код:

using System;
using System.Collections.Generic;
using System.Text;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace ElvishFirstGame
{
class Sprite
{
//Sprite - ийн байршил.
public Vector2 Position = new Vector2(0,0);

//sprite - ийг зурахдаа Texture объектыг ашиглана.
private Texture2D mSpriteTexture;

public void LoadContent(ContentManager theContentManager, string theAssetName)
{
mSpriteTexture = theContentManager.Load(theAssetName);
}

//sprite - ийг дэлгэцэнд зурна.
public void Draw(SpriteBatch theSpriteBatch)
{
theSpriteBatch.Draw(mSpriteTexture, Position, Color.White);
}

}
}

дээрх кодыг шинээр Sprite класс – д бичнэ.
Код:

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace ElvishFirstGame
{
///
/// This is the main type for your game
///
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

Sprite mSprite;

public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}

///
/// Allows the game to perform any initialization it needs to before starting to run.
/// This is where it can query for any required services and load any non-graphic
/// related content. Calling base.Initialize will enumerate through any components
/// and initialize them as well.
///
protected override void Initialize()
{
// TODO: Add your initialization logic here
mSprite = new Sprite();
base.Initialize();
}

///
/// LoadContent will be called once per game and is the place to load
/// all of your content.
///
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);

// TODO: use this.Content to load your game content here

mSprite.LoadContent(this.Content, "MyResource\\RightMario");
mSprite.Position = new Vector2(125, 245);
}

///
/// UnloadContent will be called once per game and is the place to unload
/// all content.
///
protected override void UnloadContent()
{
// TODO: Unload any non ContentManager content here
}

///
/// Allows the game to run logic such as updating the world,
/// checking for collisions, gathering input, and playing audio.
///
/// Provides a snapshot of timing values.
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();

// TODO: Add your update logic here

base.Update(gameTime);

}

///
/// This is called when the game should draw itself.
///
/// Provides a snapshot of timing values.
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
spriteBatch.Begin();
mSprite.Draw(this.spriteBatch);
spriteBatch.End();

base.Draw(gameTime);
}
}
}

Дээрх кодыг хуучин байсан Game1 класс – д бичнэ.
Ингээд үр дүнд ямар ч байсан Sprite үүслээ. Дараа нэг тавихдаа яаж Animation хийхийг нь бичье.
Ямар ч байсан энэ хар өнгийг нь уусгаад алга болгочих ба Sprite дээрээ Frame – ны хэмжээг зааж өгөөд Frame хувааснаар л бараг хөдөлчих байх гэж бодож байна …

Жишээ зураг: /удахгүй шинэ зураг бэлдье…/

Source Code – Download

 
3 Comments

Posted by on August 13, 2009 in .NET Visual studio, Learner, My, XNA Game Studio

 

3 responses to “XNA Game Studio – Create First Project

  1. Селмонал

    January 11, 2011 at 9:27 pm

    ene hicheelee urgeljluuleeleed baigaarai mash sonirholtoi baina . Mongold eniig meddeg hun tsoon yum bol odoo ta undsiig ni tavichuul ireeduid mongol game aar duurchih yum bishuu! hicheegeerei🙂

     
  2. b4tbayar

    May 24, 2010 at 9:53 pm

    Mario-g chine tatah gsn link huuchirchjee bi bas saya neg pokeriin togloom hiisen Diplom gj tgj bgaad duusanguuttaa end sonirhuulj boloh l um .
    Gehdee mgl-d XNA meddeg hun mongold denduu tsoono do

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: