「画面端で反射する弾」の編集履歴(バックアップ)一覧に戻る

画面端で反射する弾 - (2008/08/02 (土) 21:13:27) のソース

<画面端で反射する弾>
 敵機、敵弾、自機弾を画面端で反射させる方法。

1.キャラクタのx座標で画面端判定を行う方法(縦STG用)

①移動([[直交座標]])パネルを用いる方法
<0.メイン[[タスク]]> 
 ゲート:0 
 「移動(直交座標)X:速度X,Y:速度Y」
 「制御([[タスク開始]])タスク番号:1,最初から開始on」 
 「制御([[タスク停止]])タスク番号:0,最初から開始on」 
<1.ユーザータスク1> 
 ゲート:1
 「変数([[ローカル]])ローカルデータ:x座標,→,変数0」
 (速度X>0の場合)---
 「変数([[条件分岐]])即値:画面の幅,<,変数0」
   └「移動(直交座標)X:-速度X,Y:速度Y」
    「ラベル(IN)番号:0」
 (速度X<0の場合)---
 「変数(条件分岐)即値:0,>,変数0」
   └「移動(直交座標)X:-速度X,Y:速度Y」
    「ラベル(IN)番号:0」
   ---
   │
 「ラベル([[OUT]])番号:0」
 「制御(通過)フレーム数1」

②移動([[極座標]])パネルを用いる方法
<0.メインタスク> 
 ゲート:0 
 「移動(極座標)角度:Θ,速度:V」
 「制御(タスク開始)タスク番号:1,最初から開始on」 
 「制御(タスク停止)タスク番号:0,最初から開始on」 
<1.ユーザータスク1> 
 ゲート:1
 「変数(ローカル)ローカルデータ:x座標,→,変数0」
 (Θ=0~+180の場合)---
 「変数(条件分岐)即値:0,>,変数0」
   └「移動(極座標)角度:180-Θ,速度:V」
    「ラベル(IN)番号:0」
   │
 「変数(条件分岐)即値:画面の幅,<,変数0」
   └「移動(極座標)角度:180-Θ,速度:V」
    「ラベル(IN)番号:0」
 (Θ=0~-180の場合)---
 「変数(条件分岐)即値:0,>,変数0」
   └「移動(極座標)角度:Θ-180,速度:V」
    「ラベル(IN)番号:0」
   │
 「変数(条件分岐)即値:画面の幅,<,変数0」
   └「移動(極座標)角度:Θ-180,速度:V」
    「ラベル(IN)番号:0」
   ---
   │
 「ラベル(OUT)番号:0」
 「制御(通過)フレーム数1」

③移動(速度)パネルを用いる方法
<0.メインタスク> 
 ゲート:0 
 「移動(極座標)角度:Θ,速度:V」
 「制御(タスク開始)タスク番号:1,最初から開始on」 
 「制御(タスク停止)タスク番号:0,最初から開始on」 
<1.ユーザータスク1> 
 ゲート:1
 「変数(ローカル)ローカルデータ:x座標,→,変数0」
 「変数(条件分岐)即値:0,>,変数0」
   └「移動(速度)速度:-V×2,相対on」
    「ラベル(IN)番号:0」
   │
 「変数(条件分岐)即値:画面の幅,<,変数0」
   └「移動(極座標)速度:-V×2,相対on」
    「ラベル(IN)番号:0」
   ---
   │
 「ラベル(OUT)番号:0」
 「制御(通過)フレーム数1」

2.キャラクタのy座標で画面端判定を行う方法(横STG用)

①移動(直交座標)パネルを用いる方法
<0.メインタスク> 
 ゲート:0 
 「移動(直交座標)X:速度X,Y:速度Y」
 「制御(タスク開始)タスク番号:1,最初から開始on」 
 「制御(タスク停止)タスク番号:0,最初から開始on」 
<1.ユーザータスク1> 
 ゲート:1
 「変数(ローカル)ローカルデータ:y座標,→,変数0」
 (速度Y>0の場合)---
 「変数(条件分岐)即値:画面の高さ,<,変数0」
   └「移動(直交座標)X:速度X,Y:-速度Y」
    「ラベル(IN)番号:0」
 (速度Y<0の場合)---
 「変数(条件分岐)即値:0,>,変数0」
   └「移動(直交座標)X:速度X,Y:-速度Y」
    「ラベル(IN)番号:0」
   ---
   │
 「ラベル(OUT)番号:0」
 「制御(通過)フレーム数1」

②移動(極座標)パネルを用いる方法
<0.メインタスク> 
 ゲート:0 
 「移動(極座標)角度:Θ,速度:V」
 「制御(タスク開始)タスク番号:1,最初から開始on」 
 「制御(タスク停止)タスク番号:0,最初から開始on」 
<1.ユーザータスク1> 
 ゲート:1
 「変数(ローカル)ローカルデータ:x座標,→,変数0」
 「変数(条件分岐)即値:0,>,変数0」
   └「移動(極座標)角度:-Θ,速度:V」
    「ラベル(IN)番号:0」
   │
 「変数(条件分岐)即値:画面の高さ,<,変数0」
   └「移動(極座標)角度:-Θ,速度:V」
    「ラベル(IN)番号:0」
   │
 「ラベル(OUT)番号:0」
 「制御(通過)フレーム数1」

③移動(速度)パネルを用いる方法
<0.メインタスク> 
 ゲート:0 
 「移動(極座標)角度:Θ,速度:V」
 「制御(タスク開始)タスク番号:1,最初から開始on」 
 「制御(タスク停止)タスク番号:0,最初から開始on」 
<1.ユーザータスク1> 
 ゲート:1
 「変数(ローカル)ローカルデータ:y座標,→,変数0」
 「変数(条件分岐)即値:0,>,変数0」
   └「移動(速度)速度:-V×2,相対on」
    「ラベル(IN)番号:0」
   │
 「変数(条件分岐)即値:画面の幅,<,変数0」
   └「移動(極座標)速度:-V×2,相対on」
    「ラベル(IN)番号:0」
   ---
   │
 「ラベル(OUT)番号:0」
 「制御(通過)フレーム数1」