VBでUNOのカードゲームを作っているのですが・・・


凡骨  2008-01-16 14:48:04  No: 138647  IP: 192.*.*.*

初めまして。今VBでUNOというカードゲームを作ろうとしてるのですが今までにゲームを作成したことはなくVBを使うことも初めてです。
カードはペイントでそれぞれ作ったのですが、カードをFromに入れて山札やプレイヤーの手札にカードを移動させる仕組みがわかりません。
聞いた方法ではFromの見えない位置にカードをImegeやPictureBoxに入れて見えないように置いておくようですがどのようにすればよいのでしょうか?
ちなみにソフトはMicrosoft Visual Basic 6.0です

編集 削除
魔界の仮面弁士  2008-01-16 15:21:53  No: 138648  IP: 192.*.*.*

> カードはペイントでそれぞれ作ったのですが

最初から、「ゲームルール」の処理と、「画像」の処理を両方実装しようとすると、
やらなければならない事が多くなってしまい、大変だと思いますよ。
プログラミング作業に慣れるまでは、画像系の実装は後回しにしておいた方が良いかと。


まずは TextBox、ListBox、ボタン等だけで実装しては如何でしょう。
たとえば、ListBox に
  [黄8]
  [赤3]
  [Wild]
  [Skip]
などのテキストを並べておき、それを選んでボタンを押して場に出すとか。

画像無しのテキスト表示だけであっても、きちんと実装されていれば、
ゲームとしては成り立ちますが、画像だけ実装されていて処理内容が無いものは
ゲームとして成り立ちませんからね。


テキストだけのゲームができた後で、ListBox をカード画像に変えてみたり、
カードを配っているようにみせるためのアニメーション処理を加えるなどの
「改良」を加えていってみては如何でしょう。



> 見えない位置にカードをImegeやPictureBoxに入れて見えないように
それで構いませんが、同時に使う PictureBox の数は、最小限にしておいてください。
PictureBox をたくさん使うと、パフォーマンスに悪影響がありますので。

VB6 付属のサンプルにある、Optimize\Optimize.vbp プロジェクトを開き、
「ピクチャとイメージ」のサンプルを実行してみると、その問題が良く分かるかと。


なおサンプル群は、MSDN ライブラリをインストールすると、
  C:\Program Files\Microsoft Visual Studio\MSDN98\98VS\1041\Samples\VB98\
または
  C:\Program Files\Microsoft Visual Studio\MSDN\2001OCT\1041\SAMPLES\VB98
などといったパスに(既定で)インストールされます。

# MSDN ライブラリをインストールしていない場合は、VB6 付属 CD-ROM の
# Samples\Vb98 ディレクトリを参照してみてください。

編集 削除
ha  2008-01-16 20:05:50  No: 138649  IP: 192.*.*.*

> 聞いた方法ではFromの見えない位置にカードをImegeやPictureBoxに入れて
> 見えないように置いておくようですがどのようにすればよいのでしょうか?
 
例えば、Imege1という名前のImegeコントロールは、
 Image1.Visible = False
で見えなくなり、
 Image1.Visible = True
で見えるようになります。

PictureBoxコントロールでも同じです。
 Picture1.Visible = False
 Picture1.Visible = True

編集 削除
凡骨  2008-01-20 16:57:36  No: 138650  IP: 192.*.*.*

魔界の仮面弁士さん>返信ありがとうございます
付属サンプルは元からVBをインストールされているパソコンでしているため残っていません

haさん>返信ありがとうございます
見えないようにしたりする方法はわかりました。

ちなみに今配列について悩んでいます。
カードは全て108枚ですから108個の数字をそれぞれカードで例えるそうです。
最初は例えば黄色0のカード名をURA(0)として黄色の0を番号の1に例えるなら
1=URA(0)
のようにすればよいかなと思っていたのですがそれではだめならしく数字だけの配列とそれぞれのカードの番号が入った配列を作らないといけないらしく数字だけに関しては
Dim intX As Integer
intX(0)=1



のように書けばよいと思いますが
カードの配列に関してはどのように入力していけばよいですか?

編集 削除
lol  2008-01-20 17:31:21  No: 138651  IP: 192.*.*.*

>Dim intX As Integer
>intX(0)=1
>のように書けばよいと思いますが
↑の書き方はナニヒトツ「よい」所は無いでおま。

カード情報を配列で管理したいなら構造体の配列を使えばいいんでないかい。

例えば適当だけどこんな感じ。
Type  カード情報
    カード種別
    色
    番号
End Type
カード情報配列(108)  As   カード情報

編集 削除
凡骨  2008-01-24 20:23:05  No: 138652  IP: 192.*.*.*

すみません意味を間違えてました・・・
それぞれ配列を作って()の部分にカード画像番号が入るようにしないといけなかったのですね。
今は手札のカード画像をクリックすると場に出されているカード(Picture2)にカードの色が同じならば場に出す→違う場合はテキストの数字が同じものを出すプログラムを作成していますがなかなか思いつきません。どのような入力の仕方をすればよいと思いますか?
ちなみに色、カードテキストなどの配列は作っています。
連続の質問ですみませんがお願いします

編集 削除