Şimdi Ara

Skorlara göre level up sistemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
19
Cevap
0
Favori
279
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • herkese merhabalar. trivia tarzı oyun geliştiriyorum skor sistemi tamam fakat level up sistemini bi türlü beceremedim. oyunda daikon forge isimli asset'i kullanıyorum. şimdi array olarak belli puanlar yazdım bu puanları geçince level atlayacak. başta if ile denedim ama olmadı. for döngüsü veya switch case ile belki daha iyi olabilir dedim ama bi türlü denkleştiremedim. yardımcı olabilir misiniz? yazdığım kod aşağıdadır:

    using UnityEngine;
    using System;
    using System.Text;

    public class levelSystem : MonoBehaviour
    {
    public dfLabel m_levelup;
    public int m_maximumLevel = 10;
    public int[] m_nextLevelScore = { 0, 300, 700, 2000, 5000, 10000, 20000,
    44000, 56000, 69000, 80000 };
    private showResult m_score;
    private int m_level = 1;
    private const int MinimumLevel = 1;


    void Start()
    {
    m_score = FindObjectOfType<showResult> ();
    }

    void Update()
    {
    m_levelup.Text = m_level.ToString ();
    if(m_score.totalpointscore.Text >= m_nextLevelScore[1].ToString)
    {
    m_level++;
    }
    }

    }


    kod böyle olunca bu hatayı veriyor if statement'ta
    Assets/scripts/levelSystem.cs(24,30): error CS0019: Operator `>=' cannot be applied to operands of type `string' and `string'







  • stringde büyük eşittir kullanamazsın, int olarak yapman lazım
  • quote:

    Orijinalden alıntı: ♛TR

    stringde büyük eşittir kullanamazsın, int olarak yapman lazım



    teşekkürler ben çözdüm o işi fakat ekrana yazdıramıyorum. inspector'da yazıyo ama ekranda yazmıyor
  • quote:

    Orijinalden alıntı: WOLKY DJ


    quote:

    Orijinalden alıntı: ♛TR

    stringde büyük eşittir kullanamazsın, int olarak yapman lazım



    teşekkürler ben çözdüm o işi fakat ekrana yazdıramıyorum. inspector'da yazıyo ama ekranda yazmıyor

    neden ekrana yazdıramıyosun acaba, kodlarını göster bakıyım istersen
  • kod bu. oyun bitince sonuç sahnesine gidicek ve topladığı puanla seviye atlyacak. oyunda DFUI asseti kullanıyorum. inspector'da ve debug.log'da arttırıyor ama oyunda hala 1 yazıyo. test için skoru 1 fln yaptım olmadı. level 2 fln yazmıyo 1'de kalıyo. oyunu başlatmadan önce level değişkenine değer verince yazdırıyo ama diğerinde yazdırmıyo.

      public dfLabel m_levelup;
    private showResult m_score;
    public static int m_level = 1;
    public static int score;
    //private const int MinimumLevel = 1;


    void Start()
    {
    m_score = FindObjectOfType<showResult> ();
    m_score.totalpointscore.Text = score.ToString();
    m_levelup.Text = m_level.ToString();

    switch(score){
    case 300:
    m_level++;
    Debug.Log ("Level 2");
    break;
    case 700:
    m_level++;
    break;
    case 2000:
    m_level++;
    break;
    case 5000:
    m_level++;
    break;
    case 10000:
    m_level++;
    break;
    case 20000:
    m_level++;
    break;
    case 44000:
    m_level++;
    break;
    case 56000:
    m_level++;
    break;
    case 69000:
    m_level++;
    break;
    case 80000:
    m_level++;
    break;
    default:
    Debug.Log("You're Level 1");
    break;
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi Guest-97901DBF5 -- 23 Kasım 2017; 0:55:35 >




  • Leveli anlik goruntulemek istiyorsan Update icine yaz.

    Sen starta yaziyorsun baslangicta kontrol ediyor .

    int puan,lvl;
    Public Text Lvlno;

    if (puan =>1000)
    {
    lvl++
    }

    Lvlno.text=" " + lvl;

    Boyle birseyle cozersin .Yazimda yanlis olabilir.



    < Bu mesaj bu kişi tarafından değiştirildi Baxa -- 23 Kasım 2017; 8:14:11 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: WOLKY DJ

    kod bu. oyun bitince sonuç sahnesine gidicek ve topladığı puanla seviye atlyacak. oyunda DFUI asseti kullanıyorum. inspector'da ve debug.log'da arttırıyor ama oyunda hala 1 yazıyo. test için skoru 1 fln yaptım olmadı. level 2 fln yazmıyo 1'de kalıyo. oyunu başlatmadan önce level değişkenine değer verince yazdırıyo ama diğerinde yazdırmıyo.

      public dfLabel m_levelup;
    private showResult m_score;
    public static int m_level = 1;
    public static int score;
    //private const int MinimumLevel = 1;


    void Start()
    {
    m_score = FindObjectOfType<showResult> ();
    m_score.totalpointscore.Text = score.ToString();
    m_levelup.Text = m_level.ToString();

    switch(score){
    case 300:
    m_level++;
    Debug.Log ("Level 2");
    break;
    case 700:
    m_level++;
    break;
    case 2000:
    m_level++;
    break;
    case 5000:
    m_level++;
    break;
    case 10000:
    m_level++;
    break;
    case 20000:
    m_level++;
    break;
    case 44000:
    m_level++;
    break;
    case 56000:
    m_level++;
    break;
    case 69000:
    m_level++;
    break;
    case 80000:
    m_level++;
    break;
    default:
    Debug.Log("You're Level 1");
    break;
    }
    }


    startta yazdığın için görünmüyor

    ayrıca switch case kullanman bana çok doğru gibi gelmedi, eğer skoru 305 işe işlem yapmıyor bu durumda




  • Baxa kullanıcısına yanıt
    Update içine yazdığımda sürekli arttırıyor ama. Update içine yazdım ben kontrol ettim devamlı arttırıyor. 2 de kalmıyor

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Update de sürekli arttırıyor. 300ü geçti mi 2 yapmıyor arttırmaya devam ediyor. Ayriyeten arttırsa bile ekrana yine yazdırmamıştı denedim update de ben



    < Bu mesaj bu kişi tarafından değiştirildi Guest-97901DBF5 -- 23 Kasım 2017; 15:6:43 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: WOLKY DJ

    Update içine yazdığımda sürekli arttırıyor ama. Update içine yazdım ben kontrol ettim devamlı arttırıyor. 2 de kalmıyor



    Ozaman soyle yapin.



    Start

    Level = 1 ; // Baslangicda 1 lvl baslicak.





    Update

    if (puan >=1000 && lvl = 1) // puan 1000 ve uzerinde ise ve level de 1 ise leveli 2 ye esitle

    {

    Level = 2

    }



    if (puan >= 5000 && lvl =2 ) // puan 5k uzerin ve levelde 2 ise leveli 3 yap

    {

    Level =3

    }

    ve , veya simgesini karistirmis olabilirim siz ++ yaptiginiz icin her sorguda artiriyor.

    Sabah verdigim ornektekindede lvl++ yerine Lvl= 2 seklinde yaparsaniz sorununuz gene cozulur

    Ekranda leveli gormek istiyorsaniz.

    Ui kutuphanesini ekleyin
    Public Text LevelGosterge; // seklinde text i tanimlayin
    Daha sonra level degiskeni ile texti esitleyelim
    LevelGosterge = " " + level;

    Daha sonra bu Scriptin oldugu objeye gelin ve yukarida olusturdugumuz public olan ve bos text alanina , canvas uzerinde bir text dosyasi olusturup oraya surukleyin.
    Oyunu baslatinca Level degiskeni Canvas daki attiginiz text de gorunecektir.



    < Bu mesaj bu kişi tarafından değiştirildi Baxa -- 23 Kasım 2017; 15:20:3 >
    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Baxa kullanıcısına yanıt
    teşekkürler. fakat ben Unity UI değil DFUI kullanıyorum o yüzden ona göre yazmam lazım kodu. canvas eklersem bozulur. ayrıca her başlangıçta level 1 yazarsam adam hiç 3-4-5 olamaz. kaydetmem lazım. çünkü level sistemi sonuç sahnesinde çalışacak. high score kaçsa level o olacak
  • Ozaman kendi kullandiginiz ui daki text e baglayin, dfui ne bilmiyorum sahsen.

    Highskoru kayit edeceksiniz.Daha sonra oyun her acilisda o skora gore leveli gosterecek, update uzerindedende oyundaki degismeleri yapacaksiniz.



    if (highscore => 1000)

    {

    Level= 2

    }

    Seklinde yapiniz,

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Baxa kullanıcısına yanıt
    tek sorun o ztn. inspector'da yazıyor. başlangıçta 1 yazıyor hatta belli skora gelince de arttırıyor startta da öyle ama ekranda 2 yazmıyor. yani şöyle söyliyim script çalışıyor doğru bi şekilde ama nedense ekranda ki sayı değişmiyor. inspector'da level değişkeninde 2 oluyor ama ekranda olmuyor. şu an yazdığınız kod ztn benimki ile hemen hemen aynı. DFUI dediğim daikon forge. o asset şimdi kaldırılmış sitesi de kapanmış.
  • quote:

    Orijinalden alıntı: WOLKY DJ

    tek sorun o ztn. inspector'da yazıyor. başlangıçta 1 yazıyor hatta belli skora gelince de arttırıyor startta da öyle ama ekranda 2 yazmıyor. yani şöyle söyliyim script çalışıyor doğru bi şekilde ama nedense ekranda ki sayı değişmiyor. inspector'da level değişkeninde 2 oluyor ama ekranda olmuyor. şu an yazdığınız kod ztn benimki ile hemen hemen aynı. DFUI dediğim daikon forge. o asset şimdi kaldırılmış sitesi de kapanmış.

    Kullandiginiz dfui de Ui islerini nasil yapiyorsunuz .?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Baxa kullanıcısına yanıt
    aslında hemen hemen aynı Unity UI ile ama ayrı bi yer açmıyor. NGUI veya 2D Toolkit gibi texture atlas, label fln kullanıyor. gerçi doğru yazıyorum ama ekrana neden yazdırmıyor onu anlamadım. sizin kodu da yazdım yok yine yazmıyo. 1'de kalıyo arttırmıyor.
  • quote:

    Orijinalden alıntı: WOLKY DJ

    aslında hemen hemen aynı Unity UI ile ama ayrı bi yer açmıyor. NGUI veya 2D Toolkit gibi texture atlas, label fln kullanıyor. gerçi doğru yazıyorum ama ekrana neden yazdırmıyor onu anlamadım. sizin kodu da yazdım yok yine yazmıyo. 1'de kalıyo arttırmıyor.

    Ekranda gorunmesini istiyorsan

    Public Text olustur

    Olusturdugun texti



    textismi.text= " "+ leveldegiskeni; tanimla

    Daha sonra kullandigin ui da bir text olustur o texti ekranda istedigin yere koy ve scriptin public Text kismina surukle .

    Cozumun bu Texl label leveli ne ile gostereceksen bu sekilde yapmalisin.Debug.log ile sadece kodun calisip calismadigini gorursun.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Baxa kullanıcısına yanıt
    Kullandığım UI dflabel değişkenini kabul eder. Ayrıca DFUI canvas olarak çalışmıyor kamerada çalışıyor gerçi world olarak değiştiririm ama çalışır mı bilmem. Yani text değişkenini kabul etmez kullandığım UI. Başlangıçta ekranda 1 olarak yazıyor ama 2-3 fln olmuyor. İnspector da değiştirdiğimde kabul ediyor scriptte olmuyor

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Oyun ve projeler hakkında daha hızlı gelismek ve desteklesebilmek icin ekip kurdum dostlar.



    Yerli Yazılım (Oyun Dahil) Gelistirme Kulübü Kurduk. Bu işlerle ugrasanlari kulübümüze bekleriz: Şimdilik discord grubu kurdumhttps://discord.gg/KMZ2xkh



    < Bu mesaj bu kişi tarafından değiştirildi 3TH3M -- 13 Aralık 2017; 0:40:41 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.