Şimdi Ara

Skorlara göre level up sistemi

Koronavirüs Özel
Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
18
Cevap
0
Favori
204
Tıklama
Sayfaya Git:
Sayfa:
1
Giriş
Mesaj
  • Binbaşı
    1019 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'



    |
    |
    _____________________________




  • Çavuş
    82 Mesaj
    stringde büyük eşittir kullanamazsın, int olarak yapman lazım
    _____________________________
  • Binbaşı
    1019 Mesaj
    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
    _____________________________
  • Çavuş
    82 Mesaj
    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
    |
    |
    _____________________________
  • Binbaşı
    1019 Mesaj
    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 WOLKY DJ -- 23 Kasım 2017; 0:55:35 >
    _____________________________




  • Yüzbaşı
    612 Mesaj

    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 >
    |
    |
    WOLKY DJ kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Çavuş
    82 Mesaj
    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
    _____________________________




  • Binbaşı
    1019 Mesaj

    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ı >
    |
    |
    Baxa kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Binbaşı
    1019 Mesaj

    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 WOLKY DJ -- 23 Kasım 2017; 15:6:43 >
    |
    |
    ♛TR kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Yüzbaşı
    612 Mesaj
    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 >
    _____________________________




  • Binbaşı
    1019 Mesaj

    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
    |
    |
    Baxa kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Yüzbaşı
    612 Mesaj

    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ı >
    |
    |
    WOLKY DJ kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Binbaşı
    1019 Mesaj

    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ış.
    |
    |
    Baxa kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Yüzbaşı
    612 Mesaj
    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ı >
    _____________________________
  • Binbaşı
    1019 Mesaj

    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.
    |
    |
    Baxa kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Yüzbaşı
    612 Mesaj
    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ı >
    _____________________________
  • Binbaşı
    1019 Mesaj

    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ı >
    |
    |
    Baxa kullanıcısının, bahsedilen mesajını gör
    _____________________________
  • Teğmen
    100 Mesaj
    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 >
    |
    |
    _____________________________
Sayfaya Git:
Sayfa:
1
Reklamlar
kolayoto.com
SEO
Media Sözlük
bankalar.org
Bu sayfanın
Mobil sürümü
Mini Sürümü

BR3
0,922
1.2.165

Reklamlar
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.