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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0716
daruma自作ボードゲームについて:マウスカーソル検知によるマス選択3未解決


daruma

リンク

2016/7/16(Sat) 22:37:21|NO.76214

自作ボードゲームを作っているのですが行き詰まりました。
初心者でわからないことが多いので、よかったら教えて欲しいです!


repeat 21,1 v=30*cnt line v,15,v,480 loop repeat 16,1 v=30*cnt line 15,v,630,v loop

このような盤面を使ったボードゲームで、やりたいことがあります。

1.マウスカーソルを検知して、マス目の色が変わる

2.マウスをクリックすると、そのマス目の中心の値が変数x,yに代入される

どなたか教えてください。お願いします!



この記事に返信する


掘木

リンク

2016/7/17(Sun) 00:21:28|NO.76216

・マウスカーソルを検知する
 マウスがある場所が分かればいいなら、mousex,mouseyを見れば良いんじゃないかな。

・マス目の色が変わる
 どのマスの色を変えるのか知らんが、どのマスか分かるならその座標は算出できるでしょ。
 じゃあcolorで色変えてboxfででも塗れば良いんじゃないのかな。

・マス目をクリックすると
 stickとかonclickでクリックしたことは分かるよ。
 クリックされた箇所がマス目なのかどうかを調べるのはプログラム側ですよ。

・マス目の中心の値をx,yに格納
 マス目が"中心の値"ってのを持っているってことかいな。
 少なくともこちらには中心の値とやらが何者か分からないが、x,yにそれぞれ代入すればいいのでは。


// ここに質問者の線描画部分 onclick *event_click *main // この辺にmousex,mouseyを見る部分 wait 1 goto *main stop *event_click // クリックされたらここが実行される。 // よく分からんけど元の場所に戻る。 goto *main
…gosub使っても良いんだけどねー…クリック時にgoto使って処理しそうな気がするからこうしておこう。

マス目のオブジェクト(らしきもの)を生成してマウス関連の判定を委託する方法もあるが、
初心者に勧めるものなのかよく分からないのでなかったことに。



(--)

リンク

2016/7/17(Sun) 08:01:01|NO.76217

枠線がずれているのが気になりました。
もしそのほうが正しいのなら直してください。

ofx = 10 : ofy = 10 // マス目の原点 dx = 30 : dy = 30 // マスの大きさ nx = 20 : ny = 15 // マスの数 // マウスが通過したときの色 mr = 150 : mg = 220 : mb = 230 repeat redraw 0 color 255, 255, 255 boxf color // 枠線描画 repeat nx+1 line ofx+dx*cnt, ofy+dy*ny, ofx+dx*cnt, ofy loop repeat ny+1 line ofx, ofy+dy*cnt, ofx+dx*nx, ofy+dy*cnt loop mx = mousex my = mousey // マウスが枠内なら if (ofx <= mx && mx < ofx+dx*nx && ofy <= my && my < ofy+dy*ny) { i = (mx - ofx) / dx j = (my - ofy) / dy color mr, mg, mb boxf ofx+dx*i+1, ofy+dy*j+1, ofx+dx*(i+1)-1, ofy+dy*(j+1)-1 stick ky if (ky & 256) { x = ofx + dx*i + dx/2 y = ofy + dy*j + dy/2 title "x = " + x + ", y = " + y } } redraw 1 await loop
あと一つ方法論ですが、プログラムの中で座標指定とか色指定とかをする場合は、
コードの中に直接書くよりは、変数に入れたり#defineや#constのマクロで
定義するほうが良いと思います。
そのほうが分かりやすいし、数値の変更があったときにも反映しやすいので。



daruma

リンク

2016/7/17(Sun) 10:46:20|NO.76218

>掘木さん
>(--)さん
わかりやすい回答ありがとうございます!
もう少し勉強しながら頑張ってみますね



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