Rabu, 05 Januari 2011

Hello world (part 2)

Ok, kita lanjutkan latihannya..

Untuk bisa menampilkan text dilayar, kita harus menambahkan content font ke dalam project kita.
Langkahnya adalah
  1. Klik kanan pada Hello WorldContent (Content) pada Solution Explorer
  2. Pilih Add --> New Item
  3. Pilih Sprite Font dan beri nama 'myFont.spritefont'
  4. Klik Add
 Tunggu bentar dan viola..coding dengan format xml akan ditampilkan di project kita. Tapi jangan pusing dulu liatnya. Kalo kita baca dengan seksama, mudah dimengerti koq. Kita bisa atur nama font, size, style, dll. Tinggal edit aja sesuka hati :)

Next, kembali ke Game1.cs, tambahkan object SpriteFont. <-- untuk menghandle Font
Tambahkan coding berikut sesudah baris  SpriteBatch spriteBatch;
SpriteFont font;
Berikutnya, load font kita.
Tambahkan coding berikut dalam prosedur LoadContent, sesudah baris  // TODO: use...
font = Content.Load<SpriteFont>("myFont");
Langkah terakhir, gambar content kita ke layar..
Tambahkan coding berikut dalam prosedur Draw, sebelum baris base.Draw(gameTime);
spriteBatch.Begin();
spriteBatch.DrawString(font, "Hello World", new Vector2(20, 45), Color.White);
spriteBatch.End();
Done!
Disini kita menggunakan fungsi DrawString untuk menggambar/mencetak tulisan kita dilayar, dengan parameter masukan font, string, lokasi, warna.

Coba sekarang pencet F5..jreng jreng jreng...!


Akhirnya, Hello World kita tampil juga dilayar..:)

Btw, mungkin ada yang penasaran, apa sih SpriteBatch? Kenapa kita menggunakan spriteBatch untuk menggambat text? Berikut aku coba copas dari salah satu buku tutorial XNA (Building XNA 2.0 Game)

For 2D development, SpriteBatch is one of the most useful classes in the XNA Framework.
When you draw anything on modern graphics hardware, it is done in 3D. Essentially, SpriteBatch
takes some 2D drawing calls you give it, converts them into optimized, complicated calls that
the 3D-geared hardware likes, and sends them along. For all things 2D, this is a huge time-saver.

Ok, sampai disini latihan pertama kita. Silahkan coba2 sendiri mengubah font, lokasi, warna, dll.
Untuk project latihan berikutnya, rencana kita akan membuat game yang paling sederhana. Pong!
Katanya sih, Pong itu Hello World-nya game development :)

1 komentar:

  1. Source untuk Game1.cs :
    -----

    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;

    namespace Hello_World
    {
    public class Game1 : Microsoft.Xna.Framework.Game
    {
    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;

    SpriteFont font;

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

    protected override void Initialize()
    {
    // TODO: Add your initialization logic here

    base.Initialize();
    }

    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
    font = Content.Load("myFont");
    }

    protected override void UnloadContent()
    {
    // TODO: Unload any non ContentManager content here
    }

    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);
    }

    protected override void Draw(GameTime gameTime)
    {
    GraphicsDevice.Clear(Color.CornflowerBlue);

    // TODO: Add your drawing code here
    spriteBatch.Begin();
    spriteBatch.DrawString(font, "Hello World", new Vector2(20, 45), Color.White);
    spriteBatch.End();

    base.Draw(gameTime);
    }
    }
    }

    BalasHapus