ゲームの作業。私は可動式のバスケットを持っています。ゲームの更新ステップでは、2つの間の衝突をチェックします。将来、私は複数のリンゴを追加したいので、私はバスケットとリンゴの間の衝突を検出する最善の方法を探しています。2ビットマップ間の衝突
ガットコード:
public void update() {
int basketcenterX = basket.getX() + (basket.getWidth()/2);
int basketcenterY = basket.getY() + (basket.getHeight()/2);
if (basketcenterX < apple.getX() + apple.getWidth() && basketcenterX > apple.getX())
if (basketcenterY < apple.getY() + apple.getHeight() && basketcenterY > apple.getY())
{
Log.d(TAG, "Collision detected!!");
}
Log.d(TAG, "Apple Safe!");}
それはエミュレータでかなりラグようだ、私はより多くのりんごのインスタンスを追加するとき、それはあまりにも遅くなることを心配しています。これを改善する方法や複数のリンゴをチェックするためにこれを改良する方法に関する提案はありますか?
ありがとうございます!私はそれを変更しました。新しいコリジョンコード: '\t if(basket.X apple.X - apple。(basket.Y apple.Y - apple.height/2) ' –
apple.width/2とapple.height/2は変更されない可能性があります - それを事前に計算し、apple.halfwidthおよびapple.halfheightとして保存します。エミュレータは私が知っているどんなデバイスよりも低速です。実際のデバイスでゲームをテストするようにしてください。 –
マイケル、あなたの答えのおかげで、私はhttps://play.google.com/store/apps/details?id=happyworx.nl.Applezと書くことができました。ありがとうございました! –