簡體   English   中英

為什么在使用==時此代碼會失敗,而在使用<=時會失敗?

[英]Why does this code fail when using == but work using <=?

我剛剛開始在futurelearn.com上學習編程課程。

我有一個位圖和一個球。 任務是為x方向的邊界編碼。

工作代碼如下所示:

if ((mBallX <= mBall.getWidth()/2 && mBallSpeedX < 0) || (mBallX >= mCanvasWidth - mBall.getWidth()/2 && mBallSpeedX > 0)){
        mBallSpeedX = -mBallSpeedX;

但是我有一個邏輯問題。 我想了解為什么我不能使用“ ==”而不是“ <=”。 當我這樣做時,球飛出了屏幕的右側。

這是一個供理解的視頻。 它應該包含所有可能缺少的信息。:

https://www.futurelearn.com/courses/begin-programming/7/steps/42942

請記住,球並沒有連續移動-您以固定大小的離散步距移動它。 結果,球極不可能完全落在屏幕的另一端。 相反,它更有可能意外地超出了屏幕的一側。 如果您檢查球是否正好位於屏幕的側面,則不會適當考慮這些情況。 另一方面,如果您詢問球是否已經移過屏幕的兩側,那么您將正確考慮這些情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM