SRC意見交換掲示板Mk2
(現在 過去ログ52 を表示中)

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

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

■5612 / inTopicNo.1)  ユニット用特殊能力「発光」の提案(ソース付)
  
□投稿者/ しゅぴーれらい -(2007/07/26(Thu) 16:14:56) [ID:eug96uqU]
    はじめまして。
    センエツながら、新機能の提案をいたします。

     私は、ユニット用特殊能力「発光」の追加を提案します。
     本能力は、ステータス画面には表示されず、レベル指定は無意味です。
    Nightコマンドによってマップ全体を暗く表示する際に、
    本能力を持つユニットが暗くならないように(タイル画像は暗くなる)し、
    結果として発光しているように見えるというものです。
    また、Nightコマンド以外のマップ色調変更コマンドには何の影響もありません。

     従来は、Nightコマンドの"マップ限定"オプションによって、
    マップ上の全ユニットを暗くさせないか、マップ上の全ユニットを暗くさせるか、その二択しか選択肢がありませんでした。
    これでは特定のユニットだけ元の色のままにしたいと思っても不可能です。
    おそらく、インクルードなどでサブルーチンを使っても不可能か、少なくとも困難でしょう。
    また、Nightコマンドの"マップ限定"オプションでは、タイル画像も暗くならなくなるので、発光しているユニットの表現としては少し無理があります。
     以上の理由で今回の提案をいたしました。

    なお、以下のようなソースコードの変更を考えています。
    もとにしたソースコードはバージョン2.3.1のものです。
    ・「GUI.bas」の3890行目付近(サブルーチン"LoadUnitBitmap"内)
    'ユニット画像を二重に上塗りするのを防ぐために
    '条件式を追加
    'ret = TransparentBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
    ' .picTmp32(0).hDC, 0, 0, 32, 32, vbWhite)
        l
        V
    If Not (MapDrawMode = "夜") _
      Or MapDrawIsMapOnly _
      Or use_orig_color Then
      ret = TransparentBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
        .picTmp32(0).hDC, 0, 0, 32, 32, vbWhite)
    End If
    ・「GUI.bas」の3920行目付近(サブルーチン"LoadUnitBitmap"内)
    'ユニット画像を二重に上塗りするのを防ぐために
    '条件式を追加
    'ret = BitBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
    ' .picTmp32(2).hDC, 0, 0, SRCERASE)
    'ret = BitBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
    ' .picTmp32(0).hDC, 0, 0, SRCINVERT)
        l
        V
    If Not (MapDrawMode = "夜") _
      Or MapDrawIsMapOnly _
      Or use_orig_color Then
        ret = BitBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
          .picTmp32(2).hDC, 0, 0, SRCERASE)
        ret = BitBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
          .picTmp32(0).hDC, 0, 0, SRCINVERT)
      End If
    ・「GUI.bas」の3960行目付近(サブルーチン"LoadUnitBitmap"内)
      Select Case MapDrawMode
        Case "夜"
          GetImage .picTmp32(1)
          Dark
          SetImage .picTmp32(1)
        Case ・・・
        l
        V
      ' ユニットが"発光"の特殊能力を持つ場合、
      ' ユニット画像を、暗くしたタイル画像の上に描画する。
      Select Case MapDrawMode
        Case "夜"
          GetImage .picTmp32(1)
          Dark
          SetImage .picTmp32(1)
          If u.IsFeatureAvailable("発光") Then
            If UseTransparentBlt Then
              ret = TransparentBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
                .picTmp32(0).hDC, 0, 0, 32, 32, vbWhite)
            Else
              ret = BitBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
               .picTmp32(2).hDC, 0, 0, SRCERASE)
              ret = BitBlt(.picTmp32(1).hDC, 0, 0, 32, 32, _
               .picTmp32(0).hDC, 0, 0, SRCINVERT)
            End If
          End If
        Case ・・・
    ・また、「Unit.cls」の980行目付近(関数"FeatureNameInt"内)で、非表示にする特殊能力名のCase文に"発光"を追加

    もしかすると、この機能には需要がないかもしれませんが、これを追加することによって、全体がぼんやり光っているユニットの表現が可能になります。

    このソースコード、この新機能、あるいはこの書き込み自体に問題があるのなら
    出来るだけ速やかに修正いたします。

    ご意見お待ちしております。
引用返信/返信 削除キー/
■5618 / inTopicNo.2)  Re[1]: ユニット用特殊能力「発光」の提案(ソース付)
□投稿者/ しゅぴーれらい -(2007/08/14(Tue) 13:44:49) [ID:O5ZLbZjJ]
    だいぶ長めに待ってみましたが、異論も代案もないようですので、
    上記のとおりの提案を投稿いたします。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -