GLS Developer's BBS
  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
7 / 17 ツリー ←次へ | 前へ→

ESpriteServerクラスについて。 プロク 03/10/26(日) 23:04
┗ Re:ESpriteServerクラスについて。 L.Entis 03/10/27(月) 22:12
 ┗ Re:ESpriteServerクラスについて。 プロク 03/10/27(月) 23:24

ESpriteServerクラスについて。
 プロク  - 03/10/26(日) 23:04 -

引用なし
パスワード
   ESpriteServerクラスの機能に。
マニュアルより抜粋
>ESpriteServerクラスはEImageSpriteクラスから派生したクラスで、複数のスプ
>ライトを子スプライトに持ち、また自分自身も他のESpriteServerオブジェクトの
>子スプライトなりえます。
について、うまくイメージがつかめず、ためしに幾つかプログラムしていますが、
思ったように動きません。

これは2つのパターンを考えてしまいました^^。
1、スプライト集合の動的親子関係を作れるのだろうか(当初の期待でした^^)
2、スプライトサーバーで作られた静的な2Dのイメージが2Dの形で親サーバーで
取り扱われる。(どうもそのような気が・・・)

2番の場合、子のESpriteServerの中のスプライト変化による画像作成は自分で
管理するのでしょうか?

そのばあい、多数の親子集合があるスプライトの、個々に変化するスプライトの
場合、一つのESpriteServerでやるのが正しい方法でしょうか?
(親子関係は自分で管理かな・・)

以上2点について教えてください。また、親子関係のサンプルソースでもあれば
教えていただければ、とても嬉しいです。
<Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)@actkyo088184.adsl.ppp.infoweb.ne.jp>

Re:ESpriteServerクラスについて。
 L.Entis  - 03/10/27(月) 22:12 -

引用なし
パスワード
    こんにちは、L.Entis です。

▼プロクさん:
> ESpriteServerクラスの機能に。
> マニュアルより抜粋
> >ESpriteServerクラスはEImageSpriteクラスから派生したクラスで、複数のスプ
> >ライトを子スプライトに持ち、また自分自身も他のESpriteServerオブジェクトの
> >子スプライトなりえます。
> について、うまくイメージがつかめず、ためしに幾つかプログラムしていますが、
> 思ったように動きません。

 これだけではまったくどのような状態なのかわからないのですが、私の予想の元に説明させていていただきます。
 その前にまず確認ですが、階層化されていないスプライトの表示は出来ていますでしょうか? これが出来ていない場合には、EntisGLS のサンプル SpriteTest などを参照してください。
 それと、表示したい SpriteServer に対して CreateImage 関数などで画像バッファを作成していますでしょうか? また、AddSprite で追加した子スプライトに対して SetVisible(true) で可視化していますでしょうか?
 とりあえず、先にありがちなミスを先にあげさせていただきました。

 上の問題がない場合、私が想像している状態は、ルートになる ESpriteServer オブジェクトを直接画面表示には使わずに、間接的に利用しようとしているのではないかと思うのですが、とりあえずそのような場合の使い方について説明しておきます。(ドキュメントとかぶりますが)
 ESpriteServer クラスでは、Refresh 関数が呼び出されることによって、更新領域に設定されている領域が、ESpriteServer クラスが保持している画像バッファに再描画されます。
 ESpriteServer::Draw 関数は Refresh 関数を呼び出した後、EImageSprite::Draw 関数を呼び出しているので、子スプライト以下に存在している ESpriteServer オブジェクトについては Refresh 関数を明示的に呼び出す必要はありません。
 更新領域を追加するのは、UpdateRect 関数ですが、通常は任意のスプライトに対する操作を行うと親スプライトの UpdateRect 関数が呼び出されるのでこれも通常は明示的に呼び出す必要はありません。

 SpriteTest サンプルの SpriteTest.cpp の以下の関数を参照してください。
 ここを見れば ESpriteServer クラスの仕組みがご理解いただけるのではないかと思います。

SpriteTest.cpp
346行: void ESpriteWindow::OnPaint( void )
508行: bool ESpriteWindow::UpdateRect( EGL_RECT * pUpdateRect )
<Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)@tokyo-fa2-23.kcom.ne.jp>

Re:ESpriteServerクラスについて。
 プロク  - 03/10/27(月) 23:24 -

引用なし
パスワード
   こんばんわ、プロクです。

▼L.Entisさん、回答有難うございます。
どうもまだGLS全体の把握が出来ずにうまく動かないようです^^;
回答からは、1番の動的な親子関係が出来そうですね、とても嬉しいです。
目的は、コントロールパネルを一つのサーバにまとめて動かそうとしています。
ステージも、まとめて3D的に移動できれば楽ですから^^
もっと色々やってみます。有難うございました。
<Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)@actkyo088184.adsl.ppp.infoweb.ne.jp>

  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
7 / 17 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
9038 C-BOARD v3.02 is not Free?