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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0327
おぼOBAQの物理エンジンでの画像の表示について12解決


おぼ

リンク

2017/3/27(Mon) 19:36:57|NO.78684

お世話になっています。おぼです。

物理エンジンOBAQを使ったサンプルが、

「はじめてのプログラミングHSP3.4+3Dish」

に収録されていましたのでためしてみたのですが、どうも殺風景なのです。

背景やオブジェクトに画像を使うことはできないのでしょうか?(画像とは、BMP・JPEG・PNGなどの形式のもの)

使えるのでしたらどういう風に設定すればよいのか、具体的に(ソースなどの引用でお願いします。)ご教授願います。

http://www.geocities.jp/inaeggmon/obaq.html
ここも参考にしたのですが、そういう記述がありませんでした。

よろしくお願いいたします。



この記事に返信する


kanamaru

リンク

2017/3/27(Mon) 21:55:32|NO.78686

背景は分かりませんが、オブジェクトに画像を使うには、
提示されていたサイトの8.2のスプライトという所を参照してください。



kanamaru

リンク

2017/3/27(Mon) 21:58:30|NO.78687

見逃してました。
同じサイトの8.4マテリアル表示パラメータという所に背景の変更について書かれています。



おぼ

リンク

2017/3/28(Tue) 00:47:26|NO.78689

解答くださりありがとうございます。

おっしゃるように、内部での画像生成の場合はご指摘の方法でよいように思いますが、外部から持ってきた画像をはめ込む場合はどうなのかが分かりませんでした。

外部から持ってきた画像ファイルの画像をOBAQでオブジェクトに使う方法が分かりません。

まだ日が浅いので、変なことを書いてしまっている可能性があるので、すいません。

よろしくお願いします。



seasalt

リンク

2017/3/28(Tue) 01:39:56|NO.78691

このサイトのサンプルでは内部で画像を生成していますが、picloadで画像を読み込めば
同じやり方で画像を貼り付けられますよ。

buffer 1
color ,255:boxf
color:mes "12"

の所を、

buffer 1
picload “任意の画像.jpg“

とでも変えて試してみてください。



おぼ

リンク

2017/3/28(Tue) 01:41:59|NO.78692

おぼです。

補足です。

今回、私が質問しているOBAQでの外部の画像読み込みができれば、Unity+C#で物理ゲームアプリを作るよりもHSPの3Dishで実装したほうがより簡単にできることが証明できるのではないだろうか?という思いから質問を書きました。

C#は専門ではないので、HSPでできれば・・・。と思いました。

よろしくお願いいたします。



おぼ

リンク

2017/3/28(Tue) 02:02:41|NO.78693

たびたびすいません。おぼです。

解答くださりありがとうございます。

>seasaltさん

以下のようにして実行したのですが、どうもうまくいきませんでした。

どこがまずかったのかわからなかったので、ソースを引用しました。ご指摘いただけると助かります。

まだまだHSPのことが分かっていないのでよろしくお願いいたします。



#include "obaq.as"
//画像の用意
buffer 1
picload "000.jpg"
//color ,255:boxf
//color:mes "12"
celdiv 1,16,16,0,16
screen 0,320,240:title "OBAQ"
qreset
qborder -40,-30,40,30
qaddpoly obj1,4,40,40,,5,5
qaddpoly obj2,4,40,20,,5,5
//マテリアルパラメータの設定
qmat obj1,mat_spr,1,0
qmat obj2,mat_spr2,1,1
*main
redraw 0
color:boxf
qexec
qdraw 1
redraw
await 20
goto *main



あり

リンク

2017/3/28(Tue) 08:26:15|NO.78694

OBAQでは背景について2種類の使い方があります。
一つはウィンドウに直接描画する方法でgcopyやcelput等を使います。
もう一つはオブジェクトID0が外壁になっているのでqmatで画像を設定することで
外壁オブジェクトを背景として使うことも出来ます。
また外壁も他のオブジェクトと同じように操作出来るのでこういうことも。
#include "obaq.as"
//画像の用意 celload dir_tv+"\\hsptv_img.bmp", 1 //キャラクター画像 celload dir_tv+"\\sozai2.jpg", 2 //外壁用背景画像 celload dir_tv+"\\sozai4.jpg", 3 //ウィンドウ用背景画像 celdiv 1,64,64,32,32 screen 0,400,300:title "OBAQ" qreset qborder -40,-30,40,30 qaddpoly obj1,4,40,40,,5,5 qaddpoly obj2,4,40,20,,5,5 //マテリアルパラメータの設定 qmat obj1,mat_spr,1,40 qmat obj2,mat_spr2,1,41 qmat 0,mat_spr,2 //外壁オブジェクト(ID=0)に背景画像を設定 qtype 0,type_bindR,2 *main redraw 0 ;color:boxf pos 0, 0 : celput 3 //背景画像をウィンドウに直接描画 color 255:pos 0,0 : mes "ここはオブジェクトではない" qexec qspeed 0,,,0.002,2 //外壁を回転させる qdraw 0 redraw await 20 goto *main



おぼ

リンク

2017/3/28(Tue) 19:53:38|NO.78697

解答くださりありがとうございます。おぼです。

>>ありさん

わかりやすいソースをありがとうございます。

//画像の用意
celload "224.png", 1 //キャラクター画像
celload "002.png", 2 //外壁用背景画像
celload "004.png", 3 //ウィンドウ用背景画像
celdiv 1,64,64,32,32

のようにして試してみました。

外壁とウィンドウの画像は、自動で拡大縮小され表示されたのですが、キャラクターのほうは画像の切れたものが表示され、拡大縮小されませんでした。キャラクターの画像を拡大縮小させるにはどうすればいいですか?あるいは、サイズが決まっているのでしょうか?

たびたびすいませんがご教授轅れば助かります。

よろしくお願いいたします。



あり

リンク

2017/3/28(Tue) 22:03:02|NO.78700

使おうとしている画像がceldivの分割設定と合っていないか
qmatの設定が間違っているのでは?
celdivのヘルプを読んで使い方が合っているのか確認してみて下さい。
読み込んだ画像が正常であるならceldivかqmatの数値を弄れば
変化が見られるはずです。

また、提示されるサンプルはあくまでそのサンプル用の画像に
合わせた設定を使っているのでそのままでは他の画像に適合しません。
よって使う画像に応じた数値は自分で計算or試行錯誤して見つけて下さい。



おぼ

リンク

2017/3/29(Wed) 03:21:41|NO.78705

解答くださりありがとうございます。おぼです。

>>ありさん

いろいろいじっていると、何とか表示できました。ありがとうございました。celdivとqmatの設定を変えるとうまくいきました。ソースを載せておきます。

obaq.hsp

#include "obaq.as"

//画像の用意
celload "100.png", 1 //キャラクター画像
celload "002.png", 2 //外壁用背景画像
celload "004.png", 3 //ウィンドウ用背景画像
celdiv 1,64,64,32,32

screen 0,400,300:title "OBAQ"
qreset
qborder -40,-30,40,30
qaddpoly obj1,4,40,40,,5,5
qaddpoly obj2,4,40,20,,5,5
//マテリアルパラメータの設定
qmat obj1,mat_spr,1,0
qmat obj2,mat_spr,1,0
qmat 0,mat_spr,2 //外壁オブジェクト(ID=0)に背景画像を設定
qtype 0,type_bindR,2

*main
redraw 0
;color:boxf
pos 0, 0 : celput 3 //背景画像をウィンドウに直接描画
color 255:pos 0,0 : mes "ここはオブジェクトではない"
qexec
qspeed 0,,,0.002,2 //外壁を回転させる
qdraw 0
redraw
await 20
goto *main

注意 100.pngは640x640のパターン画像を使用。「celdiv 1,64,64,32,32」と整合性が取れるようにすること。
注意◆qmat obj1,mat_spr,1,0の設定は、selputの引数の応用で。



おぼ

リンク

2017/3/29(Wed) 03:28:32|NO.78706

おぼです。

OBAQを使ったプログラムの実行例を見ていて疑問に思ったのですが、第一オブジェクトの中心には赤色の点、第二、第三は青、黄色と点が表示されているのですが、あれは消すことはできないのでしょうか?ひょっとすると仕様でしょうか?

取り除く設定をご存知の方おられましたら、ぜひご教授願います。結構気になってしまう感があるのでできればあの点は非表示にしたいです。

よろしくお願いいたします。



おぼ

リンク

2017/3/30(Thu) 03:51:28|NO.78720

おぼです。

質問内容が表題と違ってきたので、ここで切り上げます。

みなさま、ありがとうございました。



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