ボタンについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
OMA

ボタンについて

#1

投稿記事 by OMA » 16年前

タイトルのとことかで、文字のボタン(スタートとかプレイ中の最初からやり直すとか)はどうやればいいんでしょうか?
既出だったらすいません。

OMA

Re:ボタンについて

#2

投稿記事 by OMA » 16年前

すいません、質問の仕方が不適切でした。
タイトル画面などの選ぶと次の画面に進めるボタンはどのようにすればできるのか教えてください。
使っているコンパイラはBorlandC/C++コンパイラです。

SCI

Re:ボタンについて

#3

投稿記事 by SCI » 16年前

私はまだ実装してませんが、基本的に画像の表示です。
仮想的なカーソルを考えて(つまりフラグ変数なりを用意して)、表示を制御すればできそうですね。

OMA

Re:ボタンについて

#4

投稿記事 by OMA » 16年前

自分は初心者なもので、フラグ関数という物がよくわかんないんですけど、つまり、ボタン一つ一つの画像に対応する数字を用意して、下ボタンや上ボタンが押されたら、数字を+1したり、-1して、それにあったボタンの画像の色をかえたりすればいいんでしょうか?
もの分かり悪くてすいません・・・

kazuoni

Re:ボタンについて

#5

投稿記事 by kazuoni » 16年前

とりあえず作ってみました。
シンプルな画像を使わないボタンです。
っといっても前作から引き継いだだけですが・・・
一応解説付けたので、よろしければご覧下さい。
長押しも一応あります。
ボタンのドラッグ時の処理もあります。
WinAPIを使うとものすごい楽です。
あえて今回はC言語+DXライブラリで書いてあります。

http://kazuoni.kumogakure.com/button.zip


今思うと、外部変数ってクラスに比べると、とっても使いづらいです。
いや、使いやすいから使いにくくなる・・・?
うーん。。

SCI

Re:ボタンについて

#6

投稿記事 by SCI » 16年前

kazuoniさん
なるほど、マウスでクリックするものも「ボタン」と言うのでしたね。


OMAさん
イメージはそんな感じです。時間があったら私もサンプルを作りたいのですが(笑)
例えば、

ボタンの構造体 { フラグ,画像情報,位置情報,イベント(何が起こるのか) }

とかを配列で作っておけば、まず表示は出来そうですね。
フラグは最低限「非選択」「選択」の状態を表すようにして、この値で表示する画像を切り替える。
関数ポインタが使えるなら、もっと複雑な挙動も設定できますね。
あとは、「下キー」が押されたら、ボタン1のフラグを0にしてボタン2のフラグを1にする…という感じです。
エンターが押されたら、現在フラグが立っているボタンの「イベント」を取ってきて、シーンを遷移させればできそうですね。

kazuoni

Re:ボタンについて

#7

投稿記事 by kazuoni » 16年前

選択肢画面の作り方
http://dixq.net/g/#33

からなるべくそれないように加えましたが・・・
やはり、これだと手を加えないと使えないですね。
33章では、mainに直接記述していますが、
選択肢画面を処理する関数を作って、いろいろな時の選択肢に利用してやるとよいです。

一応コードをUPしておきます。
(ただ、拡張はほとんどできません。)

>SCIさん
ボタン=マウス操作っという固定概念でした。。
マウス、キーボード両方に対応したボタンだとマウスのが優先なので、
あとはちょちょっと処理つければ両方対応できそうです。
ボタンの構造体があると管理しやすそうですね。
自分のは関数化しただけでしたので^^;

SCI

Re:ボタンについて

#8

投稿記事 by SCI » 16年前

ちょっと興味が沸いたので、サンプルっぽく作ってみました。
上下キーで「メニューを選んでいるフリをする」プログラムです。
ソースが汚かったり、無駄な処理が多かったりは許してください(笑)

画像に使ってるフォントはライセンスを調べていませんが、画像そのものと効果音は練習を兼ねて自作です。
いやー、慣れないことをするものじゃないですね(笑)


kazuoniさん
私は東方のメニュー画面や、ESC押したときのポーズ画面をイメージしました(笑)
本家東方の画面操作にマウスは対応していないようですが、マウス操作にも対応すると楽しそうです。

OMA

Re:ボタンについて

#9

投稿記事 by OMA » 16年前

ありがとうございます、わかった気がします。
↑のコードを参考に自分でも試行錯誤してみます。
本当にありがとうございました!

閉鎖

“C言語何でも質問掲示板” へ戻る