- 最後登錄
- 2019-10-22
- 在線時間
- 108 小時
- 註冊時間
- 2008-6-26
- 閱讀權限
- 20
- 精華
- 0
- UID
- 4466576
- 帖子
- 213
- 積分
- 102 點
- 潛水值
- 7083 米
| 若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 本帖最後由 arthurliuliu 於 2012-1-11 07:47 AM 編輯
我是要寫類似冰上曲棍球的遊戲,以下是說明...(註:球的數量設定為讓玩家可以輸入1~100一次出現在檯面上,所以才有Balls的變數)
擋板就是指守在球門前的阻擋物,我是用工具箱裡的picturebox建立的。擋板大小為10,50。
以下是寫碰到擋板球就要反彈的程式碼片段:
- if (Balls.position[0] <= 擋板1.Location.X + 10 && Balls.position[0] >= 擋板1.Location.X && Balls.position[1] >= 擋板1.Location.Y && Balls.position[1] <= 擋板1.Location.Y + 50)
- {
- Balls.velocity[0] = Balls.velocity[0] * -1;
- Balls.velocity[1] = Balls.velocity[1] * 1;
- }
複製代碼
乍看下好像沒問題(自我感覺良好?):只要球的位置跑在擋板內部,就反彈。(因為擋板為細長狀,故微小差異在執行遊戲時應該無妨)
但在執行偵錯時,「if」那一行程式碼就被黃色底的方框選取來,並顯示「Null Reference Exception」。
問題出在這,「Null Reference Exception」是什麼意思?該如何解決?
我也有點進去Visual Studio的幫助頁()
只看懂一點點,但還是不知道該如何下手改程式。
向大大求救!謝謝!
(因為此題目不一定大家懂意思,加上程式碼冗長,不方便一一解釋,所以只選取一小部分程式碼。若有熱心大大願意幫忙,需要看看其他部分的程式碼,我馬上貼上!)
code沒包,板主代為編輯。
arthurliuliu ... |
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊 |