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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0430
ジャッキーhspのボタンについての質問です。31解決


ジャッキー

リンク

2012/4/30(Mon) 18:24:43|NO.46378

ボタンのデザインを変えて、ゲームで使いたいと思いますが、やり方が分からないので教えてください。
ボタンは画像とかを使いたいと思います。詳しく教えてください。よろしくお願いします。
分かりにくい説明ですいません。必要な情報があったら、聞いてください。



この記事に返信する


PDY

リンク

2012/4/30(Mon) 18:38:21|NO.46379

「objimage」という命令がありますよ。



cats

リンク

2012/4/30(Mon) 18:50:17|NO.46380

objimage p1,p2,p3,p4,p5,p6,p7

p1・・・ボタンがぞうのバッファ画面の番号
p2・・・通常の状態のボタンの画像座標X
p3・・・通常の状態のボタンの画像座標Y
p4・・・押した状態のボタンの画像座標X
p5・・・押した状態のボタンの画像座標Y
p6・・・カーソルを合わせた状態のボタンの画像座標X
p7・・・カーソルを合わせた状態のボタンの画像座標X

ボタンに張る画像の大きさはobjsizeで指定した大きさになります。
説明分かりにくいのはすみません;



f(ぼんやり思考中)

リンク

2012/4/30(Mon) 22:46:30|NO.46389

ちょっと脳内思考垂れ流すが。
純粋に脳内で流れた思考であり質問者に対する悪意は全く無いので
質問者は気にしないように。


この質問は年に数回程度、定期的に見かけるが
「自分で画像を画面に貼ってマウスの位置とボタン状態で自力で管理しよう」
と言う思考に繋がらないのは、何でなのかのうと、毎度思う。


そもそも、「ボタン画像を、自分で用意した画像と差し替え出来る」と
一体どこから聞きつけて来るのだろうか?

そんな特殊な情報に当たるより、自力で全て管理する方向に
先にたどり着きそうにしか思えないのだが。

その情報源には、実現手段が書かれて居なかったのかどうかも気になる。

HSPの紹介にでも書いてあっただろうか?
じゃあ何でマニュアル調べねーんだよと言う話にしかならんか。

それでは勘だろうか?
特に理由も根拠も無く、ボタン画像が変更できるに違いないとか
勝手に自分が思った事で、スレッド立てちゃうのだろうか?


いずれにしろ、
マニュアルすら読まず過去ログすら調べずにやろうと言う
素晴らしい挑戦的熱意と意気込みがそこにあるのなら
今持っている知識で実現方法を考える位の気迫が欲しい気がする今日この頃。

世の中には
「MSの用意したオブジェクトなんかかっこ悪くて使えねえぜ!
 俺が作るソフトのボタン処理は俺が全て管理する!!」
とかいう何かトチ狂ったのも居たりするし。
(まあ、そんなのを見習えとは思わない訳だが。)




・・・と、
この質問を見かける度に同じ事を繰り返し考えてしまう。
毎度毎度なので、今回は敢えて書いてみた。


書いた以上は、解決策の提案の1つもしたい所だが

「定期的に質問スレが立っちゃうなら、
 マニュアルの目立つ所に書いておいてやればどうか。
 index.html開いたら、ど真ん中位に。
 サイズは大きめで。」

と、マニュアル執筆者に薦める程度しか思いつかなかった。すまぬ。
・・・しかも、読まない相手には通じない話なんだよなあ。重ね重ねすまぬ。



晩御飯

リンク

2012/5/1(Tue) 01:51:20|NO.46391

単にボタンを使ったプログラムを序盤に取り上げる講座が多いからなんじゃないの
ソースは脳内



ジャッキー

リンク

2012/5/1(Tue) 15:31:46|NO.46399

たくさんの回答ありがとうございました。
hspを使い始めて、1か月ぐらいなので分からないことばかりで、質問しました。
過去のログを見ても分からないことだらけだったので、質問させていただきました。
すいません。



f(出張準備中)

リンク

2012/5/1(Tue) 17:29:55|NO.46400

「ボタン 画像」で過去ログ検索すりゃ

http://hsp.tv/play/pforum.php?mode=pastwch&num=42499

位、見つけられんものかと言う気もするが、
とりあえず気にスンナ。
というか、ちゃんと解決したのか?


むしろ今後の為にも、
何処でボタンに画像が当てはめれる事を知ったのか
教えて欲しい。

きっとマニュアルを書く人にも参考になるはず。



(´ω`)

リンク

2012/5/2(Wed) 11:57:49|NO.46408

fさんの話で思ったのは。

HSPのbuttonのヘルプの最後にある「カスタムボタン」って単語が、初心者にはパッと見て
わからないのかなあ、と。てかオレも最近までobjimage命令の存在すら知りませんでした。

もうちょい判りやすく、「自分でボタン画像を作って配置したい場合は……」などと書いて
あればいいかも。(´ω`)



ジャッキー

リンク

2012/5/17(Thu) 14:28:39|NO.46673

ボタンを画像に変えれることを知ったのは、ほかのhspで作られたゲームで画像がボタンとして使われていたからです。



ZAP

リンク

2012/5/17(Thu) 23:13:05|NO.46680

それは
「Windowsのオブジェクトとしてのボタン」ではなくて
ボタンに模した画像を置いて、そこをクリックすると
ボタンを押したように見えるようなプログラムを自力で書いていたのではないかと推察しますが。



check

リンク

2012/5/18(Fri) 00:37:31|NO.46682

そしてこの話はスレッドの2レス目に戻るというわけだな。
なんとも面白い無限ループだ。

もう一度レスを見返してみたらどうだ。



トホホッティー

リンク

2012/5/18(Fri) 08:33:18|NO.46685

僕のは自作ボタンです。



GrapeColor(DION)

リンク

2012/5/18(Fri) 13:14:19|NO.46686

凄くどうでもいい意見ですが、
私はゲームじゃないかぎり自作ボタンよりオブジェクトのボタンを使います。
自作ボタンだと大体の場合マウスでしか操作できませんが、
オブジェクトのボタンならSpaceキーやTabキーが使えます
その点が便利でオブジェクトのボタンを使っています。
もちろん頑張れば自作ボタンでもそのような操作ができると思いますが・・・。



トホホッティー

リンク

2012/5/18(Fri) 21:20:09|NO.46695

ゲームなので自作ボタンです。



晩御飯

リンク

2012/5/19(Sat) 00:01:22|NO.46697

自作ボタンってちょっと紛らわしい呼び方だよね



横槍

リンク

2012/5/20(Sun) 15:21:45|NO.46733

つまりこういうことだろ?
pos A,Bに縦Yピクセル,横Xピクセルの自作ボタンが配置したい、と。
手順
1.適当な画像(button.bmpでも)を用意
 (このときサイズはX,Yピクセルとする)
2.分かりやすくボタンサイズを置き換え-#define
 (bsize_x =X /bsize_y =Yとかとにかく分かりやすく。)
3.celload-gcopyでもpicloadでもいいから画像設置
 (場所を変えたいならpos命令でA,B指定。)
4.クリックって何番だっけ?まぁいいや
 連続押し対応させたいならgetkey,一回だけ押すならstickでクリック判定
 (もちろんif使ってキー判定、待つためにawait 1,repeat-loopも)
5.位置判定してラベルジャンプ-goto,gosub
 一応便宜上buttonなのでラベルジャンプと書きましたが
 ボタンが一個ならbreakとかでも大丈夫。
さて、位置指定だが、わかるな?(笑)

例文(とりあえずstick)
if mousex >=A{
  if mousey >=B{
    if mousex +bsize_x <=A +bsize_x{
      if mousey +bsize_y <=B +bsize_y{
        if click(stick代入変数) &256{
          goto[場合によってはgosub] *ラベル名
        }
      }
    }
  }
}
かくいう俺も配列変数学んだばっかしぐらいだが、
picload知ってりゃこれもできたはず。
とりあえず何でもやってみることだね。
困ったら黒い画面でF1。これ重要。



トホホッティー

リンク

2012/5/20(Sun) 17:04:24|NO.46739

ブランカでは自作ボタン使ってます。ということです。



check

リンク

2012/5/20(Sun) 18:02:57|NO.46744

なんかよく分からないけどトホホッティー氏の猛烈なアピールはなんだ。
「俺はできるぜ!すごいだろ?」的な発言より、そのゲームで使用しているコードの一部でも紹介して、
説明したほうがスレ主には役に立つと思うのだが。



流星群

リンク

2012/5/20(Sun) 18:26:31|NO.46746

皆さん回答していますが

現在
僕が画像ボタン命令を使っている物のスクリプトを書きます

※注意!!
256☓32の画像ファイル(名前は"block.bmp")を作ってください。(背景色は0,50,100で)
あと640☓480の真黒(僕はマス表示のために四角い枠のついた物にしています)
の"BACK.bmp"で保存(背景色は真黒0,0,0)を作って
そして
このスクリプトを実行してみてください


スクリプト名 MAPMAKER


screen 0,640,480,16,200,100 cls 4 buffer 2 picload "block.bmp" buffer 3 picload "BACK.bmp" screen 1,128,96,8,850,300 title "" cls 2 objsize 32,32,32 objimage 2,0,0 button gosub"",*skyblock pos 32,0 objimage 2,32,0 button gosub"",*ironblock pos 64,0 objimage 2,64,0 button gosub"",*itemblock pos 96,0 objimage 2,96,0 button gosub"",*magicblock pos 0,32 objimage 2,128,0 button gosub"",*poisonblock pos 32,32 objimage 2,160,0 button gosub"",*jumpblock pos 64,32 objimage 2,192,0 button gosub"",*keyblock pos 96,32 objimage 2,224,0 button gosub"",*tobirablock gsel 0,1 dim map,20,15 *MAIN redraw 0 title ""+selectblock gosub *draw_map getkey KEY,1 if KEY=1 :goto *click onexit *toolend redraw 1 await 16 goto *MAIN *skyblock selectblock=0 return *ironblock selectblock=1 return *itemblock selectblock=2 return *magicblock selectblock=3 return *poisonblock selectblock=4 return *jumpblock selectblock=5 return *keyblock selectblock=6 return *tobirablock selectblock=7 return *draw_map gmode 4,0,0,256 color 0,50,100 x = 0 : y = 0 repeat 15 j = cnt repeat 20 i = cnt pos x,y color 0,0,0 boxf x,y,x+32,y+32 color 0,50,100 gcopy 2,map(i,j)*32,0,32,32 x += 32 loop x = 0 : y += 32 loop gmode 4,0,0,128 pos 0,0 color 0,0,0 gcopy 3,0,0,640,480 return stop *click wait 1 redraw 1 window = ginfo(2) if window=0{ click_x=int(mousex/32) click_y=int(mousey/32) map(click_x,click_y)=selectblock } goto*MAIN *toolend dialog "保存しますか??",2,"dialog" if stat=6 { text="" notesel savebuf repeat 15 loop_a=cnt repeat 20 if cnt<19 :text=text+(str(MAP(cnt,loop_a))+",") if cnt=19 :text=text+(str(MAP(cnt,loop_a))) loop noteadd text text="" loop dialog "",17,"記録" savefile= refstr+".txt" notesave savefile } if stat=7 : {} end



ミント

リンク

2012/5/20(Sun) 18:30:41|NO.46749

まぁまぁ、あまり余計なことを言うと揚げ足大会に発展するのでやめましょう。


さて本題ですが、ボタンを画像に変えたい。っというものですね。
もうそれなら答え出ていますし大丈夫だと思います (私もわからないけどね!(ぁ
わからないときは・・・


1:ぐぐったり
>「ボタン 画像」で過去ログ検索すりゃ
2:水色の文字の上でF1を押す (ifなど)


まずは「ボタン」というもの自体を理解することからオススメします。
2歩先行こうとすると失敗するので、まずは「ボタン」そのものを理解しましょう。
んで、そしたら画像を張れる方法、または違う方法を考えつつ自分の考えを言えると素敵です。

私の脳内では、画像を用意して、それをクリックで反応させるのが早そうなきがするけど
実際にやったことないからわからないという・・・orz
お役にたてなくってごめんよ〜(´・ω・`)転職したてで忙しい・・・ゲーム製作したい・・・



TMKL

リンク

2012/5/20(Sun) 18:55:35|NO.46755

fさんの、
>そもそも、「ボタン画像を、自分で用意した画像と差し替え出来る」と
>一体どこから聞きつけて来るのだろうか?
については、
「buttonでF1」が一番多そうな気がします

また、
>「自分で画像を画面に貼ってマウスの位置とボタン状態で自力で管理しよう」
と思わないのは、
ループしなくてもマウスオーバーが使えたり、
GrapeColor(DION)さんの言うように、
SpaceキーやTabキーが使えるからではないでしょうか?



ところで、なぜスクリプト張ってる人がいるの . . .



流星群

リンク

2012/5/20(Sun) 18:57:15|NO.46756

>>TMKLさん

貼ったほうが理解できるかと思って
実際に使ってる例を書いた方が
分かりやくすないですか??

なので
貼ってみました
あとはスクリプトをみて
●●がどうこうで・・・
と言われた所だけ説明をすればよいかと


まあ先にobjimadeの説明だけでもしておこうか。
先にしている人がいるけど
解説

たとえば buffer 3のpos 0,0〜pos 32,32の位置に "●"の形をした画像があるとします

それをボタンにしたいのなら

objimade 3,0,0
としたらボタンが●になります
もし32,32〜64,64の位置にあったら
objimade 3,32,32
と書けばいいだけです

で、画像を貼る大きさは普通に
ボタンの大きさを変える命令でしたらいいだけです



TMKL

リンク

2012/5/20(Sun) 19:04:37|NO.46757

>実際に使ってる例を書いた方が
>分かりやくすないですか??
分かりやすいです

ただこのスレッド、もう解決になっているのですが . . .


でもまぁ、質問者はまだ理解したとは言ってないからいいのか
スミマセン



TMKL

リンク

2012/5/20(Sun) 19:06:16|NO.46758

ヤバい!発言が完全にズレてました!
NO.46755の前半はナシでお願いします



トホホッティー

リンク

2012/5/20(Sun) 19:09:12|NO.46760

ブランカは例として参考にしてください。



流星群

リンク

2012/5/20(Sun) 19:11:38|NO.46761

>>TMKLさん
ほんとだ
解決になってました
コチラもすいません。

>>トホホッティーさん
あと、
トホホッティーさんは何がしたいのでしょう。
荒らしてるに近い状態ですよ。
(まあ僕のみた感じなんで
人によって感覚違ったらすいません



トホホッティー

リンク

2012/5/20(Sun) 19:22:20|NO.46763

僕は書き込みしたら、問いかけされたので返信してみました。

画像ボタンのサンプルの提示をしてはいけないのでしょうか?

解決トピみたいなのでこれ以上は書き込みやめておきます。



check

リンク

2012/5/20(Sun) 19:37:55|NO.46765

これ以上泥沼に入ることは避けたいが、
やはりネット上の会話というものは書き手が思っているほど読み手には伝わっていない、
ということをよく知らなければいけないな。

ようはトホホッティー氏は自作のゲームでは自作のボタン(この表現があやふやなのだが)を使っているんで、
なんならスレ主には参考にでもして欲しかったということが言いたかったということか?
それをいきなり
>僕のは自作ボタンです。
>ゲームなので自作ボタンです。
といわれても何がなんだか分からない。
>ブランカは例として参考にしてください。
ということでやっと氏が何を言わんとしているかが分かった、つもりでいる。



流星群

リンク

2012/5/20(Sun) 19:58:46|NO.46767

解決しているのでこれ以上書き込みはやめておきますが
最後に書きます

>>checkさん
checkさんの
「それをいきなり
から
つもりでいる。」

までが
僕の思っていることそのままでした。



hm

リンク

2012/5/30(Wed) 10:17:27|NO.46950

普通の人にとって"ボタン=button"じゃないんだよ。
ボタンの定義は、あくまでも「マウスをクリックしたら画面に何か変化が起こるモノ」。
button命令で呼び出されるもの以外ボタンじゃない、なんて認識はない。
だから当然「ボタンの画像ってどうやって変えたらいいのかな?」って考えに至る。
いわゆるエンジニア系の人は、なぜそんな簡単なことに気づかないのかといつも思う。

過去ログ見ろってのは、まあ…hspは小学生でも使えますって謳い文句なんだし、ある程度仕方ないかな。
とりあえず質問者には楽しんでプログラムしてほしい。



hm

リンク

2012/5/30(Wed) 10:25:39|NO.46951

ふむふむ。
今ちらっと読んだだけですが…

>>僕のは自作ボタンです。
>>ゲームなので自作ボタンです。
>といわれても何がなんだか分からない。

これだけ読んでたんじゃわからないよね。
スレ読み返せ…と言いたいとこだけど、敢えて。

>トホホッティー「僕のは自作ボタンです。」
>GrapeColor(DION)「私はゲームじゃないかぎり自作ボタンよりオブジェクトのボタンを使います。」
>トホホッティー「ゲームなので自作ボタンです。」

普通にわかりやすい会話だけど、何がわからなかったんだろう?
質問は解決してるそうだけど、回答者はもうちょっと柔軟に答えてもらえたらなぁと思いました。



yoshi

リンク

2012/5/30(Wed) 13:23:50|NO.46954

あ、すごいこんな命令あるんだ。
今まではマウスが範囲内に入った時は・・・で認識させてましたよ。



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