HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0801
kennEasy3d小窓にレンダリング2解決


kenn

リンク

2012/8/1(Wed) 10:39:24|NO.48077

こんにちわ、いまeasy3dでゲームを作っているのですが
メイン画面に、キャラが表示されてるとしますよね。
そしてあるキーを押したら、右上に小さく小窓のようにキャラを上から移したシーンをレンダリングしたいなと思ったのですが。
ここで質問なんですが、自分では以下のスクリプトで小窓に別シーンのレンダリングが可能ではないかと思いましたが。
(考え方としては、winobjで右上にオブジェクトを配置しそれにレンダリングするという考え方です)
両方のscidに同じ数値が代入されているようで、E3DInit の使い方を間違えているんでしょうか?
ほかの方法はありませんか、ヒントでもいいのでお願いします。

*easy3dサンプルe3dhsp3_0.hsp をいじって作ったので実行はe3dhsp3_0.hsp と同じ階層で実行お願いします。

//3Dモデルを表示するだけのサンプルです。(最小構成) ; e3dhsp.dll test script #include "e3dhsp3.as" #module #deffunc waitbyfps int p1, var fps E3DWaitbyFPS@ p1, fps await 0 return #global dim keybuf, 256 ;file のpath 用のバッファーの作成 pathlen = 2048 sdim mediadir, pathlen mediadir = dir_cur + "\\Media" sdim pathbuf, pathlen, 2 screenw = 640 : screenh = 480 screen 0, screenw, screenh, 1 pos screenw - 200 , 0 objsize 200,200 winobj "STATIC", "", 0, $54000000 objid1 = stat ;初期化 E3DInit 0, objid1, 0, 32, 0, view E3DInit 0, -1, 0, 32, 0, scid ;カメラの初期化 camposx = 0.0 : camposy = 800.0 : camposz = -2000.0 E3DSetCameraPos camposx, camposy, camposz camdegxz = 180.0 : camdegy = 0.0 E3DSetCameraDeg camdegxz, camdegy //猫データ読み込み pathbuf.0 = mediadir + "\\can.sig"//\\poo\\poo.sig" E3DSigLoad pathbuf.0, hsid E3DSetPos hsid, 0.0, 0.0, 0.0 *main ; keybuf変数は、メインループの外で、dim keybuf, 256 として、確保しておいてください。 E3DGetKeyboardState keybuf if keybuf.VK_ESCAPE = 1 : goto *bye ; [ESC]で終了 E3DBeginScene view E3DChkInView view, hsid ;不透明部分の描画をする E3DRender view, hsid, 0, 0, 0 ;半透明部分の描画をする E3DRender view, hsid, 1, 0, 0, 0, 0, 1 E3DEndScene E3DPresent view E3DBeginScene scid E3DChkInView scid, hsid ;不透明部分の描画をする E3DRender scid, hsid, 0, 0, 0 ;半透明部分の描画をする E3DRender scid, hsid, 1, 0, 0, 0, 0, 1 E3DEndScene E3DPresent scid waitbyfps 60, chkfps1 goto *main *bye E3DBye end



この記事に返信する


おちゃっこ

リンク

2012/8/1(Wed) 12:25:35|NO.48078

E3DInitを複数回呼び出すのは反則です。
そういうときはスワップチェイン(SwapChain)を使います。
e3dhsp3_SwapChain.hspを見てください。
スワップチェインはフルスクリーンでは使えない点に注意してください。



kenn

リンク

2012/8/1(Wed) 16:20:13|NO.48079

>E3DInitを複数回呼び出すのは反則です。
>そういうときはスワップチェイン(SwapChain)を使います。
反則ですか、、、
なるほどそういう命令があるんですね、ありがとうございました。
勉強不足でした。
どうもありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.