Secret Forest
ActionScript 3.0 ve FlashPunk ile Oyun Yapma Bölüm 1 - Baskı Önizleme

+- Secret Forest (https://secret-forest.xyz)
+-- Forum: 💻 Teknoloji & Yazılım (https://secret-forest.xyz/forumdisplay.php?fid=23)
+--- Forum: 🛠 Oyun Geliştirme & Programlama (https://secret-forest.xyz/forumdisplay.php?fid=26)
+--- Konu Başlığı: ActionScript 3.0 ve FlashPunk ile Oyun Yapma Bölüm 1 (/showthread.php?tid=233)



ActionScript 3.0 ve FlashPunk ile Oyun Yapma Bölüm 1 - ocaloguzkaan - 07-12-2025

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.