Popular Posts

Pengikut

Diberdayakan oleh Blogger.
RSS

Pages

Animasi Sprite dengan XNA 4.0 pada Windows Phone 7

Hampir semua game pasti menggunakan animasi sprite. Biasanya animasi sprite digunakan untuk menjadikan gambar-gambar pada suatu game bergerak sehingga menimbulkan kesan hidup. Dalam tutorial ini, saya akan memberikan langkah-langkah untuk membuat animasi sprite yang dapat digunakan dalam pembuatan game dengan XNA 4.0 pada Windows Phone 7.
Software-software yang dibutuhkan antara lain:
1. Microsoft Visual Studio 2010
2. Windows Phone Developer Tools
Langkah-langkahnya adalah sebagai berikut:
1. Buka Microsoft Visual Studio 2010, kemudian pada menu bar pilih “File”, lalu pilih “New”, dan pilih “New Project…”.

Pada kolom “Installed Templates” pilih “Visual C#”, lalu pilih “XNA Game Studio 4.0″. Kemudian pada kolom di sebelah kanan “Installed Templates” pilih “Windows Phone Game (4.0)”. Ketikkan nama project pada kolom “Name”, sebagai contoh saya memberikan nama “WP7XNASpriteAnimation”. Setelah itu klik tombol “OK”.
2. Pada “Solution Explorer”, klik kanan pada project “WP7XNASpriteAnimation”, kemudian pilih “Add”, lalu pilih “Class…”.




Ketikkan nama kelas pada kolom “Name”, sebagai contoh saya memberikan nama “SpriteAnimation”. Kemudian klik tombol “Add”.
3. Ubah code di kelas “SpriteAnimation” menjadi seperti ini

01using System;
02using System.Collections.Generic;
03using System.Linq;
04using System.Text;
05using Microsoft.Xna.Framework;
06using Microsoft.Xna.Framework.Graphics;
07 
08namespace WP7XNASpriteAnimation
09{
10    class SpriteAnimation
11    {
12        double currentTime;
13        double interval;
14 
15        int currentFrameNumber;
16        int numberOfFrames;
17 
18        Rectangle frame;
19        Rectangle drawRectangle;
20 
21        Texture2D spriteSet;
22 
23        public SpriteAnimation(Texture2D spriteSet, int spriteWidth, int spriteHeight, double interval, Vector2 position)
24        {
25            currentTime = 0.0;
26            this.interval = interval;
27            currentFrameNumber = 0;
28            numberOfFrames = spriteSet.Width / spriteWidth;
29            frame = new Rectangle(0, 0, spriteWidth, spriteHeight);
30            drawRectangle = new Rectangle((int)position.X, (int)position.Y, spriteWidth, spriteHeight);
31            this.spriteSet = spriteSet;
32        }
33 
34        public void Update(GameTime gameTime)
35        {
36            currentTime += gameTime.ElapsedGameTime.TotalMilliseconds;
37 
38            if (currentTime >= interval)
39            {
40                currentTime = 0.0;
41                currentFrameNumber++;
42                if (currentFrameNumber >= numberOfFrames)
43                {
44                    currentFrameNumber = 0;
45                }
46            }
47 
48            frame.X = currentFrameNumber * frame.Width;
49        }
50 
51        public void Draw(SpriteBatch spriteBatch)
52        {
53            spriteBatch.Begin();
54            spriteBatch.Draw(spriteSet, drawRectangle, frame, Color.White);
55            spriteBatch.End();

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar