トップページ > 記事閲覧
SetDrawAreaの固定について
名前:S.I 日時: 2016/03/14 01:52

お世話になっております。 SetDrawArea関数の幅(x1,x2)または高さ(y1,y2)のみを変更する関数を作成して頂けるでしょうか? 特定の範囲において、文字を横にスライド中に縦に移動して隠すといった処理を行う場合、 1.隠すブロック(DrawBoxなど)を用意する 2.その領域を描画するクラスを作り、SetDrawArea用のローカル変数を用意する 3.移動してくる文字の座標から描画領域を計算する のいずれかを行うことになります。 しかし、 1は描画領域を指定する毎にDrawBoxを呼ぶことになってしまう 2はSetDrawAreaによってコードが左右されてしまう 3は文字の縦幅を取得する関数がないため方向が限定されてしまう ということになってしまいます。 上記以外にはソースを直接弄るというのも考えられますが、 更新の度に書き換えるのは・・・となりますので、よろしくお願いします。
メンテ

Page: 1 |

Re: SetDrawAreaの固定について ( No.1 )
名前:yumetodo 日時:2016/03/14 02:03

>文字を横にスライド中に縦に移動して隠す どういう状況か理解できませんでしたが(何が縦に移動するの)文字列を事前にMakeScreenとかして置いた場所に描画しておけばいいのでは?
メンテ
Re: SetDrawAreaの固定について ( No.2 )
名前:S.I(解決) 日時:2016/03/14 04:42

> どういう状況か理解できません 状況をどのように説明すれば分かりやすく簡潔になるのかが分からないのです。 もう一度具体的に言いますと、SetDrawAreaを使って範囲内の幅で横に流れる文字(テロップ)を 描画範囲の高さと幅を決めたフィールドへ縦にn個になるまで追加し、n個超えたら文字を 流しながらフィールド外へ移動する(隠れる)機能を作っております。 つまり、フィールドのDrawAreaの幅と高さを指定し、テロップで決めるDrawAreaは幅のみを変更したい(フィールドの高さのまま) ということです。 説明下手で申し訳有りません; > 文字列を事前にMakeScreenとかして置いた場所に描画しておけばいいのでは? MakeScreenを用いたところ上記の動作をさせることができました。 ほとんど使ったことがなかったのでこれからは重宝しそうですv(^^ ありがとうございます。 ただ、気になった点として、処理が少し重たくなるのかなと感じたところです。 文字はほぼ動き続けるため、SetDrawScreenで切り替えた時にClearDrawScreenする必要があります。 検証のために1度のループに1000回ClearDrawScreenしてみたところ、低スペックのVM環境では若干速度の低下が見られました。 使用頻度に注意したほうがいいのかもしれませんね。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存