Secret Forest Hoş Geldiniz
 
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
Share Thread:
ActionScript 3.0 ve FlashPunk ile Oyun Yapma Bölüm 1
#1
Soru 
Merhaba arkadaşlar,
Bugün sizlere ActionScript 3.0 ve FlashPunk ile oyun yapmayı anlatacağım.

Neden FlashPunk?
FlashPunk, yapısı itibarıyla hem basit hem de oldukça esnek bir motor.
  • Tile tabanlı oyunlar için ideal
  • Entity/World mantığı anlaşılır
  • Update/Render döngüsü net
  • Karmaşık şeylere gerek yok, hızlıca oynanabilir bir şey ortaya çıkıyor
Unity, Godot gibi devlere göre daha sınırlı ama küçük 2D projeler için “hemen kodlayayım” rahatlığını çok iyi veriyor.

Başlangıç: Proje Yapısının Kurulumu
Önce AS3 projesi oluştururken dikkat etmeniz gereken birkaç nokta var:
  1. Yeni bir AS3 Project açın (FlashDevelop, Animate, Flash Builder fark etmez).
  2. FlashPunk kütüphanesini src yoluna ekleyin.
  3. Ana sınıfınızın Engine sınıfından türemesi gerekiyor. Örneğin:
Kod:
package 
{
    import net.flashpunk.Engine;
    import net.flashpunk.FP;

    public class Main extends Engine
    {
        public function Main()
        {
            super(640, 360, 60, false);
        }
       
        override public function init():void
        {
            FP.world = new GameWorld();
        }
    }
}

Burada super(640, 360, 60) kısmı oyunun çözünürlüğü ve FPS değerini belirliyor.

World ve Entity Mantığı
FlashPunk’ın temelinde iki yapı var:
World = Sahneleriniz / ekranlarınız
Entity = Oyundaki her şey (karakter, düşman, obje, arka plan vs.)

İlk dünyayı şöyle tanımlayabilirsiniz:
Kod:
package 
{
    import net.flashpunk.World;

    public class GameWorld extends World
    {
        public function GameWorld()
        {
            add(new Player(100, 100));
        }
    }
}

Basit Bir Player Sınıfı
Bu bölümde sadece temel hareket mantığını yazalım. Animasyonları, çarpışmaları sonraki bölümlerde açacağım.
Kod:
package 
{
    import net.flashpunk.Entity;
    import net.flashpunk.graphics.Image;
    import net.flashpunk.utils.Input;
    import net.flashpunk.utils.Key;
    public class Player extends Entity
    {
        [Embed(source = "gfx/player.png")] private const PLAYER_GFX:Class;
        public function Player(x:Number, y:Number)
        {
            super(x, y, new Image(PLAYER_GFX));
        }
        override public function update():void
        {
            if (Input.check(Key.LEFT))  x -= 2;
            if (Input.check(Key.RIGHT)) x += 2;
            if (Input.check(Key.UP))    y -= 2;
            if (Input.check(Key.DOWN))  y += 2;
        }
    }
}

Bu haliyle basit ama çalışan bir karakterimiz var.

Sonraki yazıda görüşmek üzere. Hoşçakalın.
[-] Aşağıdaki 1 kullanıcı, ocaloguzkaan adlı kullanıcının gönderisini beğendi:
  • Yonga
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [YARDIM] Macromediada oyun yapıyorum yardım gerekli Hasanbey05 1 2.148 20-08-2021, Saat: 11:57
Son Yorum: Yonga

Hızlı Menü:


Konuyu Okuyanlar: 3 Ziyaretçi