0

libGosu と Chingu を使用して、簡単な小惑星のリメイクに取り組んでいます。元のアステロイドと同様に、弾丸が大きな流星に当たると、流星は 2 つの小さな流星に分裂します。プレイヤーが武器のアップグレードを達成すると、同時に複数の弾丸を発射できます。時々、2 つの弾丸が同じ小惑星に同時に衝突し、意図した 2 つではなく、4 つの小さな流星に分裂することがあります。2 つの同時衝突が発生した場合、Chingu で衝突の 1 つをキャンセルする方法はありますか? これは私が現在設定している方法です:

Bullet.each_collision(Meteor1) do |bullet, meteor|
  Explosion.create(:x => meteor.x, :y => meteor.y)
  Meteor2.create(:x => meteor.x, :y => meteor.y)
  Meteor2.create(:x => meteor.x, :y => meteor.y)
  meteor.destroy
  bullet.destroy
  @score += 100
  Sound["media/audio/explosion.ogg"].play(0.2)
end
Bullet.each_collision(Meteor2) do |bullet, meteor|
  Explosion.create(:x => meteor.x, :y => meteor.y)
  Meteor3.create(:x => meteor.x, :y => meteor.y)
  Meteor3.create(:x => meteor.x, :y => meteor.y)
  meteor.destroy
  bullet.destroy
  @score += 100
  Sound["media/audio/asplode.ogg"].play(0.2)
end
Bullet.each_collision(Meteor3) do |bullet, meteor|
  Explosion.create(:x => meteor.x, :y => meteor.y)
  meteor.destroy
  bullet.destroy
  @score += 100
  Sound["media/audio/asplode.ogg"].play(0.2)
end

2 つの弾丸が同じ流星に同時に当たったときに不要な余分な流星の作成を省略する方法はありますか?

4

1 に答える 1