SRC質問掲示板Mk2
(現在 過去ログ70 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13119 / inTopicNo.1)  オリジナル攻撃用ルーチン
  
□投稿者/ ドラゴンライダーΦズ -(2004/04/03(Sat) 10:57:13)
http://www2u.biglobe.ne.jp/~songokuu/Default.html
    私はドラゴンライダーΦズです。

    ↓イベント全文ここから

    @機動騎士団ナイトガンダム
    @妖霊烈伝デビルマイン

    スタート:
    ChangeMap 戦闘フィールド.map
    StartBGM KnightGundamRPG_Field.mid
    CreateRPGCharacter 剣聖Z6 来栖川綾香 1 15 8 援護移動 100 100
    CreateRPGCharacter 剣聖Z6 松原葵 1 1 2 援護移動 100 100
    CreateRPGMonster 剣聖Z6 アンデッド(ザコ) 1 5 13 ランダム移動 50 50
    Talk システム
    ナイトガンダムシステムのテストです。
    End
    ForEach 味方 出撃
    Switch Right(対象パイロット,4)
    Case "(ザコ)" "(汎用)"
    Skip
    Case Else
    味方キャラ[対象パイロット] = 対象パイロット
    EndSw
    Next
    Ask 味方キャラ 誰を操作しますか?
    AutoMove 味方キャラ[選択]
    #Abs(Y() - Y(Args(1)))
    Exit

    CreateRPGCharacter:
    If IsDefined(Args(2)) = 0 Then
    Create 味方 Args(1) 0 Args(2) Args(3) Args(4) Args(5)
    Else
    Launch Args(2) Args(4) Args(5)
    EndIf
    キャラクター[対象パイロット] = 対象パイロット
    キャラクター2[対象パイロット] = 対象ユニットID
    RPGキャラクター用行動パターン[対象パイロット] = Args(6)
    攻撃行動率[対象パイロット] = Args(7)
    反撃行動率[対象ユニットID] = Args(8)
    Return

    CreateRPGMonster:
    Create 敵 Args(1) 0 Args(2) Args(3) Args(4) Args(5)
    キャラクター[対象パイロット] = 対象パイロット
    キャラクター2[対象パイロット] = 対象ユニットID
    RPGキャラクター用行動パターン[対象パイロット] = Args(6)
    攻撃行動率[対象パイロット] = Args(7)
    反撃行動率[対象ユニットID] = Args(8)
    Return

    AutoMove:
    Do
    Wait Click
    If KeyState(32) = 1 Then
    Return
    ElseIf KeyState(37) = 1 Then
    If x(Args(1)) > 1 Then
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Center Args(1)
    EndIf
    ElseIf KeyState(38) = 1 Then
    If Y(Args(1)) > 1 Then
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    Center Args(1)
    EndIf
    ElseIf KeyState(39) = 1 Then
    If x(Args(1)) < Info(マップ,幅) Then
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Center Args(1)
    EndIf
    ElseIf KeyState(40) = 1 Then
    If Y(Args(1)) < Info(マップ,高さ) Then
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    Center Args(1)
    EndIf
    EndIf
    ForEach 行動対象のキャラクター In キャラクター
    If 行動対象のキャラクター = Args(1) Then
    Skip
    EndIf
    #↓CPUの攻撃用ルーチンここから
    #攻撃行動を起こす確率を決めるための乱数を設定
    実際攻撃行動率[UnitID(行動対象のキャラクター)] = Random(100)
    #攻撃目標の探索
    For 調査X座標 = 1 To Info(マップ,幅)
    For 調査Y座標 = 1 To Info(マップ,高さ)
    #操作キャラクターを弾き出した場合は処理を飛ばす。
    If UnitID(行動対象のキャラクター) = Info(マップ,調査X座標,調査Y座標,ユニットID) Then
    Skip
    EndIf
    If Info(マップ,調査X座標,調査Y座標,ユニットID) <> "" Then
    #武器を調べて最大射程と最小射程を入れる。
    For 武器番号 = 1 To Info(Unit(行動対象のキャラクター),武器数)
    武器の最小射程[行動対象のキャラクター,Info(Unit(行動対象のキャラクター),武器,武器番号)] = Info(Unit(行動対象のキャラクター),武器,武器番号,最小射程)
    武器の最大射程[行動対象のキャラクター,Info(Unit(行動対象のキャラクター),武器,武器番号)] = Info(Unit(行動対象のキャラクター),武器,武器番号,最大射程)
    For 射程範囲 = 武器の最小射程[行動対象のキャラクター,Info(Unit(行動対象のキャラクター),武器,武器番号)] To 武器の最大射程[行動対象のキャラクター,Info(Unit(行動対象のキャラクター),武器,武器番号)]
    #攻撃目標が武器の射程内にいるかどうか確認する。
    If 射程範囲 = (Abs(X(UnitID(行動対象のキャラクター)) - X(Info(マップ,調査X座標,調査Y座標,ユニットID))) + Abs(Y(UnitID(行動対象のキャラクター)) - Y(Info(マップ,調査X座標,調査Y座標,ユニットID)))) And Party(行動対象のキャラクター) <> Party(Info(マップ,調査X座標,調査Y座標,ユニットID)) Then
    #反撃行動を起こす確率を決めるための乱数を設定
    実際反撃行動率[Info(マップ,調査X座標,調査Y座標,ユニットID)] = Random(100)
    #実際の攻撃行動率と反撃行動率を調べて判定する
    If 実際攻撃行動率[UnitID(行動対象のキャラクター)] <= 攻撃行動率[行動対象のキャラクター] Then
    If 実際反撃行動率[Info(マップ,調査X座標,調査Y座標,ユニットID)] <= 反撃行動率[Info(マップ,調査X座標,調査Y座標,ユニットID)] Then
    Attack 行動対象のキャラクター Info(Unit(行動対象のキャラクター),武器,武器番号) Info(マップ,調査X座標,調査Y座標,ユニットID) 自動
    Else
    Attack 行動対象のキャラクター Info(Unit(行動対象のキャラクター),武器,武器番号) Info(マップ,調査X座標,調査Y座標,ユニットID) 無抵抗
    EndIf
    Else
    Call RPGキャラクター用行動パターン[行動対象のキャラクター] 行動対象のキャラクター Args(1)
    EndIf
    EndIf
    Next
    Next
    EndIf
    Next
    Next
    #↑CPUの攻撃用ルーチンここまで
    Next
    Loop While (0 = 0)
    Return

    援護移動:
    If (X(Args(1)) - X(Args(2))) < 0 Then
    If (Y(Args(1)) - y(Args(2))) < 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    EndSw
    ElseIf (y(Args(1)) - y(Args(2))) > 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    EndSw
    Else
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    EndIf
    ElseIf (X(Args(1)) - X(Args(2))) > 0 Then
    If (y(Args(1)) - y(Args(2))) < 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    EndSw
    ElseIf (y(Args(1)) - y(Args(2))) > 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    EndSw
    Else
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    EndIf
    Else
    If (y(Args(1)) - y(Args(2))) < 0 Then
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    ElseIf (y(Args(1)) - y(Args(2))) > 0 Then
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    EndIf
    EndIf
    Return

    ランダム移動:
    Switch Random(4)
    Case 1
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    Case 3
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Case 4
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    EndSw
    Return

    ↑イベント全文ここまで

    このイベント文は登場させたキャラクターをRPGのように扱うためのものです。
    移動はうまくいきましたが、CPUの攻撃用ルーチンを導入したところ、
    処理が非常に遅くなってしまいました。

    CPUの攻撃用ルーチンを変更して処理速度を早くしようと思うのですが、
    私はこれ以外に思いつきません。
    いい案はないでしょうか。

    このイベントに使用しているユニット「剣聖Z6」には射程が重なる武器はありません。
    処理は全てそれを前提に作っています。
引用返信/返信 削除キー/
■13125 / inTopicNo.2)  Re[1]: オリジナル攻撃用ルーチン
□投稿者/ GAMEMASTER -(2004/04/03(Sat) 12:10:46)
http://nagoya.cool.ne.jp/gamemaster/
     GAMEMASTERです。

    > (前略)
    >
    > このイベント文は登場させたキャラクターをRPGのように扱うためのものです。
    > 移動はうまくいきましたが、CPUの攻撃用ルーチンを導入したところ、
    > 処理が非常に遅くなってしまいました。
    >
    > CPUの攻撃用ルーチンを変更して処理速度を早くしようと思うのですが、
    > 私はこれ以外に思いつきません。
    > いい案はないでしょうか。
    >
    > このイベントに使用しているユニット「剣聖Z6」には射程が重なる武器はありません。
    > 処理は全てそれを前提に作っています。

     ユニットを1マス動かすごとに、

     1:動かしていないユニットの数と同じ回数、マップの全ての座標を調査
      ↓
     2:そこに誰かがいれば、ユニットの所有する全ての武器の最小射程と最大射程を調査
      ↓
     3:動かしているユニットとの距離が武器の射程範囲内であれば、あらかじめ定めた攻撃・反撃を行う確率に従って戦闘を行わせる

     このような処理を行っているようですが、明らかにユニットの数・マップの大きさ・武器の数によって処理速度が幾何級数的に低下します。
     少なくとも、1「マップの全ての座標の調査」は改善しなければなりません。

     そこで最初に、行動させているユニット以外を全員配列に記録します。


     UnSet 行動対象のキャラクター

     ForEach i In キャラクター

      If i = Args(1) Then

       Skip

      EndIf

      行動対象のキャラクター[(Count(行動対象のキャラクター) + 1)] = i

     Next


     そして、この配列に記録したユニットと他のユニットとの距離を調べ、それがユニットの最長射程(ユニットが持つ最も射程の長い武器の射程、Info関数で取得可能)以内かどうかを調べるようにします。


     For i = 1 To Count(行動対象のキャラクター)

      ForEach j In キャラクター

       If j = 行動対象のキャラクター[i] Then

        Skip

       EndIf

       If Party(j) = Party(行動対象のキャラクター[i]) Then

        Skip

       EndIf

       If (Abs(X(行動対象のキャラクター[i]) - X(j)) + Abs(Y(行動対象のキャラクター[i]) - Y(j))) > Info(ユニット,Unit(行動対象のキャラクター[i]),最長射程) Then

        Skip

       EndIf

       If Random(100) <= 攻撃行動率[行動対象のキャラクター[i]] Then

        If Random(100) <= 反撃行動率[j] Then

         Attack 行動対象のキャラクター[i] 自動 j 自動

        Else

         Attack 行動対象のキャラクター[i] 自動 j 無抵抗

        EndIf

       Else

        Call RPGキャラクター用行動パターン[行動対象のキャラクター[i]] 行動対象のキャラクター[i] Args(1)

       EndIf

      Next

     Next


     このようなものになると思われます。
     当方でテストしたところ、処理速度の向上を確認しました。

     参考になれば幸いです。

     もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信/返信 削除キー/
■13126 / inTopicNo.3)  回答ではありません。
□投稿者/ TomTom -(2004/04/03(Sat) 12:40:00)
    TomTomです。

    すでに回答されている方がいるので、気になったことを一点だけ。

    毎度毎度ドラゴンライダーΦズさんがコードを提示するたびに思うのですが、掲示板に貼り付けるにしては長く、
    IfやSwitchのネストが多い割にはまったくインデントされていないので、とても読みにくいです。

    コードの長さは、まあ仕方がないとしてもせめてインデントくらいかけられませんか?
    それだけで読み手の印象が大きく違うと思うのですが。
解決済み!
引用返信/返信 削除キー/
■13143 / inTopicNo.4)  マルチレス(処理速度問題)
□投稿者/ ドラゴンライダーΦズ -(2004/04/04(Sun) 02:00:01)
http://www2u.biglobe.ne.jp/~songokuu/Default.html
    私はドラゴンライダーΦズです。

    ↓イベントデータここから

    @機動騎士団ナイトガンダム
    @妖霊烈伝デビルマイン

    スタート:
    ChangeMap 戦闘フィールド.map
    StartBGM KnightGundamRPG_Field.mid
    CreateRPGCharacter 剣聖Z6 松原葵 1 1 2 援護移動 100 100
    CreateRPGCharacter 剣聖Z6 来栖川綾香 1 15 8 援護移動 100 100
    CreateRPGMonster ザックロッカー アンデッド(ザコ) 1 5 13 ランダム移動 50 50
    CreateRPGMonster ザックロッカー アンデッド(ザコ) 1 5 13 ランダム移動 50 50
    CreateRPGMonster ザックロッカー アンデッド(ザコ) 1 5 13 ランダム移動 50 50
    CreateRPGMonster ザックロッカー アンデッド(ザコ) 1 5 13 ランダム移動 50 50
    CreateRPGMonster ザックロッカー アンデッド(ザコ) 1 5 13 ランダム移動 50 50
    CreateRPGMonster ザックロッカー アンデッド(ザコ) 1 5 13 ランダム移動 50 50
    Talk システム
    ナイトガンダムシステムのテストです。
    End
    ForEach 味方 出撃
    Switch Right(対象パイロット,4)
    Case "(ザコ)" "(汎用)"
    Skip
    Case Else
    味方キャラ[対象パイロット] = 対象パイロット
    EndSw
    Next
    Ask 味方キャラ 誰を操作しますか?
    AutoMove 味方キャラ[選択]
    #Abs(Y() - Y(Args(1)))
    Exit

    CreateRPGCharacter:
    If IsDefined(Args(2)) = 0 Then
    Create 味方 Args(1) 0 Args(2) Args(3) Args(4) Args(5)
    Else
    Launch Args(2) Args(4) Args(5)
    EndIf
    キャラクター[対象パイロット] = 対象パイロット
    RPGキャラクター用行動パターン[対象パイロット] = Args(6)
    攻撃行動率[対象パイロット] = Args(7)
    反撃行動率[対象パイロット] = Args(8)
    Return

    CreateRPGMonster:
    Create 敵 Args(1) 0 Args(2) Args(3) Args(4) Args(5)
    キャラクター[対象パイロット] = 対象パイロット
    RPGキャラクター用行動パターン[対象パイロット] = Args(6)
    攻撃行動率[対象パイロット] = Args(7)
    反撃行動率[対象パイロット] = Args(8)
    Return

    AutoMove:
    Do
    Do
    Set 操作キャラクター行動中
    Center Args(1)
    Wait Click
    If KeyState(37) = 1 Then
    If x(Args(1)) > 1 Then
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Center Args(1)
    UnSet 操作キャラクター行動中
    EndIf
    ElseIf KeyState(38) = 1 Then
    If Y(Args(1)) > 1 Then
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    Center Args(1)
    UnSet 操作キャラクター行動中
    EndIf
    ElseIf KeyState(39) = 1 Then
    If x(Args(1)) < Info(マップ,幅) Then
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Center Args(1)
    UnSet 操作キャラクター行動中
    EndIf
    ElseIf KeyState(40) = 1 Then
    If Y(Args(1)) < Info(マップ,高さ) Then
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    Center Args(1)
    UnSet 操作キャラクター行動中
    EndIf
    EndIf
    Loop While (操作キャラクター行動中)
    UnSet 行動対象のキャラクター
    ForEach 操作外キャラクター In キャラクター
    If 操作外キャラクター = Args(1) Then
    Skip
    EndIf
    行動対象のキャラクター[(Count(行動対象のキャラクター) + 1)] = 操作外キャラクター
    Set 移動前[(Count(行動対象のキャラクター) + 1)]
    Next
    For 操作外キャラクター情報番号 = 1 To Count(行動対象のキャラクター)
    ShowUnitStatus 終了
    ForEach ターゲット In キャラクター
    If Status(行動対象のキャラクター[操作外キャラクター情報番号]) = 破壊 Then
    Skip
    EndIf
    If ターゲット = 行動対象のキャラクター[操作外キャラクター情報番号] Then
    If 移動前[操作外キャラクター情報番号] Then
    Call RPGキャラクター用行動パターン[行動対象のキャラクター[操作外キャラクター情報番号]] 行動対象のキャラクター[操作外キャラクター情報番号] Args(1)
    UnSet 移動前[操作外キャラクター情報番号]
    EndIf
    Skip
    EndIf
    If Party(ターゲット) = Party(行動対象のキャラクター[操作外キャラクター情報番号]) Then
    If 移動前[操作外キャラクター情報番号] Then
    Call RPGキャラクター用行動パターン[行動対象のキャラクター[操作外キャラクター情報番号]] 行動対象のキャラクター[操作外キャラクター情報番号] Args(1)
    UnSet 移動前[操作外キャラクター情報番号]
    EndIf
    Skip
    EndIf
    If (Abs(X(行動対象のキャラクター[操作外キャラクター情報番号]) - X(ターゲット)) + Abs(Y(行動対象のキャラクター[操作外キャラクター情報番号]) - Y(ターゲット))) > Info(ユニット,Unit(行動対象のキャラクター[操作外キャラクター情報番号]),最長射程) Then
    If 移動前[操作外キャラクター情報番号] Then
    Call RPGキャラクター用行動パターン[行動対象のキャラクター[操作外キャラクター情報番号]] 行動対象のキャラクター[操作外キャラクター情報番号] Args(1)
    UnSet 移動前[操作外キャラクター情報番号]
    EndIf
    Skip
    EndIf
    If Random(100) <= 攻撃行動率[行動対象のキャラクター[操作外キャラクター情報番号]] Then
    If Random(100) <= 反撃行動率[ターゲット] Then
    ShowUnitStatus UnitID(行動対象のキャラクター[操作外キャラクター情報番号])
    Attack 行動対象のキャラクター[操作外キャラクター情報番号] 自動 ターゲット 自動
    Else
    ShowUnitStatus UnitID(行動対象のキャラクター[操作外キャラクター情報番号])
    Attack 行動対象のキャラクター[操作外キャラクター情報番号] 自動 ターゲット 無抵抗
    EndIf
    Else
    If 移動前[操作外キャラクター情報番号] Then
    Call RPGキャラクター用行動パターン[行動対象のキャラクター[操作外キャラクター情報番号]] 行動対象のキャラクター[操作外キャラクター情報番号] Args(1)
    UnSet 移動前[操作外キャラクター情報番号]
    EndIf
    EndIf
    Next
    Next
    Loop While (0 = 0)
    Return

    援護移動:
    If (X(Args(1)) - X(Args(2))) < 0 Then
    If (Y(Args(1)) - y(Args(2))) < 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    EndSw
    ElseIf (y(Args(1)) - y(Args(2))) > 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    EndSw
    Else
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    EndIf
    ElseIf (X(Args(1)) - X(Args(2))) > 0 Then
    If (y(Args(1)) - y(Args(2))) < 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    EndSw
    ElseIf (y(Args(1)) - y(Args(2))) > 0 Then
    Switch Random(2)
    Case 1
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    EndSw
    Else
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    EndIf
    Else
    If (y(Args(1)) - y(Args(2))) < 0 Then
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    ElseIf (y(Args(1)) - y(Args(2))) > 0 Then
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    EndIf
    EndIf
    Return

    ランダム移動:
    Switch Random(4)
    Case 1
    Move Args(1) (x(Args(1)) - 1) y(Args(1)) アニメ表示
    Case 2
    Move Args(1) X(Args(1)) (Y(Args(1)) - 1) アニメ表示
    Case 3
    Move Args(1) (x(Args(1)) + 1) y(Args(1)) アニメ表示
    Case 4
    Move Args(1) X(Args(1)) (Y(Args(1)) + 1) アニメ表示
    EndSw
    Return

    ↑イベントデータここまで

    記事番号「13125」GAMEMASTERさんへの返信

    上記のように改変し、処理速度は向上したのですが、
    なぜか操作しているキャラクターと同じ陣営のユニットが、移動を行わなくなりました。
    近づいてきた敵に対しては攻撃しますが。

    ユニットIDは使わないようにしました。

    記事番号「13126」TomTomさんへの返信

    私は「おしゃべりノート」というツールでeveなどを作成しています。
    その中でしっかりインデントはしております。

    このタイプの掲示板は「TAB」キーによるインデントが無効になるのでしょうか。
    TomTomさんの言動から察するにそのようなことはないように思えます。
    しかし、実際に無効になってしまっています。

    掲示板にコピー後にインデントをしろというのですか?



引用返信/返信 削除キー/
■13150 / inTopicNo.5)  Re[2]: マルチレス(処理速度問題)
□投稿者/ boltzman -(2004/04/04(Sun) 04:45:34)
    >このタイプの掲示板は「TAB」キーによるインデントが無効になるのでしょうか。
    >TomTomさんの言動から察するにそのようなことはないように思えます。
    >しかし、実際に無効になってしまっています。
    >
    >掲示板にコピー後にインデントをしろというのですか?

    全角スペース使えばインデントっぽいことはできます

    インデントしない
      インデントする
    インデントしない

    こんな風にインデントしてる記事はいくつかあるはずですし。
    つか、直前の記事でGAMEMASTER氏が同じコトやってますな

    せっかく忠告してくれてるんですから、
    文句垂れる前に自分で調べてみるなり考えるなりしましょうや
解決済み!
引用返信/返信 削除キー/
■13153 / inTopicNo.6)  Re[2]: マルチレス(処理速度問題)
□投稿者/ TomTom -(2004/04/04(Sun) 08:27:18)
    これまでも何度か言ってると思いますが、『少しはモノを考えてください』

    現状としてインデントされた記事を書いている人がいるからにはインデントは可能なわけです。
    eveファイルの内容をコピー&ペーストするだけで実現できないなら、他の方はどのように実現しているのか考えるくらいしても、
    バチは当たらないと思うのですが。

    方法としてはboltzmanさんの仰っているとおり、TABの変わりに全角スペースを使用します。
    まさか、一括でTabを全角スペースに変換するくらいのことを面倒だとは言いませんよね?
引用返信/返信 削除キー/
■13155 / inTopicNo.7)  Re[2]: マルチレス(処理速度問題)
□投稿者/ GAMEMASTER -(2004/04/04(Sun) 09:46:58)
http://nagoya.cool.ne.jp/gamemaster/
     GAMEMASTERです。

    > (前略)
    >
    > 記事番号「13125」GAMEMASTERさんへの返信
    >
    > 上記のように改変し、処理速度は向上したのですが、
    > なぜか操作しているキャラクターと同じ陣営のユニットが、移動を行わなくなりました。
    > 近づいてきた敵に対しては攻撃しますが。

     配列「行動対象のキャラクター」と共に配列「移動前」を設定していますが、そのインデックスに設定した番号が同期しておらず(配列「行動対象のキャラクター」の要素数が1つ増えた後で、配列「移動数」のインデックスに「Count(行動対象のキャラクター) + 1」を代入している)、結果として後の配列「移動前」を用いた条件分岐が正常に動作していません。
     以下の通りに修正したところ、移動を行うようになりました。


     ForEach 操作外キャラクター In キャラクター

      If 操作外キャラクター = Args(1) Then

       Skip

      EndIf

      行動対象のキャラクター[(Count(行動対象のキャラクター) + 1)] = 操作外キャラクター

      Set 移動前[Count(行動対象のキャラクター)]

     Next


    > 私は「おしゃべりノート」というツールでeveなどを作成しています。
    > その中でしっかりインデントはしております。
    >
    > このタイプの掲示板は「TAB」キーによるインデントが無効になるのでしょうか。
    > TomTomさんの言動から察するにそのようなことはないように思えます。
    > しかし、実際に無効になってしまっています。
    >
    > 掲示板にコピー後にインデントをしろというのですか?

     記事引用の中においてはTabキーによるインデントが行われているのが確認されましたが、実際に掲示となる際にはそれが無効となる模様です。
     恐らく掲示板の仕様でしょう。対処はご自分で考えて下さい。

     参考になれば幸いです。

     もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信/返信 削除キー/
■13182 / inTopicNo.8)  Re[3]: マルチレス(処理速度問題)
□投稿者/ ドラゴンライダーΦズ -(2004/04/04(Sun) 21:55:59)
http://www2u.biglobe.ne.jp/~songokuu/Default.html
    私はドラゴンライダーΦズです。

    記事番号「13150」boltzmanさんへの返信

    掲示板のインデントに関しては了解しました。
    次からそのようにします。

    記事番号「13155」GAMEMASTERさんへの返信

    これは気づきませんでした。凡ミスですね。

    掲示板のインデントに関しては了解しました。
    次からそのようにします。

    記事番号「13126」TomTomさんへの返信

    掲示板のインデントに関しては了解しました。
    次からそのようにします。


    皆さんありがとうございました。解決です。

解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -