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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
1008
corner0530OBAQについて5解決


corner0530

リンク

2018/10/8(Mon) 15:59:38|NO.85537

OBAQについての質問です。
以下のコードで、オブジェクトが5個出るようにしたにもかかわらず、きちんと全部出てきません。
どこを直せばよいのか教えていただけると嬉しいです。よろしくお願いします。

#include "obaq.as" winx=640:winy=480 ;画面のサイズ sizex=5:sizey=5 ;オブジェクトのサイズ kazu=5 ;オブジェクトの数 dim obj,kazu ;配列変数の作成 dim objx,kazu dim objy,kazu dim qobjx,kazu dim qobjy,kazu screen 0,winx,winy title "OBAQ" randomize qreset ;OBAQの用意 ;qcnvaxis qwinx,qwiny,winx,winy,1 ;座標変換 repeat kazu objx(cnt)=rnd(winx) objy(cnt)=rnd(winy) qcnvaxis qobjx(cnt),qobjy(cnt),objx(cnt),objy(cnt),1 qaddpoly obj(cnt),3,qobjx(cnt),qobjy(cnt),,sizex,sizey loop *main redraw 0 color:boxf qexec qdraw redraw 1 await 20 goto *main



この記事に返信する


リンク

2018/10/8(Mon) 16:43:47|NO.85538

OBAQは詳しくないので適当に試してみた限りの推察になりますが
qaddpolyする時に、外壁や他オブジェクトと重なっていると
新しいオブジェクトが作成されないのではないでしょうか。

objx(cnt)=100.0+cnt*50 objy(cnt)=100.0
とかだと表示されます。



corner0530

リンク

2018/10/9(Tue) 22:11:31|NO.85541

できればランダムの座標にオブジェクトを作りたいんですけどそれは厳しいですかね?



あらや

リンク

2018/10/9(Tue) 22:21:18|NO.85542

衝突判定を一部(もしくは完全に)無効化すれば
位置が重なっても配置できます。
http://hsp.tv/play/pforum.php?mode=all&num=85270

衝突判定を無効化したくなければ
ランダムな座標に配置する前に、

空いているスペースを探す処理してから
『空きスペース内でランダムに配置する』という方法を考えてみてはいかがでしょうか。



corner0530

リンク

2018/10/9(Tue) 23:36:56|NO.85543

あらやさん
オブジェクトを出現させたフレームでは衝突の検出を無効にし、次のフレームでは検出できるようにするということは可能でしょうか?



corner0530

リンク

2018/10/9(Tue) 23:44:01|NO.85544

連投すみません。

qaddpoly var,shape,x,y,r,sx,sy,colsw,mygroup,exgroup,loggroup
上記のqaddpoly命令でcolswにあたるパラメーターを0にしたら重複した状態でも出現させることができました。
お二方ありがとうございました。



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