我正在設計一個使用Windows窗體的小遊戲,其中有5個標籤,每個標籤都與指定圖像列表中的骰子圖像(1 - 6)相似。該遊戲被「滾動」3次,在滾動結束時,您可以選擇不通過更改其背景顏色進行滾動的標籤。在每次滾動結束時,計算並顯示模具面的總和。Imagelist總是返回-1
現在的問題...
我知道我的標籤可以達到圖像列表爲骰子的「滾動」功能,效果非常好。每個標籤被設置爲通過計時器滴答事件運行,該事件將發生10次,其中從圖像列表中選擇隨機圖像,產生滾動骰子的幻覺。但是,當我希望在滾動週期結束時使用圖像列表索引添加模具面的總數時,每個索引都會返回-1。需要注意的是,每個骰子的指數比骰子的數量少一個。同樣,如果你有一個類似於一個的死亡,它的索引將爲零。我通過在索引中加1來解釋這一點。所以...雖然我可能有一個5,5,6,4,3 - 我的得分計數器爲0,而不是說23.
爲什麼當imgaelist指數給出值-1時,最低可用索引是0?
這是我的代碼。在else語句中進行模面的總和的實際計算。在評估總和之前,我將m_iScore(分數計數器)設置爲零,因爲我希望總和在每次滾動之後代表面部。
private void timer1_Tick(object sender, EventArgs e)
{
Label[] labelArray = new Label[] { label1, label2, label3, label4, label5 };
Random randnum = new Random();
if (m_iAnimations < 10)
{
for (int iCount = 0; iCount < labelArray.Length; iCount++)
{
if ((labelArray[iCount]).BackColor == Color.Lime)
{
(labelArray[iCount]).Image = imageList1.Images[randnum.Next(0, 6)];
}
}
m_iAnimations++;
}
else
{
timer1.Enabled = false;
m_iAnimations = 0;
m_iScore = 0;
for (int iCount = 0; iCount < labelArray.Length; iCount++)
{
m_iScore = m_iScore + ((labelArray[iCount]).ImageIndex + 1);
}
scoreval.Text = m_iScore.ToString();
}
}
如果我不給圖像索引添加1,scoreval.Text顯示-5。