|
|
2017/11/2(Thu) 10:23:14|NO.81766
hgimg4の2DオブジェクトにOBAQやhgimg4の物理属性(gppbind)の適用は可能でしょうか?
可能だとしたらどんなスクリプトを書けばよいでしょうか。
2Dオブジェクトはgpsprで生成したものを使用したいです。
|
|
2017/11/2(Thu) 22:08:52|NO.81767
ちょっとずれてますがまずはOBAQと組み合わせてみました。
koma.png は同梱されている hsptvフォルダのものを指定してください。
#include "hgimg4.as"
#include "obaq.as"
#const WID_CELL 1
setreq SYSREQ_VSYNC, 1
gpreset
celload "..\\..\\hsptv\\koma.png", WID_CELL
celdiv WID_CELL, 75,80, 75/2, 80/2
dim vids,5
foreach vids
gpspr id, WID_CELL, cnt
vids.cnt = id
loop
// OBAQ
w = ginfo(26) / 4
h = ginfo(27) / 4
qreset
qborder -w/2, -h/2, w/2, h/2
dim qids,5
foreach qids
qaddpoly id, 5, 20 + cnt*12, 20 + cnt*16, 0, 75.0/8.0, 80.0/8.0
qdamper id, 0.999, 0
qids.cnt = id
loop
repeat
redraw 0
color 0,0,0x33
boxf
qexec
foreach qids
qgetpos qids.cnt, xx, yy, aa
setpos vids.cnt, xx * 4.0, yy * 4.0, 0.0
setang vids.cnt, 0,0, aa
loop
gpdraw
redraw 1
await 1000/60
loop
|
|
2017/11/3(Fri) 10:28:18|NO.81773
砂時 計さま
詳細なサンプルをありがとうございます。
座標計算をさせているのですね、
分かりやすいサンプルありがとうございます。
参考にさせていただきます
|
|
2017/11/3(Fri) 19:08:15|NO.81778
obaq使うならqcnvaxisでスクリーン座標にも逆変換もきる
#include "hgimg4.as"
#include "obaq.as"
#const WID_CELL 1
setreq SYSREQ_VSYNC, 1
gpreset
celload dirinfo(5)+"\\koma.png", WID_CELL
celdiv WID_CELL, 75,80, 80/2, 80/2
max=20
dim vids,max
foreach vids
gpspr id, WID_CELL, cnt\5
vids.cnt = id
loop
// OBAQ
w = ginfo(26)
h = ginfo(27)
qreset
qcnvaxis qw,qh,w, h,1
qborder -qw/2, -qh/2, qw/2, qh/2
qcnvaxis qcw,qch,80.0/2,80.0/2,1
dim qids,max
foreach qids
qcnvaxis qx,qy,50+60*(cnt\10),150+50*(cnt\10)-80*(cnt/10),1
qaddpoly id, 5, qx,qy, 0, qcw,qch,0
qdamper id, 0.999, 0
qids.cnt = id
loop
repeat
redraw 0
color 0,0,0x33
boxf
qexec
foreach qids
qgetpos qids.cnt, qx, qy, aa
qcnvaxis x, y, qx, qy,0
setpos vids.cnt, x, y, 0.0
setang vids.cnt, 0,0, aa
loop
gpdraw
redraw 1
await 1000/60
loop
|
|
2017/11/4(Sat) 19:20:02|NO.81785
暇人さんフォローありがとうございます。
さてgppbindの方ですが
gpspr は gppbind しても物理演算の対象にならないみたいですね。
ちょっとくやしいので無理矢理 gpbox の位置を反映してするコードを書いてみました。
#include "hgimg4.as"
#const WID_CELL 1
#const ALPHA 0
//#const ALPHA 255
setreq SYSREQ_VSYNC, 1
gpreset
celload dirinfo(5)+"\\koma.png", WID_CELL
celdiv WID_CELL, 75,80, 80/2, 80/2
max=20
dim vids,max
foreach vids
gpspr id, WID_CELL, cnt\5
vids.cnt = id
loop
dim bids, max
foreach bids
gpbox id, 1.6, 0xff0000
setpos id, double(cnt-max/2)*0.5, 5.0, double(cnt&5)*0.8
gppbind id, 1.0
gppset id, GPPSET_FRICTION, 0.1, 1.0
setalpha id, ALPHA
bids.cnt = id
loop
// 床
gpfloor id, 50,50, 0x009900
setpos id, 0,-4,0
gppbind id, 0
setalpha id, ALPHA
setpos GPOBJ_CAMERA, 0,20,1
gplookat GPOBJ_CAMERA, 0,0,0
repeat
redraw 0
color 0,0,0x33
boxf
foreach bids
getpos bids.cnt, x,y,z
gpcnvaxis xx,yy,zz, x,y,z
setpos vids.cnt, xx,yy,zz
loop
gpdraw
redraw 1
await 1000/60
loop
|
|
2017/11/5(Sun) 17:59:31|NO.81789
暇人さま、砂時 計さま。
追加のサンプルありがとうございます。
gpcnvaxisか機能していなかったので
ようやくHSP35の正式版をインストールしました。
まだ理解が追い付いていませんが、参考にさせていただきますm(__)m
|
|