C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[36]: シューティングゲームのあたり判定について [1]


(過去ログ 86 を表示中)

[トピック内 43 記事 (21 - 40 表示)]  << 0 | 1 | 2 >>

■51161 / inTopicNo.21)  Re[18]: シューティングゲームのあたり判定について
  
□投稿者/ 使い魔 (15回)-(2010/06/25(Fri) 23:34:04)
2010/06/25(Fri) 23:35:18 編集(投稿者)

No51099 (山田祥 さん) に返信
> うむ。確かに。カニカニ。
>
> 小さな家を建てるだけなのに、全長100メートルのクレーンを使用してるような感じがする。
> 小さな家は、「かなずち」を使用しましょう。
>
すみませんでした。ちょっと大げさにしすぎていたようです。
今やっとあたり判定にこぎつけたような気でいます。

For g As Integer = 0 To 9
If TAMA(g).Visible = True And TAMA(g).Enabled = True Then
If TAMA(g).Bottom >= Me.Top Then
TAMA(g).Top -= 15
Else
With TAMA(g)
.Visible = False
.Enabled = False
End With
End If
End If
Next
For g As Integer = 0 To 9
For tyo As Integer = 0 To 207
If TAMA(g).Top >= TEKI(tyo).Bottom Then
With TAMA(g)
.Visible = False
.Enabled = False
End With
With TEKI(tyo)
.Visible = False
.Enabled = False
End With
End If
Next
Next
上のようなコードを組んだのですが。これだと、全部が消去されてしまってうまくいかないんです。
理想とすると、あたるまでのアニメーションが見えて、あった時に弾を敵がそれぞれ消滅するようにし、
あたらない時にはそのまま通り過ぎさせて次の処理を待つ。ような感じです。(あった時の爆発イメージはないものとします。)
ちなみに、弾は全10弾(種類ではありません。)あるうちのどれかで、敵も全部で207体くらいいるうちの、どれかということになります。弾が敵の一番下にあたった時に消えるようにもしたいです。
なにか、いい解決法等ありますでしょうか。

引用返信 編集キー/
■51164 / inTopicNo.22)  Re[19]: シューティングゲームのあたり判定について
□投稿者/ やじゅ (1663回)-(2010/06/26(Sat) 00:15:00)
やじゅ さんの Web サイト
No51161 (使い魔 さん) に返信
> 上のようなコードを組んだのですが。これだと、全部が消去されてしまってうまくいかないんです。

敵は表示(Visible=True)しているのだけ、当り判定すればいいんじゃないの。
最初から207体も画面に出してないでしょ。

引用返信 編集キー/
■51175 / inTopicNo.23)  Re[20]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (16回)-(2010/06/26(Sat) 14:19:00)
No51164 (やじゅ さん) に返信
> ■No51161 (使い魔 さん) に返信
>>上のようなコードを組んだのですが。これだと、全部が消去されてしまってうまくいかないんです。
>
> 敵は表示(Visible=True)しているのだけ、当り判定すればいいんじゃないの。
> 最初から207体も画面に出してないでしょ。
>
実際、208体一気に出しているんですけど。
引用返信 編集キー/
■51176 / inTopicNo.24)  Re[21]: シューティングゲームのあたり判定について
□投稿者/ 中博俊 (1427回)-(2010/06/26(Sat) 15:13:46)
とりあえずデバッグしてみてください。
こういう場合ifが間違っているんじゃないですか?
引用返信 編集キー/
■51177 / inTopicNo.25)  Re[22]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (17回)-(2010/06/26(Sat) 15:47:43)
2010/06/26(Sat) 15:56:31 編集(投稿者)

No51176 (中博俊 さん) に返信
> とりあえずデバッグしてみてください。
> こういう場合ifが間違っているんじゃないですか?

というか、あたり判定が全く分からないのです。
コードをどう組んでいいのかわかりません。
サンプル等ありましたら教えていただきたいのですが。
参考資料でその他の言語から教えていただいても、理解できませんので、
vb2008の言語で教えていただけると嬉しいです。

イメージを書くとすると、
□ ’左右に動いている。
↑ 
| ■が□の範囲の、一部にかかった瞬間に
| 両方をけす。

■ ’上に向かって動くだけ
という感じです、とにかく□に■の一部(上下左右不特定)がかかった瞬間に処理を行いたいのです。
引用返信 編集キー/
■51180 / inTopicNo.26)  Re[23]: シューティングゲームのあたり判定について
□投稿者/ はた (1回)-(2010/06/26(Sat) 19:14:25)
No51177 (使い魔 さん) に返信


この当たりが参考になると思います。いまは苦しいときかもしれませんが、あせらずに頑張ってくださいね

http://www.teu.ac.jp/chiit/~jsuzuki/doc/pnc2006/n02/index.html
引用返信 編集キー/
■51181 / inTopicNo.27)  Re[24]: シューティングゲームのあたり判定について
□投稿者/ 勇人 (1回)-(2010/06/26(Sat) 20:13:50)
貴ちゃんのブロックくずしのコードは役にたちませんか?
アレが理解できないと当たり判定ルーチンの作成は難しいと言えます。

弾のx、y座標の範囲と当てられる側のx、y座標の範囲を設定する必要があります。
コードを日本語で解説すると、

もし、敵キャラの範囲に弾の範囲があるとき⇒当たり処理
となります。

配列を使用すると、千発でも2千発でも処理できます。が

まずは1発の当たり判定プログラムを制作されてはいかがですか?
大量にさばくのは現時点で厳しいと思われます。

論理演算

and(なおかつ)、or(または)
これを利用するやり方もあれば、
全配列を1つずつ処理する方法もあります。

とりあえず、弾1発分の処理プログラムを作りましょう。
これが完成したら、次へ進むとか。
引用返信 編集キー/
■51184 / inTopicNo.28)  Re[25]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (18回)-(2010/06/26(Sat) 23:08:32)
No51181 (勇人 さん) に返信
> 貴ちゃんのブロックくずしのコードは役にたちませんか?
> アレが理解できないと当たり判定ルーチンの作成は難しいと言えます。
理解はできるのですが。意味が分かりません。
簡単に言うと、形がわかるのに対し、その中身がわからないという感じでいます。
標的の大きさが、(10,10)だとすると、xは、10まで変化し、yは、10まで変化し、
その過程にある、(x,y)に対し、弾がその場所にあるのかを探るという感じになるのでしょうか。
自分の頭の中にある理想のものを、図にすると、(間の空白はないものとして)
______
| | | | | | |
______
| | | | | | |
______
| | | | | | |
______
| | | | | | |
______
| | | | |B| |
_   A
| |が、(1,1)のときだとしてください。
でこのとき、弾は、Aのところにあるものとします。
この弾が今、1秒のインターバルで上に1づつ動いています。
また、標的であるものは、左に1秒のインターバルで左に1づつ動いています。
こもまま、行くとBの地点にAが到達しそうです。
この時の処理をコードで書くということができないのです。
後になりましたが、標的は正方形ではありません。
頭の中では、こんな感じのものが見えています。

これでだめなら、pointを使って場所を設定すべきなのでしょうか。
引用返信 編集キー/
■51185 / inTopicNo.29)  Re[26]: シューティングゲームのあたり判定について
□投稿者/ 勇人 (2回)-(2010/06/26(Sat) 23:51:38)
いろいろやり方があるよ。
色を調べるやり方もあるしさぁ。


引用返信 編集キー/
■51186 / inTopicNo.30)  Re[27]: シューティングゲームのあたり判定について
□投稿者/ 勇人 (3回)-(2010/06/27(Sun) 00:12:54)
当たり判定方法

1 論理演算法
2 キャラのデータが崩れたかどうかで判定する方法
3 コントールを多用してる場合はコントロール同士が重なってるかどうか判定すればよいのでは。
4 まだ、たくさんあるけどね。

質問者は3のケースが有効でしょうかね。

この場合でも、やはり1発の処理ができてから、次のステップに行
かれてはどうですか?

引用返信 編集キー/
■51309 / inTopicNo.31)  Re[28]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (19回)-(2010/07/01(Thu) 17:22:56)
No51186 (勇人 さん) に返信
> 当たり判定方法
>
> 1 論理演算法
> 2 キャラのデータが崩れたかどうかで判定する方法
> 3 コントールを多用してる場合はコントロール同士が重なってるかどうか判定すればよいのでは。
> 4 まだ、たくさんあるけどね。
>
> 質問者は3のケースが有効でしょうかね。
>
> この場合でも、やはり1発の処理ができてから、次のステップに行
> かれてはどうですか?
>

何か、参考になるような、ページ等ありますでしょうか。
テキスト関係が全くないのですが。
引用返信 編集キー/
■51319 / inTopicNo.32)  Re[29]: シューティングゲームのあたり判定について
□投稿者/ 米村博士 (1回)-(2010/07/01(Thu) 20:54:07)
No51309 (使い魔 さん) に返信

>>当たり判定方法
>>
>>1 論理演算法
>>2 キャラのデータが崩れたかどうかで判定する方法
>>3 コントールを多用してる場合はコントロール同士が重なってるかどうか判定すればよいのでは。
>>4 まだ、たくさんあるけどね。
>>
>>質問者は3のケースが有効でしょうかね。
>>
>>この場合でも、やはり1発の処理ができてから、次のステップに行
>>かれてはどうですか?
>>
>
> 1の方法は試されました?(ブロック崩し)
範囲の設定は適当に修正してるんで詳細当たり判定ではないけど、それなりに動いてるでしょ?
2 キャラクタ制作エディターを自作したことがある人なら、すぐにピンときます。
ちょっと難しい方法かもね。
3 たとえば、マウスが重なるとイベントが発生したりするトコとかわかりますか?
コントロール同士が重なるとイベントが発生するトコがあると思いますけどね。


1の方法が個人的には1番簡単だと思うんですけど。
厳密な接触ルーチンじゃなくてもいいんですよ。
市販されてるやつなんかミサイルが当たっても当たりにならん時があるしね。

こうゆうのを、バグの取り除き失敗とゆうんです。
論理演算はわかりますか?
いろいろ役にたつんで、コレは習得したほうがいいと思いますよ。

引用返信 編集キー/
■51341 / inTopicNo.33)  Re[30]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (20回)-(2010/07/02(Fri) 15:36:37)
No51319 (米村博士 さん) に返信
>>1の方法は試されました?(ブロック崩し)
あれの原理?が理解できません。
引用返信 編集キー/
■51353 / inTopicNo.34)  Re[31]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (21回)-(2010/07/02(Fri) 18:22:05)
今実行してみたのですが、うーんなかなか難しいですねー。
Option Strict On
Option Explicit On
これは何を意味するのでしょうか。

Const block_suu% = 48 'ブロック総数
Dim block_life(block_suu - 1) As Boolean 'ブロック表示on_off
これは、block_lifeの配列が47あるということでいいのでしょうか。

Dim boul_x% : Dim boul_y%
      ↑
これは何のために使うのでしょうか。対比のためとかでしょうか。

Booleanとは、どういった宣言なのでしょうか。

a += 1 : If a = 8 Then a = 0 : b += 1
これは、まんまわかりません。

あと、ブロックがこのコードで複数なぜ表示されるのかがわかりません。
とりあえず、わからないことの一部を載せました。
学校で教わろうにも、COBOLに詳しい先生は多いのですが、
VBをやっている先生は、はっきり言っていません。(ゲームだと聞きずらいのも込みで)
とりあえず、あと一人やっている人はいるんですが、事務処理関係を多くやっているそうで全く
他分野だそうです。
とりあえず、ここだけでも教えてください。
引用返信 編集キー/
■51355 / inTopicNo.35)  Re[32]: シューティングゲームのあたり判定について
□投稿者/ 文月 (1回)-(2010/07/02(Fri) 18:34:48)
No51353 (使い魔 さん) に返信
下記の講座で基礎をざーっつと学ぶといいかも

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard4.htm
引用返信 編集キー/
■51358 / inTopicNo.36)  Re[33]: シューティングゲームのあたり判定について
□投稿者/ 文月 (2回)-(2010/07/02(Fri) 19:53:41)
No51355 (文月 さん) に返信
追伸
  掲示板に書き込むときは慎重に
  わからないからと安易に尋ねると「おしえて君」と思われて回答がつきにくくなります。
  できるだけネット検索をかけまくって、自力で調べ上げていくのが良いと思います
  プログラミングは独学が基本です

  老婆心ながら

引用返信 編集キー/
■51359 / inTopicNo.37)  Re[34]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (22回)-(2010/07/02(Fri) 20:25:35)
2010/07/02(Fri) 20:34:33 編集(投稿者)

No51358 (文月 さん) に返信
> 追伸
>   掲示板に書き込むときは慎重に
>   わからないからと安易に尋ねると「おしえて君」と思われて回答がつきにくくなります。
>   できるだけネット検索をかけまくって、自力で調べ上げていくのが良いと思います
>   プログラミングは独学が基本です
>
>   老婆心ながら
>
わかりました。
調べてることは調べてるのですが・・・・。
一つ聞きたいのですが、FormのReadOnlyのはずし方がわかりません。
コントロールについては、わかるのですが。
なぜ、Formに必要のないReadOnlyがついているのでしょうか。
引用返信 編集キー/
■51366 / inTopicNo.38)  Re[35]: シューティングゲームのあたり判定について
□投稿者/ 米村博士 (2回)-(2010/07/02(Fri) 22:30:45)
私は解説は好きじゃない。

たとえば、野球やサッカーで解説を目的にテレビを見る人はいないよね。
プレイを見てこそ面白い。
こんな言葉が好きですね。「論より証拠」
実行を見てVBでなんでもゲームが作れる。とゆうことを知れば、やる気が向上しませんか?

また、暇なときに、面白そうなもんを書きますよ。
ゲームなら、なんでもVBで作れますんで。
引用返信 編集キー/
■51385 / inTopicNo.39)  Re[36]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 (23回)-(2010/07/03(Sat) 21:02:09)
No51366 (米村博士 さん) に返信
ともかく、なぜにrightを利用することができないのかがわかりません。
TEKI(c).Right -= 10
このコードは、敵のcにあたるものの、右を10減らすということであってますよね。
でも、readonlyがでてしまって動作しないんです。
調べても、一切触れているページがないんです。
人間だからできる考え方なのでしょうか。
人間の場合、後置・前置どっちにしても、意味が理解できると思いますが、
コンピュータの場合はだめなのでしょうか。
引用返信 編集キー/
■51389 / inTopicNo.40)  Re[35]: シューティングゲームのあたり判定について
 
□投稿者/ 文月 (3回)-(2010/07/04(Sun) 09:06:31)
No51359 (使い魔 さん) に返信

作りだしたプログラムは何としても完成させたいと気持ちははやるのはわかります。
でも急がば回れです。
一度作りかけのプログラムから離れて
シューティングのサンプルをじっくり打ち込みながら、再度考えてみると
ヒントがつかめるかもしれません。


まさしく産みの苦しみを乗り越えて創造する喜びを味わうのがプログラミングの
醍醐味だと思います




http://www.teu.ac.jp/chiit/~jsuzuki/doc/pnc2006/n02/index.html
引用返信 編集キー/

<前の20件 | 次の20件>
トピック内ページ移動 / << 0 | 1 | 2 >>

管理者用

- Child Tree -