2017-02-10 5 views
-1

私はオブジェクト同士をオーバーラップさせたくありません。また、オブジェクトをステージリミットに保つ必要があります。ボタンはお互いにヒットすると離さなければなりません。hitTestObjectを試しましたが、 。互いに当たったときにオブジェクトを移動する

魚2 のサンプル移動コード* UPDATE

var fish2x:Number=10; 
var fish2y:Number=14; 
  
stage.addEventListener(Event.ENTER_FRAME,h42); 
function h42(s:Event = null) { 
fish2.x+=fish2x; 
fish2.y+=fish2y; 
if ((fish2.x>=stage.stageWidth-fish2.width/2)|| (fish2.x <= fish2.width/2)) { 
    fish2x*=-1; 
} 
if ((fish2.y>=stage.stageHeight-fish2.height/2)|| (fish2.y <= fish2.height/2)) { 
    fish2y*=-1; 
} 

if (fish2.hitTestObject(fish3)){ 
fish2y *= -1; 
fish3y *= -1; 
h42(); 
} 
} 

また、私は動作しませ切り抜いた関数の中で2つ以上の魚のために

stage.addEventListener(Event.ENTER_FRAME,crash); 
function crash(s:Event) { 
  
if (fish2.hitTestObject(fish || fish3)) { 

fish2y*=-1; 
message.text="crash"; 
} 
} 

を試してみました。 私はこのコードを使用するよりもfish2とfish3をnullに設定しました。

if (fish2.hitTestObject(fish3 || fish4)){ 
fish2y *= -1; 
fish2x *= -1; 
h42(); 
} 

hittestojectがすべて変更されました。すべての機能はこのように変更されますが、機能しません。 fish3は各other.Iがちょうど魚2.

 if (fish2.hitTestObject(fish || fsih3)){ 
fish2y *= -1; 
fish2x *= -1; 
fishy*=-1; 
fishx*=-1; 
fish3y*=-1; 
fish3x*=-1; 
} 
} 
+0

私たちが実際に何が起こっているのか視覚化する助けにはならない「狂ったように移動します」。 –

+0

私はあなたがそのようなhittestobjectを行うことができるのか分かりません(x || b)。あなたはhittestobject(x)を実行する必要があるかもしれないと思います。 hittestobject(b) –

+0

Hittestobject work correct私は使用された "| |"私は2つのfish.İf魚2の魚やfish3ヒットをテストするステージ上のオブジェクトを持っていた方向。私の問題は、互いに当たったときオブジェクトを逆方向に移動させる方法です。 – KucuKeko

答えて

1

のために使用される「ヌル」魚と魚3を取り外し打ったとき

アップデート2

は、今では何のエラーませんが、たまたまではない、私はそれだと思います彼らは両方とも動いているからです。 AとBの魚の衝突をチェックするとき、衝突が真であれば、速度を* = - 1だけ変えないでください。代わりに、1回も移動します。

if (A.hitTestObject(B)){ 
    Ay *= -1; 
    Ax *= -1; 
    By *= -1; 
    Bx *= -1; 
    h42(); 
} 

と、このようなあなたのデフォルト値にnullを追加します。

function h42(s:Event = null) { 
+0

関数をnullに変更し、h42関数をコードに追加します。しかし、動いてしまいました。何をお勧めしますか?ありがとう – KucuKeko

+0

さて、ここではスタックされていませんが、別の位置にジャンプしています。ここにはGIFがあります http://keko11.byethost24.com/bandituruk.gif – KucuKeko

+0

コードを元の投稿にそのまま貼り付けることはできますか? –

関連する問題