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

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

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

■21346 / inTopicNo.1)  Talk中のHotPointに関して
  
□投稿者/ えんぴつ -(2009/02/07(Sat) 02:04:57) [ID:NYqlsbFC]
    こんばんは、えんぴつと申します。
    現在制作中のシナリオで、プロローグやエピローグのTalkコマンド中に
    用語解説を見れるようにインクルードを弄っているのですが、

    ############インクル

    # 書式:ふれーむ 始点X 始点Y 終点X 終点Y
    ふれーむ:
    Line Args(1) Args(2) Args(3) Args(4) BF #000032
    Line Args(1) Args(2) Args(3) Args(4) B #7878ff
    Line (Args(1) + 1) (Args(2) + 1) (Args(3) - 1) (Args(4) - 1) B #5050ff
    Return



    用語解説:

    # フレームを作成
    ふれーむ Args(2) Args(3) (Args(2) + Args(4)) (Args(3) + Args(5))

    # ローカル変数宣言
    Local StrWidth StrHeight
    #「文字」の幅を取得
    StrWidth = TextWidth(Args(1))
    #「文字」の高さを取得
    StrHeight = TextHeight(Args(1))

    # ローカル変数宣言
    Local PosX PosY
    # X座標を取得
    PosX = Args(2) + (Args(4) - StrWidth) / 2
    # Y座標を取得
    PosY = Args(3) + (Args(5) - StrHeight) / 2

    # 文字列を描画
    PaintString PosX PosY Args(1)

    # ホットポイントを作成
    HotPoint Args(1) Args(2) Args(3) Args(4) Args(5) Args(6)
    Refresh

    Return

    #注:インクルリズム @ Wiki で掲載されているものを拝借させて頂きました。


    ############eveファイル側

    Talk

    Suspend

    用語解説 解説したい用語 5 70 120 20

    Do
    Wait Click
    Loop While (選択 = "")

    If 選択 = 解説したい用語 Then

    ふれーむ 20 70 460 450

    Font

    Font 14pt

    PaintString - 80 解説したい用語

    Line 80 110 420 112 BF #7878ff

    Font 12pt

    PaintString 30 135 説明。

    Refresh

    Wait Click

    ClearObj
    ClearPicture 0 70 460 450
    Refresh

    EndIf

    Talk


    ##################

    HotPointで画面の指定した範囲をクリック→用語の解説を表示という感じのプログラムを作ったのですが、
    これだとHotPointを必ずクリックしなければTalk コマンドの続きが読めないために
    解説を読みたくないプレイヤーに不親切な作りになってしまい、困っています。

    理想としては、Call 用語解説 を行った後のTalkコマンド中は
    いつでもHotPointを押して解説文を読めるという感じにしたいのですが、
    そういったプログラムは可能でしょうか?

    ・一点だけ、会話インクルードの使用は極力控えたいと思います。


    ぜひ御教授くださいますよう、よろしくお願いします。
引用返信/返信 削除キー/
■21349 / inTopicNo.2)  Re[1]: Talk中のHotPointに関して
□投稿者/ Mr -(2009/02/09(Mon) 11:34:23) [ID:xu962QgY]
    なかなか野心的な試みで良いことだなあと思いつつ。
    試してないので違うかもしれませんが、クリック待ちのDoコマンド外せば想定した動作になりませんかね?選択が空でも先に進めるように。
    もしくは、Hotpointを使わずに「クリックした直後のマウスの座標が指定範囲にあるか」を取得して処理を分ければスムーズに動くのではないかと。
引用返信/返信 削除キー/
■21353 / inTopicNo.3)  できました。しかし少々問題が
□投稿者/ えんぴつ -(2009/02/09(Mon) 17:31:15) [ID:NYqlsbFC]
    2009/02/09(Mon) 18:00:12 編集(投稿者)

    返信ありがとうございます。
    試してみたところ、HotPointは
    Do〜Loop Whileがないと機能しないみたいですね。
    後者に回答を頂いたMouseX、MouseYの変数を用いたところより理想的な動作をするようになりました。ありがとうございます。
    しかし、少し問題が発生しまして……

    Talk

    Suspned
    Call 辞典内容

    Talk

    Suspend
    Call 辞典内容

    …以下数行繰り返し

    #eveファイルの下段

    辞典内容:

    If (5 <= MouseX) And (MouseX <= 125) And (70 <= MouseY) And (MouseY <= 90) Then


    ふれーむ 20 70 460 450

    Font

    Font 14pt

    PaintString - 80 解説したい用語

    Line 80 110 420 112 BF #7878ff

    Font 12pt

    PaintString 30 135 説明。

    Refresh

    Wait Click

    ClearPicture 0 70 460 450
    途中辞典 解説したい用語 5 70 120 20
    Refresh

    EndIf

    Return


    Callコマンドで呼び出すようにしたのは良いのですが
    少し容量が膨らんでしまって困りました。
    私のサブルーチン構築能力も甘いので、何か良い知恵を頂けたらと思います。
    ※かなり無茶な要求で誠に申し訳ありません。


    それでは。

引用返信/返信 削除キー/
■21356 / inTopicNo.4)  Re[3]: できました。しかし少々問題が
□投稿者/ Mr -(2009/02/10(Tue) 09:04:50) [ID:xu962QgY]
    シナリオのeveファイルが大きくなるのが嫌なら、別のeveファイルに書いておいてインクルードすると良いでしょう。
    やり方はヘルプのシナリオ作成あたりに書いてあります。
引用返信/返信 削除キー/
■21357 / inTopicNo.5)  度々ありがとうございます。
□投稿者/ えんぴつ -(2009/02/10(Tue) 22:51:55) [ID:NYqlsbFC]
    そうですね。
    インクル化できるところは全てやっておいた方が軽量化に繋がると聞きますし
    後は自分の工夫次第なんで、頑張ってみます。

    質問にお付き合い頂き、ありがとうございましたm(   )m
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -