はじめまして。大学の宿題でVB.Netで二人対戦のスゴロクゲームを作っていて、まだプランの段階なのですが、24ます(長方形で中が空洞)の双六で、「2こますすむ」とか「ふりだしにもどる」などなど、途中のますにあり、24こま目に先にたどりついたら「A,もしくはBさんが勝ち!」というゲームで、双六盤?スゴロクの24マスの作り方に質問なのですが、ラベルでいいのでしょうか?ますめはheight, width Property で均等しますよね?そして、ますめの中にこま(Aさん、Bさん)をおいたり、サイコロをふってその駒をどうやって他のますに異動させるかいい考えが思いつきません。一ますの大きさ、(長さ) 掛けるマスの位置でpic を動かすのがいいかともうのですが、長方形の双六磐だから上下左右に異動するので大変かなと思いました。何かいい考えがあったら是非教えてください。よろしくおねがいします。
あとサイコロとか小さい人(顔?)のイメージとかはどこから入手できるんでしょうか?フリーダウンロードサイトとかあったらおしえて下さい。
管理人さん、イルカ私も大好きです。とても綺麗な写真ですね。今スピーカーがないけど、火曜に届くので音楽なんなのか聞くのが楽しみです:0)
.NETは知らないので、やり方は少し違うかもしれませんけど…。
> 双六盤?スゴロクの24マスの作り方に質問なのですが、ラベルでいいのでしょうか?
ラベルでいいのでしょうか?といわれても、いくつも方法はあると思いますから、どうともいえませんけど…。
わたしならば、升目のコンポーネント(VBでなら、ユーザーコントロールとかが使えないでしょうか?)を作ってしまい、
それに表示内容と、そのアクションを記憶させておきます。
で、中では、表示内容を元に、DrawTextなどのAPIで文字列を表示しておきます。
それをコントロール配列など、インデックスを割り振っておけば、
こまの移動は簡単にできますね?
(現在のますのインデックス+さいころで出た目=移動先のインデックス)
アニメーションは一筋縄ではいかないと思いますけど、
そこは自分で考えてみてください^^;
ますのアクションは、升目に移動してきたときに、そこにあらかじめ記述しておいた内容から読み取ります。
それぞれのアクションをイベントとして、そのルーチンを直接呼び出すようにしてもいいでしょう。
(VBでそんなことできたっけ?定かではないですけど)
とりあえず、既存のコントロールだけで済ますより、楽な道はあると思いますから、
できることならば新たにコントロールなり、クラスなりを作るなどしてやったほうがいいと思います。ゲームに使えるコントロールって少ないですから、
そうすると結局自分で描画・・・ということになり、大変なので。
それに、そうしたほうが管理も楽ですし。
> フリーダウンロードサイトとかあったらおしえて下さい。
フリーダウンロードサイトですか。特に知りませんね。うわさには聞きますけど…。
(Googleなどで検索すれば、いくつか引っかかるかなとは思いますが)
わたしは、適当でもいいので、とりあえず自分で書いてみるとかしてます。
アイコンならば、フリーソフトのグラフィック系ソフトだけでも、かなりのできのものがかけます。
サイコロだと、側面が見えるから…とか、いろいろ面倒そうですから、サイコロじゃなくしちゃうって言うのも一つの手ですよね^^;
ルーレットとかにすれば、側面は見えなくなるし、独自のものを作り出しても、面白そうです。
>ますめはheight, width Property で均等しますよね?
あえて均等にせず、でかいマスや小さいマスが混在したほうが
私にはそれっぽく見えるような気がします。
簡単にやるのなら、
コントロール配列を並べておけば、
そのLeftやTopをとるだけで、位置はすぐに取得できるでしょう。
でも私もできればたかみちえさんのおっしゃるように、
クラスとかOCXに挑戦してみるといいと思います。
>それぞれのアクションをイベントとして、そのルーチンを直接呼び出すようにしてもいいでしょう。
>(VBでそんなことできたっけ?定かではないですけど)
OCXなんかだと、EVENTをプロトタイプ宣言しておいて、
必要なところで、RaizeEventをつけておけば、実現できます。
.NETはどうだかわかりませんけど(^^;
見栄えを考えるなら、
Formにべったりと画像を貼っちゃうというのも手です。
> クラスとかOCXに挑戦してみるといいと思います。
ユーザーコントロールって、確か
OCXにしないで、プロジェクト内で直接使うこともできましたよね?
わたしは、それのことを言ったので、"登録の手間が…"とかいう心配は、無用です。
いちいち登録しなくてもいいので、そういう面ですごく使いやすいものだったと思います。
たかみちえさん、Loreleyさん、アドバイスどうもありがとうございました。ゲームづくりもVB.Netも初心者で、まだまだ知らない機能だらけです。お二人に教えいただいたのを参考にしてやってみます。ありがとうございました!
ツイート | ![]() |