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

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

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

■16077 / inTopicNo.1)  インクルードに想定した動きをさせられません
  
□投稿者/ MR -(2005/02/18(Fri) 13:28:30) [ID:NMowo6Fb]
http://mr-src.hp.infoseek.co.jp
    2005/02/18(Fri) 13:34:39 編集(投稿者)

     編集 見にくかったのでスペース入れました

     はじめての皆様にははじめまして、それ以外の皆様にはこんにちわ、MRです。
     今回は、自作インクルードにおいて想定したものが出来ないため、皆様からアドバイスやミスの指摘などをいただきたいと思い、こちらに書き込ませていただいています。

     現在製作しているインクルードは、サウンドノベルのように文字を表示するものです。それに伴い、文字表示速度をプレイヤーが選択できるようにしたいと思い、以下のようなものを作りました。
     その際、具体的に表示速度がわかるように、画面に表示した速度を表す文字(速い、遅いなど)上にマウスカーソルが乗ると、その真下に、それぞれの速度で文章が表示されるという機能を付けたいと思い、いろいろ試してはみたのですが、
      PaintString - 20 表示速度を選択してください
      Font 14pt ゴシック Reguler
      Font RGB(255,255,255)
      PaintString 40 60 一括
      PaintString 40 100 速い
      PaintString 40 140 普通
      PaintString 40 180 遅い
      HotPoint 一括 40 60 32 16
      HotPoint 速い 40 100 32 16
      HotPoint 普通 40 140 32 16
      HotPoint 遅い 40 180 32 16
      Refresh
     この処理で、一括以下の文字が表示されません。ホットポイントは作られているようなのですが…
     また、マウスカーソルが指定の位置に来てもその下に文章が表示されません。
     以下にテストファイルとインクルードを掲示いたしますので、原因がわかる方や、はっきりとわからないまでも「ここが怪しい」と思った方、もしくは「うちのSRCだと表示されますが」という方、ぜひともご指摘お願いいたします。


    ↓↓ここから下がテスト用ファイルtest.eve内部です↓↓
    <Include.eve>
    プロローグ:
    Show
    表示速度決定
    Exit

    スタート:
    Continue -.eve

    エピローグ:
    Exit
    ↑↑ここまで↑↑

    ↓↓ここから下がInclude.eve内部です↓↓
    表示速度決定:

    Font 16pt ゴシック Regular
    Font RGB(255,255,255)
    PaintString - 20 表示速度を選択してください
    Font 14pt ゴシック Reguler
    Font RGB(255,255,255)
    PaintString 40 60 一括
    PaintString 40 100 速い
    PaintString 40 140 普通
    PaintString 40 180 遅い
    HotPoint 一括 40 60 32 16
    HotPoint 速い 40 100 32 16
    HotPoint 普通 40 140 32 16
    HotPoint 遅い 40 180 32 16
    Refresh


    Switch MouseX
    Case < 40
    Case <= 72
     Switch MouseY
     Case < 60
     Case <= 76
      Font 14pt ゴシック
      PaintString 18 80 このくらいのスピードで表示されます
      Refresh
     Case < 100
     Case <= 116
      For j = 1 To Len(このくらいのスピードで表示されます)
       Font 14pt ゴシック Regular
       Font RGB(255,255,255)
       If j = 1 Then
        PaintString 10 10 Left(このくらいのスピードで表示されます,1)
       Else
        PaintString (j * 18) 10 Mid(このくらいのスピードで表示されます,j,1)
       EndIf
      Refresh
      Wait 1
      Next
     Case < 140
     Case <= 156
      For j = 1 To Len(このくらいのスピードで表示されます)
       For i = 1 To 2
        Font 14pt ゴシック Regular
        Font RGB(127 * i,127 * i,127 * i)
        If j = 1 Then
         PaintString 10 10 Left(このくらいのスピードで表示されます,1)
        Else
         PaintString (j * 18) 10 Mid(このくらいのスピードで表示されます,j,1)
        EndIf
        Refresh
        Wait 1
       Next
      Next
     Case < 180
     Case <= 196
      For j = 1 To Len(このくらいのスピードで表示されます)
       For i = 1 To 3
       Font 14pt ゴシック Regular
       Font RGB(127 * i,127 * i,127 * i)
        If j = 1 Then
         PaintString 10 10 Left(このくらいのスピードで表示されます,1)
        Else
         PaintString (j * 18) 10 Mid(このくらいのスピードで表示されます,j,1)
        EndIf
       Refresh
       Wait 1
       Next
      Next
     Case Else
      ClearPicture 18 60 480 100
      ClearPicture 18 100 480 140
      ClearPicture 18 140 480 180
      ClearPicture 18 180 480 220
      Refresh
     EndSw
    Case Else
     ClearPicture 18 60 480 100
     ClearPicture 18 100 480 140
     ClearPicture 18 140 480 180
     ClearPicture 18 180 480 220
     Refresh
    EndSw

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


    Global 速度
    Switch 選択
     Case 一括
     速度 = 0
     Case 速い
     速度 = 1
     Case 普通
     速度 = 2
     Case 遅い
     速度 = 3
    EndSw

    Return
    ↑↑ここまで↑↑
     他に文章修飾系のインクルードが入っていますが、影響はないと思います。
     それでは、よろしくお願いいたします。
引用返信/返信 削除キー/
■16078 / inTopicNo.2)  Re[1]: インクルードに想定した動きをさせられません
□投稿者/ TomTom -(2005/02/18(Fri) 15:52:52) [ID:CLm6zLb9]
    TomTomです。

    まず、Switchの使い方が間違っていますね。

    > Switch MouseX
    > Case < 40
    > Case <= 72

    このような記述は不可能です。範囲を指定したい場合はIfコマンドで分岐させてください。

    そして、Switchのどの条件にも当てはまらないために最初のSwitchのCase Elseが実行されて、一括以下の表示が消去されています。

    次に入力待ちの処理が間違っています。HotPointの例文では確かにこのような記述になっていますが、
    あくまであれは画面が静止している状態の話です。
    つまり、

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

    この部分でHotPointがクリックされるのを待つだけの処理であり、いくら待っていても先ほどのSwitchの処理には戻りません。

    今回のような場合はDo〜Loop内にSwitchの処理を記述し(もちろんIfを使って書き直した上で、です)、Wait Clickは削除してください。
    (試していませんが、もしかしたらSRCが応答しなくなる可能性があります。その場合、Loopの直前に「Wait 0」と記述してください)

引用返信/返信 削除キー/
■16095 / inTopicNo.3)  Re[2]: インクルードに想定した動きをさせられません
□投稿者/ MR -(2005/02/21(Mon) 18:29:29) [ID:dGGLxALF]
     どうも、MRです。ご指摘ありがとうございます。
     教えていただいたとおりにしてみたところ、思い通りの表示ができました。
     ですが、今度はホットポイントをクリックしても次の処理にいけません。
     そこでWaitを戻すと、クリックしなければ文字表示が始まりませんでした。
     いろいろ試してはみたのですが…。
     ともかく、ここは一つあきらめて素直に『クリックすると速度チェック』というホットポイントを作ってみることにします。

     TomTomさん、ありがとうございました。
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -