🎮💥 RPG Oyunu: - Epik Bir Maceraya Hazır mısın? 💥🎮

Sir ggdS*

Yeni üye
30 May 2023
23
20
Giriş
Bu makalede, C++ programlama dilini kullanarak geliştirilen bir RPG (Pretending Game) oyununun kodunu inceleyeceğiz. Oyun, "Character" (Karakter) ve "Adversary" (Düşman) sınıflarını içerir ve temel oyun mekaniklerini simüle eder. Oyuncu, karakterini kontrol ederek düşmanlarla savaşır ve hayatta kalmaya çalışır. Kod, basit bir konsol arayüzüyle çalışır ve kullanıcıdan giriş alır.

Oyunun Başlangıcı ve Ayarlar Menüsü
Oyuna başlamak için kullanıcıya seçenekler sunulur. Kullanıcı, 1'e basarak oyunu başlatabilir, 2'ye basarak ayarlar menüsüne erişebilir veya 3'e basarak oyundan çıkabilir. Ayarlar menüsü henüz tamamlanmamıştır, bu nedenle şu anda oyun başlatma seçeneğini ele alacağız.

Oyun Başlatma ve Oyuncu Karakteri
Oyun başladığında, kullanıcıdan bir karakter adı girmesi istenir. Bu promotion, "Character" sınıfı kullanılarak yeni bir karakter nesnesi oluşturulur. Oyuncunun karakteri, başlangıçta 100 sağlık puanına ve 10 güç puanına sahiptir. Karakterin bu istatistikleri, oyun ilerledikçe değişebilir.

Düşmanlar ve Savaş Mekaniği
Oyun, "Adversary" sınıfından oluşturulan düşmanları içerir. Başlangıçta, oyunda üç farklı düşman vardır: "Troll", "Savage" ve "Ejderha". Her bir düşman, belirli bir sağlık puanına ve güç puanına sahiptir.

Oyuncu karakteri ve düşmanlar arasındaki savaş, "assault" (saldırı) fonksiyonları kullanılarak gerçekleştirilir. Oyuncu, "1" seçeneğiyle düşmana saldırabilir. Saldırı işlemi, karakterin güç puanıyla düşmana hasar vermesini sağlar. Düşman da oyuncuya saldırır ve aynı mekanik uygulanır. Savaş sırasında karakterlerin sağlık puanları düşer ve eğer bir karakterin sağlık puanı 0'ın altına düşerse, o karakter ölmüş olur.

Oyuncunun hedefi, tüm düşmanları yenmek ve oyunu kazanmaktır. Oyunda ilerledikçe düşmanlar güçlenir ve karakterin sağlık ve güç puanları değişebilir. Oyuncunun karakteri öldüğünde veya tüm düşmanları yendiğinde oyun sona erer.

Kod Incelemesi
İncelememize başlamadan önce, kodu daha iyi anlamanıza yardımcı olması için bazı emoticon sembollerini kullanacağız. Işte kullanacağımız emoticon sembollerinin anlamları:

🎮: Oyun başlıyor!
🧙‍: Karakterinizi temsil eder.
👹: Düşmanı temsil eder.
⚔️: Saldırı işlemini temsil eder.
❤️: Sağlık puanını temsil eder.
🗡️: Güç puanını temsil eder.
😵: Ölümü temsil eder.
💔: Hasar almayı temsil eder.
🎉: Kazanmayı temsil eder.
💀: Kaybetmeyi temsil eder.
🚪: Oyundan çıkmayı temsil eder.
⚙️: Ayarları değiştirmeyi temsil eder.

Makalenin devamında kod satırlarını ve fonksiyonları açıklayarak ilerleyeceğiz. Bu şekilde, oyunun nasıl çalıştığını ve karakter ile düşmanlar arasındaki etkileşimleri daha iyi anlayabileceksiniz.

Sonuç ve Kaynaklar
Bu makalede, C++ programlama dilini kullanarak bir RPG oyununun kodunu inceledik. "Character" ve "Adversary" sınıflarıyla birlikte, basit bir savaş mekaniği simüle eden bir oyun geliştirdik. Oyun, kullanıcıdan giriş alır, karakterin sağlık ve güç istatistiklerini görüntüler, düşmanlarla savaşır ve oyunun sonunu belirler. Kodu daha fazla geliştirerek yeni özellikler ekleyebilir ve oyun deneyimini zenginleştirebilirsiniz.

Bu makale, RPG oyunlarına ilgi duyanlar için temel bir başlangıç noktası olabilir. Ayrıca, C++ programlama dilinde sınıflar, vektörler ve basit savaş mekaniklerinin nasıl kullanılabileceği konusunda da bir örnek sunar.

Kaynaklar:

C++ programlama dili
Geliştirilen kod
RPG oyun tasarımı konularında ilgili kaynaklar ve dokümantasyonlar
Örneğin Benim Yazdığım ve Bence Gayet Güzel Olan Örnek Kod (Metinlerle Ne Kadar Yapılırsa :D)
C++:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>

using namespace std;

// Karakter sınıfı
class Character
{
private:
    string name;
    int health;
    int power;

public:
    Character(string n, int h, int p) : name(n), health(h), power(p) {}

    void display_stats()
    {
        cout << "🧙‍ İsim: " << name << endl;
        cout << "❤️ Sağlık: " << health << endl;
        cout << "🗡️ Güç: " << power << endl;
    }

    void attack(Character &enemy)
    {
        int damage = power;
        enemy.take_damage(damage);
        cout << "⚔️ " << name << " düşmana " << damage << " hasar verdi!" << endl;
    }

    void take_damage(int damage)
    {
        health -= damage;
        if (health <= 0)
        {
            cout << "😵 " << name << " öldü!" << endl;
        }
        else
        {
            cout << "💔 " << name << " " << damage << " hasar aldı! Sağlık: " << health << endl;
        }
    }
};

// Düşman sınıfı
class Enemy
{
private:
    string name;
    int health;
    int power;

public:
    Enemy(string n, int h, int p) : name(n), health(h), power(p) {}

    void display_stats()
    {
        cout << "👹 Düşman: " << name << endl;
        cout << "❤️ Sağlık: " << health << endl;
        cout << "🗡️ Güç: " << power << endl;
    }

    void attack(Character &player)
    {
        int damage = power;
        player.take_damage(damage);
        cout << "⚔️ " << name << " karaktere " << damage << " hasar verdi!" << endl;
    }

    void take_damage(int damage)
    {
        health -= damage;
        if (health <= 0)
        {
            cout << "🎉 " << name << " yenildi!" << endl;
        }
        else
        {
            cout << "💔 " << name << " " << damage << " hasar aldı! Sağlık: " << health << endl;
        }
    }
};

// Oyun sınıfı
class Game
{
private:
    Character player;
    vector<Enemy> enemies;
    int current_enemy;

public:
    Game(string player_name) : player(player_name, 100, 10)
    {
        // Düşmanları oluştur
        enemies.push_back(Enemy("Goblin", 50, 5));
        enemies.push_back(Enemy("Troll", 80, 8));
        enemies.push_back(Enemy("Ejderha", 200, 15));
        current_enemy = 0;
    }

    void start()
    {
        cout << "🎮 Hoş geldiniz! Bilinmeyen Diyarlar'a hoş geldiniz." << endl;
        cout << "🧙‍ Sen, cesur bir savaşçı olan " << player.name << ", bu diyarlarda zorlu maceralara atılacaksın." << endl;
        cout << "🗺️ Yolculuğuna başlamak için hazır mısın?" << endl;
        cout << "1) Evet, maceraya başla!" << endl;
        cout << "2) Hayır, daha sonra gelirim." << endl;

        int choice;
        cin >> choice;

        switch (choice)
        {
            case 1:
                play_game();
                break;
            case 2:
                cout << "Görüşmek üzere! İyi günler dilerim." << endl;
                break;
            default:
                cout << "Geçersiz seçim!" << endl;
                break;
        }
    }

    void play_game()
    {
        cout << "🎮 Macera başlıyor!" << endl;

        while (player.health > 0)
        {
            cout << "--------------------------------------" << endl;
            player.display_stats();
            cout << "--------------------------------------" << endl;

            enemies[current_enemy].display_stats();
            cout << "--------------------------------------" << endl;

            cout << "Ne yapmak istersiniz?" << endl;
            cout << "1) Düşmana saldır" << endl;
            cout << "2) Eşya kullan" << endl;
            cout << "3) Çıkış yap" << endl;

            int choice;
            cin >> choice;

            switch (choice)
            {
                case 1:
                    player.attack(enemies[current_enemy]);
                    if (enemies[current_enemy].is_dead())
                    {
                        current_enemy++;
                        if (current_enemy >= enemies.size())
                        {
                            cout << "🎉 Oyunu kazandınız! Tüm düşmanları yendiniz ve zaferle dönüyorsunuz." << endl;
                            return;
                        }
                        else
                        {
                            cout << "🏆 Bir sonraki düşmana geçtiniz. Yeni düşman: " << enemies[current_enemy].name << endl;
                        }
                    }
                    break;
                case 2:
                    // Eşya kullanma işlemleri
                    break;
                case 3:
                    cout << "Oyundan çıkılıyor..." << endl;
                    return;
                default:
                    cout << "Geçersiz seçim!" << endl;
                    break;
            }

            // Düşmanın saldırması
            enemies[current_enemy].attack(player);
            if (player.is_dead())
            {
                cout << "💀 Oyunu kaybettiniz! Hayatınızı kaybederek bu maceraya son verdiniz." << endl;
                return;
            }
        }
    }

    void settings_menu()
    {
        // Ayarları değiştirme işlemleri
    }
};

int main()
{
    cout << "🧙‍♂️ Bilinmeyen Diyarlar'a Hoş Geldiniz!" << endl;
    cout << "📜 Bu diyarlarda cesur savaşçılar büyük maceralara atılıyor." << endl;
    cout << "📜 Sen de bu maceralara katılmak ve zaferlerle dönmek istersen adını söyle!" << endl;

    string player_name;
    cout << "Adını gir: ";
    cin >> player_name;

    Game game(player_name);
    game.start();

    cout << "Eski diyarlardan çıkan bir efsane vardı. Eskiden onun sevdiği kızı alan Phatihi öldürerek sevdiği kızı ele geçirmeye çalışıyordu. Ancak sonunda bu ikisi dost oldu. Ondan sonra onun sevdiği kızı alan Elman, bizim karakteri öldürdü ve hikaye burada son buldu." << endl;

    return 0;
}
 

Sir ggdS*

Yeni üye
30 May 2023
23
20
Farklı karakterler , özel güçler , silahlar , karakter özellikleri (seviye , güç dağılımı ) gibi
Tabii süper Güçler Aklıma Gelmemişti Ben Daha Çok Hikayeye Odaklanmaya Çalıştım Aklıma Gelmemişti 3 Saat Sonra Bu Dediklerini Uygun Bir Kodla Bir Üst Levelini Yapacağım <3
 

ancients123

Uzman üye
9 Nis 2016
1,723
338
Tabii süper Güçler Aklıma Gelmemişti Ben Daha Çok Hikayeye Odaklanmaya Çalıştım Aklıma Gelmemişti 3 Saat Sonra Bu Dediklerini Uygun Bir Kodla Bir Üst Levelini Yapacağım <3
karakterin yürürken nasıl hareket ettiğini de değiştirebilirsen güzel bir görüntü çıkabilir , gölge eklemeyi de unutma :) (özel güç efekti de ayrıca hoş durur)
 

ancients123

Uzman üye
9 Nis 2016
1,723
338
hocam tekrardan teşekkür ederim başka neler ekleyebilirim
Tasarımı yapabilirsin , itemler yapmak istiyorsun item (item yükseltme de eklersin) , görevler yapabilirsin genel olarak bunlar oyunları incele onlarda olan sende olmayan ne var diye bak (olanların aynisi direk koymak yerine geliştirerek koyarsın ) ve oyun online olursa güzel olabilir
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.