2014-02-21 58 views
0

好吧,我在一個泡菜,我正在做一個遊戲,我有經驗。C#製作進度條

現在玩家升級它需要一個窗簾xp。

因此,Player具有20xp,他需要40xp,我希望進度條顯示50%滿。

無法計算出來,還有進度條是260px寬,我需要它時它的50%滿,進度條的寬度爲130px長,並在100%完成我需要它寬260px?

希望我給了足夠的信息我正在製作一個標籤擴展到窗簾寬度(260%)作爲我的進度條。

編輯:

使用圖片框獲得10xp每一次點擊來測試吧。

private void pictureBox2_Click(object sender, EventArgs e) 
    { 
     GetXP(); 
    } 

private void GetXP() 
    { 
     int XpBarWidth = 260; 
     int PlayerXP = Convert.ToInt32(Exp.Text); 
     int NeededXP = xp_needed; 

     label1.Text = PlayerXP.ToString(); 
     label4.Text = NeededXP.ToString(); 

     int Ratio = (PlayerXP/NeededXP); 

     XpBar.Width = (int)(XpBarWidth * Ratio); 
     XpBar.Refresh(); 
    } 

Label1和Label4在哪裏測試PlayerXP和NeededXP整數。

+0

對這個問題的任何答案都會對你當前的設置做出巨大的假設。發佈一些代碼,以便我們可以幫助您試用您的產品。 –

+0

這就是我所做的一切,我已經試過乘以它我也嘗試了devide並添加它,但沒有任何作品 – Terrii

+0

問題是你正在分割兩個'int's。我建議你用你的調試器進入這個環節,看看這個部門的結果。我也更新了我的答案。 – germi

回答

1
double XpBarWidth = 260; // maximum width of your xp bar 
double Player.XP = 20; // current xp of your player 
double NeededXP = 40; // xp needed for next lvl 
double ratio = (Player.XP/NeededXP); 

Label XpLabel = ... // the label where you want to display the xp 
XpLabel.Width = (int)(XpBarWidth * ratio); 

更新: 在你更新的問題,您同時定義了PlayerXPNeededXPint。當你劃分它們時,只要PlayerXP小於NeededXP,就會得到0。演員/改變他們雙重獲得正確的結果。

+0

它會工作完美,你有正確的想法,但它沒有使寬度任何更大 – Terrii

+0

就像它不擴大 – Terrii

+0

你是否設置'標籤'的'AutoSize'爲'false'? – germi

4

你可以做的是使用Winform命名空間內建的進度條。

所以在你的情況下,你會設置進度條的值每個級別最多

所以步驟

  • 將新進度條//設置寬度

New Form

然後當你想要升級或增加體驗

 private void LevelUp() 
     { 
      progressBar1.Maximum = 100; //new experience needed 
     } 

     private void ShowExperience(int xp) 
     { 
      progressBar1.Value += xp; // Add the xp 
     } 

所以這是你的經驗吧,和經驗的增加以及

我也包括下面

http://tinyurl.com/pflyvhu

鏈接到一個工作示例的鏈接樣式的進度欄

http://www.dotnetperls.com/progressbar

Some Styling代碼

  progressBar1.BackColor = Color.Aqua; 
      progressBar1.ForeColor = Color.White; 

      // you can also use images 

      progressBar1.BackgroundImage = new Bitmap(""); 
+0

我嘗試過,但我想用自定義顏色製作一個自定義顏色,所以即時使用標籤方法。 – Terrii

+0

爲什麼不使用顏色設置來設置進度條的顏色? –

+0

我不知道該怎麼做,沒有屬性中的FormStyle – Terrii