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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1118
RiceHGIMG3でカメラ外のオブジェクトのID取得9未解決


Rice

リンク

2015/11/18(Wed) 22:59:42|NO.73112

HGIMG3でカメラ外のオブジェクトのIDを取得するにはどうすればいいでしょうか?
教えてください!できればでいいですのでサンプルください!!!



この記事に返信する


Rice

リンク

2015/11/19(Thu) 11:19:12|NO.73117

どうしよう....



とおりすがり

リンク

2015/11/19(Thu) 15:41:48|NO.73119

regobjでオブジェクトを作成するときにIDは変数に代入されます
それ以外でID取得する方法はありません



Rice

リンク

2015/11/19(Thu) 16:11:53|NO.73120

私は、カメラ外(画面外)に表示されているオブジェクトのIDを取得したいんです。



とおりすがり

リンク

2015/11/19(Thu) 17:07:25|NO.73121

カメラに映っていないオブジェクトですか
それぞれのオブジェクトの3d座標は取得できるのでそれをスクリーン座標に変換する必要がありますね
いなえさんの講座が参考になりそうです
http://www.geocities.jp/inaeggmon/hgimg3/03-04.html
フラグ付き座標変換を参考してみてください



Rice

リンク

2015/11/19(Thu) 17:50:22|NO.73123

ソースを何時間か見ましたが自分にはちんぷんかんぷんです...
どうすればいいのでしょうか?...



とおりすがり

リンク

2015/11/19(Thu) 18:55:06|NO.73124

いなえさんの講座でモジュールつかっていますが、目的を達成するだけならモジュールの中身がどうなっているか
知る必要はありません
ちなみにモジュールの使い方はわかりますか?



KA

リンク

2015/11/19(Thu) 19:02:33|NO.73125

>>いなえさんの講座が参考になりそうです
17:07

>>ソースを何時間か見ました
17:50

笑いどころ?



Makoto

リンク

2015/11/19(Thu) 21:35:58|NO.73127

単にスクリーン座標に変換するだけなら、
先のいなえさんの講座にも書いてありますが、
hgcnvaxis を使えば簡単に変換できます。

その講座は、あえてその命令を使わずに
スクリーン座標への変換方法を理解するという内容ですから
変換する目的には hgcnvaxis を使えば済みます。

その上で、さらに理解を深めたいと思ったら
じっくりと読んでいけばいいと思います。



暇人

リンク

2015/11/19(Thu) 22:18:44|NO.73130

1命令で目的を果たせる命令は無いので
画面外のオブジェクトに何をしたいか分からないため
この方法が有効かは分からない

#include "hgimg3.as" screen 0,640,480,0 cls 4 hgini setfont 16,16,12,1 ; font Tex select(cx,cy,px,mode) texload dir_exe+"\\sample\\hgimg3\\fontchr.bmp" ; フォントテクスチャの登録 ; BOXオブジェクトを登録 ; setsizef 1.0, 1.0 ; BOXのXYZサイズ setuv 0,0,127,127 ; テクスチャUV座標 addbox mdid ; BOXモデルを作成 texload dir_exe+"\\sample\\hgimg3\\btex.bmp" ; テクスチャの登録 repeat 30 regobj obj,mdid ; BOXモデルをオブジェクトとして登録 setpos obj,10-rnd(20),10-rnd(20),-rnd(50) setcoli obj,1,2 //検索に必要なグループ設定 loop ; カメラ位置設定 ; selcpos objset3 0.0, 0.0, 0.0 *main ; 描画メイン ; hgdraw ; 描画処理 outcnt=0 findobj 0,1 //グループ1を検索設定 repeat nextobj oid //検索 if oid<0 {break}//無かった getpos oid,x,y,z hgcnvaxis var_x,var_y,var_z,x,y,z if var_x<0 or var_y<0 or var_z<0.0 or var_x>640 or var_y>480 or var_z>1.0 {//オブジェクト中心がカメラ外 //画面左側にIDを並べて表示 fprt ""+oid,(outcnt/20)*40,(outcnt\20)*16 outcnt++ }else{//オブジェクト中心がカメラ内 //オブジェクトのスクリーン座標にID表示 fprt ""+oid,var_x,var_y } loop hgsync 16 ; 時間待ち stick k,127 if k&128 : goto *owari ; [ESC]で終了 ; キー操作でカメラ回転 ; (スペースキー押しで移動) ; if k&16 { selcpos if k&2 : objadd3 0.0, -0.05, 0.0 if k&8 : objadd3 0.0, 0.05, 0.0 if k&4 : objadd3 0.05, 0.0, 0.0 if k&1 : objadd3 -0.05, 0.0, 0.0 } else { selcang if k&1 : objadd3 0.0, 0.01, 0.0 if k&4 : objadd3 0.0, -0.01, 0.0 if k&2 : objadd3 0.01, 0.0, 0.0 if k&8 : objadd3 -0.01, 0.0, 0.0 } goto *main *owari end



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