トップページgamedev
336コメント137KB

初心者たちが勉強しながらBattleCityを作るスレ

■ このスレッドは過去ログ倉庫に格納されています
0001( ・ω・)∩04/06/01 16:36ID:TlsWVL74
前からゲームを作ってみたいなぁと思ってたんだけど
ひょんなことから「Microsoft Visual C++ 6.0」を手に入れました。

そこで、ファミコンで出た「BattleCity(バトルシティー)」を作ってみようと思います。
今でも、十分楽しめるゲームだと思います。
ネット対戦も考えていますが、まあ、まだ先の話です。
初心者の方々、BattleCityを一緒に作りませんか

ちなみに、C++歴 2時間です。
それじゃ、夕御飯までに猫でもわかる・・・で少し勉強してきます。

バトルシティを一行で説明すると。
「マイタンク(自機)を操作し指令部を護りながら敵タンクを全て破壊する」です。

BattleなCity(バトルシティー攻略ページ)
ttp://www5d.biglobe.ne.jp/~tic/index2.htm
あぷろだ
ttp://www.border.jp/uploader/upload.php
お勉強ページ 勝手にリンク 第2版
http://pc5.2ch.net/test/read.cgi/tech/967778156/l50
0010名前は開発中のものです。04/06/01 21:45ID:TlsWVL74
>>4
他の言語はVBしか使ったことがありません。
今日、猫でもわかる・・を見てVBより難しいことがわかったんですが、
なんとか形にはしてみます。
>>5
サイトを作らないとまずいんですか
動くものといってもウィンドウを出すものしか・・・
サイト明後日までには用意します。
ご忠告、ありがとうございました。
>>6
自分が見当違いなこと言ってるかも知れませんが、、
1ブロックを縦に4列、横に4列の16個で
弾が当たった方向の1列を消すってのはどうでしょうか
というより、16個で1ブロックを作るって言ったほうが早いですね・・・
素人考えですいません。

>>7 >>9
誤解させそうな文章ですね。すいませんでした。
実は、工業系の大学にいる友人から貰ったノートパソコンの中に入ってました。
大学に入学した時に買わされたそうです。
でも、まったく使わないそうで2万円で貰っちゃいました。
VC++が入ってるなんて知らなかったので>>1の様な文章になったんです。
0011( ・ω・)∩04/06/01 21:52ID:TlsWVL74
ttp://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
なんとか↑のをコピペして、
ウィンドウを表示させることまでは成功しました。
(ちょっと感動、、、コピペしただけなんですけどね・・・)

ttp://www.kumei.ne.jp/c_lang/sdk/sdk_26.htm
今は、↑を読みながらビットマップの画像を
表示させるところを作ってます。

ちょっと質問があります。
このようなゲームを作るときはDirectXを使ったほうがいいんでしょうか?
まだ、先の話ですがネット対戦で10vs10を (できるならもっと多く。)
できるようにしたいと思ってるのですが。
0012名前は開発中のものです。04/06/01 23:53ID:HPYoBEBB
10vs10はちと多いのでは?
4vs4あたりもちょっと多め。
2vs2が理想。
1vs1もまた理想。

でもまずは1vs壁から作らん事には・・・
わしもそのうち作るかも。(多分flashになりそうだが)
とにかく、ガンガレ。
0013名前は開発中のものです。04/06/02 01:39ID:g2/Df+nh
なんかこのスレあたたかいな。
昔BASICやってたりとかしたから、応援したくなる。

とりあえずVCが分からんのでアレだが、
アルゴリズムは不変であろう。
応援する。

俺はHSPでくらいなら組めそう。
まあ、技術的に伸びることを考えればVCのほうがよいか。

0014名前は開発中のものです。04/06/02 02:50ID:Do7B8O4G
DirectX じゃなくて OpenGL を使った方がよいと思うが。
0015名前は開発中のものです。04/06/02 02:53ID:Do7B8O4G
ちなみに OpenGL と C++ のリンクおいときますね
ttp://www.center.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
ttp://black.sakura.ne.jp/~third/system/opengl/gl.html
ttp://www1.kcn.ne.jp/~robe/cpphtml/index.html
ttp://www.kumei.ne.jp/c_lang/index_cp.html
0016名前は開発中のものです。04/06/02 08:49ID:y2+rhgtC
まあ、こんな初期段階であれこれ言うのも何だと思うが、

> ウィンドウを表示させることまでは成功しました。
> (ちょっと感動、、、コピペしただけなんですけどね・・・)

俺にもこんな頃があったな。
この感動がずっと得られるような単純な人間だったら何だってできるようになるぜ。
継続は力なりだ。
頑張れよ!

ちなみにお前の現在位置は、数学で言うと一桁の足し算ができたぐらいだがな。
0017受験生 ◆3VUXqvbfSY 04/06/02 09:33ID:22urPlb/
応援してますよ>>1
…でも、VB使えるなら…VBで組めば?
BMPもウィンドウもクソ簡単だよVBなら…
まあVC++の方が速いことは認めるが…
大した処理では無い上に、表示がDirectXなら…
VBでも変わらんよーな…winsockなら誰でも通信対戦作れるし…

まあ…VC++でDirectXの表示を解説してるサイト貼っとくね

http://www.monsho.hp.infoseek.co.jp/index.html
0018名前は開発中のものです。04/06/02 18:12ID:XW5gCXFe
>>11
DirectXというか、まずDIBを勉強しなさい。DIBならDirectX使うときにも
応用が効く。ネコ26章のサンプルはDDBなのでゲームには向かない。
簡単に言うとDIBは仮想のビデオメモリのようなもの。直接書き込んで
bltするだけで好きな画像を表示できる。
0019名前は開発中のものです。04/06/02 23:15ID:LNnPIvSC
けっこうまったりと助言が多くて良いスレですね。
フラッシュで作るんが一番簡単そう。
バトルシティーくらいなら、”もうだいたい出来てる”
って言えるくらいだもんなあ、フラッシュ
0020名前は開発中のものです。04/06/02 23:29ID:EfDmktMn
>>18
DIBってBitBltとかのこと?
あれだけでも十分ゲーム作れるよねぇ
0021名前は開発中のものです。04/06/03 00:23ID:m/jDGGaL
別にC++屋・Java屋・VB屋になりたいわけじゃない
鯖屋にも興味がない

でもプログラムで遊んでみたい
でも時間はない

ひまわりで遊んでみませんか?
http://hima.chu.jp/

日本語でかんたんプログラミング!
「ひまわり」で学ぶアプリケーション作成
http://hima.chu.jp/hima-book/index.htm
0022( ・ω・)∩04/06/03 00:49ID:Q84kowAy
みなさんどうもありがとうございます。
>>18さんが教えてくれたDIBで表示させることにしました。
(基礎?ぽいような気がしたので)

創作プログラミングの街
ttp://www.sm.rim.or.jp/~shishido/

の「BMPファイルからDIBを読み込む」
ttp://www.sm.rim.or.jp/~shishido/readbmp.html

のところにあったソースをコピペして画像を表示させるこに成功しました!
今、1行ずつ意味を調べてるところです。
画像を表示させるだけでもたいへんですね
0023名前は開発中のものです。04/06/03 10:53ID:WS0sBkjF
何か普通にちゃんとやってるね

現段階でコピペすんのは構わないと思うんだけど、
動作内容を理解することの方がずっと重要だよ。
サンプルを一個動かしてみるたびに、
修正して何か応用品を作ってみるってのはどうかな。
もっと色んなことを学べるし、もっと楽しいと思うよ。
0024受験生 ◆3VUXqvbfSY 04/06/03 11:49ID:qNQL62tU
>>1
まずは数当てでも作ってみれば?
このままだと…コピペしかして無さげに見えるよ
0025( ・ω・)∩04/06/03 23:59ID:Q84kowAy
サイト作りました(あぶない。。あと少しで嘘つくことになるとこだった
急いだのでかなり雑です。。。
http://www.geocities.jp/battlecityjp/

>>23
実は画像表示のソースを調べながら、
ちょっといじってたりして反応を調べたりしてます。
大したことはできないんですけどね

>>24
そうですね。
まだ、1つも自分で作ったものがないし、
少しは頭に入ってるか
今から数当てゲーム作ってきます。
0026( ・ω・)∩04/06/04 01:21ID:ydPlS60G
初めてのC++でのゲームです。(数当てゲーム)
1時間もかかっちゃいました。
ソース↓
http://www.geocities.jp/battlecityjp/kazuate.txt

using namespace std;
を書かなかったおかげで、エラーばっかりでした・・・
ちょっと調べたら、
標準ライブラリがどうとかこうとか、、、
これが何なのかあまりわかってません
明日調べなければ・・・

関係ないですが、数当てゲーム、最高7回で成功
0027名前は開発中のものです。04/06/04 02:41ID:R69FQnPG
2,3日の学習でこれだけできれば問題ないっしょ。とっととバトルシティ作っちゃって下さい。
ちなみに細かいことだけど return に括弧はいらないよ。
俺もひまができたらバトルシティ作ってみよかな。
0028名前は開発中のものです。04/06/04 09:46ID:Tvj07fVB
>>26
STLを使ったソースを参考にしてるな。STLを使わないんだったら

#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;


#include <time.h>
#include <stdlib.h>
#include <iostream.h>
にしなさい。少なくとも今のソースにSTLのヘッダは不要。ゆえに
コンパイルも通るから。

STLは気が向いたら勉強すれば良いと思う。
0029名前は開発中のものです。04/06/04 20:15ID:fjK1VDKm
・・・ごめんなさい恥ずかしいこと聞きますが
最近のCってprintf使わないモンなんですか?
0030名前は開発中のものです。04/06/04 23:34ID:ZGm1ocIY
勉強って書いてあるけど手っ取り早くおおよその全体を掴みたいなら
↓のライブラリを使うといいと思う
ttp://www3.justnet.ne.jp/~botchy/index.html
cの知識と高卒程度の四則演算が出来ればサクサク作れるよ

上のサンプル見てもワカランってな時は↓のサイトにゲームのサンプル載ってるから
参考にするといいと思う
ttp://ponk.jp/index.php

0031名前は開発中のものです。04/06/04 23:40ID:sR1TnrKn
>>29
C++だとprintfよりcoutのほうが使われるね
0032( ・ω・)∩04/06/08 00:53ID:8RxieY0/
>>30
ありがとうございます。
簡単そうなのでちょっと使って見ます


土日できなかったから、
今日こそは勉強するぞーっと思ったらこんな時間・・・orz
0033( ・ω・)∩04/06/10 00:01ID:6zLM4DrQ
elを使って作るとほんとに簡単ですね
>>30さんに教えてもらったサイトを参考に
(自機の操作・弾・敵・当たり判定)まで作ってみました。(かなり適当ですが・・)
http://www.geocities.jp/battlecityjp/eltest.txt
(実行ファイルはサイトの方に。)

単純な動作しかしないのに、なぜか動作が重いです。

elを使うと簡単なんですが、
こんなに簡単に出来るものを使っていいのかと逆に悩みます・・・
0034名前は開発中のものです。04/06/10 02:58ID:qBwAR2Yd
>>33
簡単なようでそうでもないので。全部に手を出すとスゲー時間が掛かるので
まずelを使ってバトルシティの完成を目指すのがいいと思う。


動作についてはWindowモードだから重たいんじゃないかな。ウチのマシンでは
普通に動いているようだけど。移動スピードを早くすれば気にならないんじゃないかな。

ビルド時に最適化掛ければさらに速くなると思うので、当面は必要なものを追加していく方向でがんがれ〜。
0035名前は開発中のものです。04/06/10 03:16ID:Ock/rmst
> こんなに簡単に出来るものを使っていいのかと逆に悩みます・・・
最初はどうかと思ってたけど、
この姿勢はなかなかいいな。
向上心を感じるよ。でも、

> 簡単なようでそうでもないので。全部に手を出すとスゲー時間が掛かるので
> まずelを使ってバトルシティの完成を目指すのがいいと思う。
俺もこれに同意。
暫くの間、ゆるいライブラリに依存しててもいいんじゃないかな。
基礎構文がスラスラ出てきて、脳内コーディングもできるようになったら
DirectX なり SDL なり、もうちょっと難易度の高いものに朝鮮すればいいじゃない。
別に誰に急かされてる訳じゃないし、ゆっくりでいいと思うよ。
0036名前は開発中のものです。04/06/10 18:40ID:ZmE5oMyN
elもの足りなかったり、最終的にはdirectXで作りたいんだったら
ttp://www.twin-tail.jp/
にあるライブラリ使うと勉強になるかもしれない

el卒業で速攻directXやってもいいけどelとdirectXの中間くらいのライブラリだから
ステップアップにはいいかも

宣伝くさいがC++入門書には
これならわかるC++―挫折しないプログラミング入門 小林 健一郎 (著)
をオススメしとく。ゲーム作成っぽくPGを学べるからサクサク進めるよ
0037名前は開発中のものです。04/06/18 12:26ID:79uzekdF
もう飽きたのか?
0038名前は開発中のものです。04/06/18 17:48ID:r0laBVzQ
便りがないのは元気な証拠。
0039( ・ω・)∩04/07/17 20:12ID:879HB6EF
もう、一ヶ月も経ってしまったのですね・・・
忙しさにかまけて全く進めていませんでした。

>>34-36
ありがとうございます。
最初はelで作った方がいいみたいですね。
>>36
最初はelで作ってみるので、
お気に入りに登録しておきます。

>>37-38
すいません。。
0040名前は開発中のものです。04/07/17 20:17ID:879HB6EF
処理の流れを簡単に考えたのですが、
上から順に

・フレームレートの調整
・自機移動
・敵機移動
・弾移動
・アイテムの当たり判定と効果実行
・弾の当たり判定
・画像の表示

こんな感じにしようかと思っています。
今は、いくつかゲームのサンプルを見てたんですが、
クラス?というものが使われているみたいなので、
クラスについて勉強中です。
0041名前は開発中のものです。04/07/19 12:18ID:JtU3sKHQ
>>1よ久しぶりに現れたな。

で、elがどうやってタイミング調整してるか知らんが、
本質的な処理ではないフレームレートなんかは後付けでいいんじゃないか?
初心者ならまず一通り動くものを作ったほうが良いと思わんでもない。
0042( ・ω・)∩04/07/19 14:51ID:7vl/cHwF
クラスって難しいですね
まだ、いまいち理解できてないです。。。
でも、なんとかクラスを使って自機移動まで作ってみました。
作ったクラスの2つです。

自機クラス
キャラクタークラス

【自機クラス】
自機の移動や画面からはみ出ないようにしています。

【キャラクタークラス】
自機・敵機・弾で共通化できそうな変数をまとめてます。
(x座標やy座標やスピードなど・・・)


キーボード入力の読み取りも
自機クラスに入れたかったのですが
どうもうまくいきませんでした。

ソースと実行ファイルは下のサイトにあります。
http://www.geocities.jp/battlecityjp/
0043( ・ω・)∩04/07/19 14:56ID:7vl/cHwF
次はマップを作ろうと思ってます。

自機クラスで画面の外に自機が出ないようにしてるので、
マップとの当たり判定もさせようと考えてたのですが難しそうなので、
mainの方で移動先の座標を出して、
マップとの当たり判定をして、大丈夫だったら自機クラスで移動。
ん〜なんかもっと綺麗に書きたい。。。


>>41
どうもです。
そうですね。フレームレートの調整はある程度できてからにします。
調整のしかたも思いつきませんし('';
0044( ・ω・)∩04/07/19 20:31ID:7vl/cHwF
http://www.geocities.jp/battlecityjp/s.html

まだ、足りないところがたくさんありそうな気がするのですが、
マップは大きなブロック(13×13)で作るとか、弾の大きさは・・・など
いろいろと決めました。

マップを作るうえで必要だったので。
0045名前は開発中のものです。04/07/21 10:37ID:uuB5cohb
>>44
地形に砂地もなかったか?
荒地だっけ?
0046名前は開発中のものです。04/07/21 13:20ID:EPpPlRxT
よくわかんないけどガンガレ
0047名前は開発中のものです。04/07/22 22:10ID:SITCAYjl
なんか応援したくなったのでキャラ描いてみますた。
戦車とかはペイントなりなんなりで回転させてほすぃ(時間なくなったので。手抜きでスマソ)

ttp://www.border.jp/uploader/img/8846.png

足りないキャラはシステムが出来てからってことでおながいします。

>44
荒地とかあるのは続編のタンクフォースのほうだったような。
あそこまでのキャラを描こうと思ったら確実に死ねまつ。
00484704/07/22 22:13ID:SITCAYjl
_no

× 44
○ 45

0049( ・ω・)∩04/07/24 21:58ID:KTcVWXgo
>>47
ありがとうございます。
ちゃんとできたときの絵はどうしようかと思ってたので。

今、試験期間中のためあまり進められません。
終わってから進めようと思います。
0050名前は開発中のものです。04/07/24 23:15ID:WVCkrGJs
楽しそうなスレだ
俺も試験終わったら、
ここ参考にしながらJavaで作ってみよう
0051名前は開発中のものです。04/07/25 15:52ID:Kcyx9Vfw
>>50
協力するぜ。俺も試験終わったら。
0052( ・ω・)∩04/08/01 16:00ID:eaePSko0
elのサイト(もう閉鎖されてます)を見てたら、

Q&Aの「複数のCPPファイルから、el.hをincludeしたい。」
 メインとなるプログラムにはMAIN_PROGRAMを、
 それ以外のプログラムにはSUB_PROGRAMを定義して下さい。
 こうすることでel.hが実体を持たなくなるので、コンパイルが可能になります。

  main.cpp
   #define MAIN_PROGRAM
   #include "el.h"

  sub1.cpp
   #define SUB_PROGRAM
   #include "el.h"


これでキーボードの入力の読み取りを自機クラスに何とか入れることができました。

それと、マップとの当たり判定はちょっと複雑なんですがなんとかできました。
ちょっと複雑なんで他の方法がないか考え中です。

それに弾同士の当たり判定。
弾が小さくて速いので通り抜けそうで・・・
初心者でも簡単にできるかなと思ったけど結構難しいですね('';
0053名前は開発中のものです。04/08/05 01:06ID:jyXW8GZk
ふつう速い弾の当たり判定ってどうするものなの?
0054名前は開発中のものです。04/08/05 03:14ID:s8LdeTfp
>>53
点じゃなくて、線で判定する
00554704/08/05 23:46ID:l8XMkoTU
斜めに飛ぶ弾とかがないから、矩形の判定処理で代用できると思うよ。
絵のほうは暇を見て増やしてまつ。
0056( ・ω・)∩04/08/06 23:02ID:0sFGptW2
なるほど。
これでひとつ問題が解決できそうです。
ありがとうございます。

それにしても、開発の速度がどんどん遅くなってる・・・(--;
0057名前は開発中のものです。04/08/09 09:10ID:TxMxWFVj
地道に進んでるようじゃのう。よしよし。
0058名前は開発中のものです。04/08/17 22:27ID:vYCYRBKg
http://gamdev.org/w/?%5B%5B%c3%ca%b3%ac%c5%aa%b3%d8%bd%ac%a1%aa%5D%5D
こんなんあった
0059( ・ω・)∩04/08/24 02:17ID:/PiImTUl
マップの表示とマップの障害物との当たり判定を作りました!

>>47さんから頂いた絵を自機に使いました。
レンガは・・・一部だけ使いました。次ぐらいに大きさを合わせます。

マップは今マップエディタを作る余裕がないので、
とりあえず、テキストから読み取るようにしました。
これなら、メモ帳で作れるので。


障害物との当たり判定は、
移動前と仮移動後の間のマスを1つずつ調べて、
障害物があったら、その障害物の前までの移動距離を返す関数を作りました。
その移動距離から移動後の座標を出すようにしてます。

なんだか間違ってそうなところがありそうで不安です・・・


次は、弾を発射です。
その次は、弾とマップの障害物との当たり判定です。
早くレンガを壊したい!!
0060名前は開発中のものです。04/08/24 04:20ID:sdxYJefI
>>59
順調そうでなによりだ
その調子でファイトー
0061名前は開発中のものです。04/08/25 02:58ID:KZrGgGXZ
自機はええなw
0062名前は開発中のものです。04/08/25 18:09ID:r9yYYXGW
http://www004.upp.so-net.ne.jp/moyashikko/funa/tank.zip
これ作って友達に見せたら、バトルシティみたいって言われた。
誰も対戦してくれなくて、テストプレイも何もできない状態ですけどね…。w

横槍でごめりんちょ。
0063名前は開発中のものです。04/08/26 14:02ID:uDW62OsJ
>>62
よくできてるけどバトルフィールドではないな。
0064名前は開発中のものです。04/08/26 15:34ID:Lib8gHjj
>>63
たしかにバトルフィールドではないなw

>>62のはバトルシティを作ろうとして作ったんじゃないし
しょうがないさ
0065名前は開発中のものです。04/08/27 00:18ID:59ITK8Dw
バトルフィールドも面白いんだよな。いまはRTSが近い感じだな。
0066( ・ω・)∩04/08/29 00:40ID:RGX1hLFJ
>>58
おお、そこはこの前見ました。
スレ立てた時はここもそんな風にしたかったんですけどね。
自分に力なくどんな順序で作るかうまくイメージできなかったのでもう諦めました。
行き当たりばったり完成に向います('';
でも、完成したら、そこみたいにまとめるつもりです!

>>62
たった3日でそこまでできるんですか!すごい!!
自分はBattleCity作り始めてもうすぐ2ヶ月です・・・(まだまだ、完成は遠いでつ)



すいません、バトルフィールドってなんですか?
検索しても「Battlefield 1942」とかしか出てこなくて・・・
0067( ・ω・)∩04/08/29 00:43ID:RGX1hLFJ
sage忘れちゃった。。

弾の発射とブロック(障害物)の破壊を作りました!

前回同様、自機の移動と弾の移動は速いままです。
画面の大きさを変えてみたんですが絵が変になるので今回は変えませんでした。

ポインタを使って自機クラスからマップクラスの関数を呼び出す方法を覚えたので
自機とマップとの当たり判定が自機クラス内で処理できるようになり、
mainが少しすっきりしました。

次はなにを作ろう・・・敵機かな。
敵機のAIは難しそうですね。。
とりあえず、敵機を作ってみます。
0068名前は開発中のものです。04/08/29 03:20ID:MHuIalwt
オレも勘違いしてたはw フィールドコンバットと。
0069名前は開発中のものです。04/08/29 03:51ID:t812oNyN
なぜにビッグブリッヂ?ちょとワラタ
00706204/08/29 04:42ID:nU29DQl2
遊んでくれた人がいてうれしかったです。
遊んでくれてサンキューさんです。
友達はゲームしない人が多いので、感想も聞けなくて。
3日と言ってもお盆中に一日12時間くらいかけて作ったので、
けっこう時間はかかってます(笑)

敵機の移動アルゴリズムは手がかかりそうですねー!
がんばってください!
0071( ・ω・)∩04/08/29 16:47ID:RGX1hLFJ
AIはどんなふうに作ればいいのでしょう・・・
今のところ思いついたものを下に書きました。
とりあえず、こんな感じで試してみようと思っています。

--------------------------------------------
敵機の目的:
 ・陣地の破壊
 ・自機の破壊
 
行動:
 ・初期位置から陣地へのルートを調べ、ランダムでルートを選ぶ。
(??%の確率で最初からレンガを無視してルート探索)
(陣地までのルートが無い場合:レンガを無視して再ルート探索)
(それでも無い場合:行ける所まで移動する。到着したら再々ルート探索)

 (移動中)
 ・陣地が直線上に存在した場合:??%の確率でその方向に1発撃つ。
 ・自機が直線上に存在した場合:何度もその方向に撃ちつづける。
(間に防弾壁がある場合は撃たない。)

 ・敵機同士が衝突したら再ルート探索。

 ・レンガと衝突した場合、レンガを破壊する。
0072名前は開発中のものです。04/08/29 18:56ID:KYQTPY63
オリジナルにはそこまでのロジックは多分入ってないと思われ。
そんなに賢いとあっという間にやられそうだ。
思考が馬鹿でも数多く敵が出てくれば結構強いと思うけどな。
プレーヤは陣地を守んなきゃいけないんだし。

最初は画面下真ん中への移動しつつ、適当にランダムな動きをし(障害回避)、
弾も適当に撃つって感じでもそこそこ遊べると思ふ。
0073名前は開発中のものです。04/08/29 18:57ID:MHuIalwt
とりあえずそれで作成してみると良いと思う。
バランスなどは実際に作ってからじゃないと取れないものなので。

経験をつむと調整作業を短縮できるようになるが、自力でできない
作業の省略は練習にならんのでまず作れぃ。
0074名前は開発中のものです。04/08/29 23:05ID:jOomCCJ/
>71
行動は
・基本は直進
・前方が壁なら方向転換
・たまに方向転換
・前方に何もなくてもたまに撃つ
・前方に自機がいたら撃つ
これくらいの簡単ロジックでも十分ゲームになると思われ
0075名前は開発中のものです。04/08/30 16:01ID:mJPPvXlu
パックマンみたいに数種類の超単純なロジックを揃えるのも
0076( ・ω・)∩04/09/15 21:21:05ID:losKJYUJ
今まで、PCに触れないところに行ってました。

そして、久しぶりプログラムを見たら・・・
ごちゃごちゃしてて、自分でもさっぱり分からなくなってましたorz
ちょっと離れてただけでここまでわからなくなるとは・・・('';

今、簡単なフローチャートを書いて頭の中を整理中です。
0077名前は開発中のものです。04/09/16 01:30:05ID:ejJ+5J5O
ガンガレ
0078名前は開発中のものです。04/09/17 02:30:26ID:9Yy7gs00
一念発起してモジュール分けをやるんだ。
0079名前は開発中のものです。04/09/17 18:10:15ID:xO/NyFmL
漏れ、参加しようか?
マップエディタくらいなら作れるよ。
ゲームの基本的な仕様は今更ながら参加しづらいんだけども。
0080名前は開発中のものです。04/09/17 20:34:58ID:1kORR/c9
>>79
共同で製作しようって企画ではないんじゃないか?
0081( ・ω・)∩04/09/18 16:09:26ID:Y/aHvJYv
>>72-75
どうもありがとうございます。
今、かなり賢いAIも考え中です。
まだ、先のことですがネットに対応して、「複数のプレイヤー vs AI」の時に使えそうなので。

>>77
ガンガレって「頑張れ」って意味だったのですね。知りませんでした.
ありがとうございます。頑張ります!

>>78
モジュールの意味は検索してなんとなく分かったのですが、
どう分けるのかイメージできなくて、
もう少し調べてみないとできそうにないです。

>>79-80
スレ立てたときは共同で作ろうと思ってたんです。
自分だけで作れる自信が無くて・・・。
今は、みなさんの助言のおかげで完成できそうな気がしてます。

マップエディタを作ってもらえるのなら、頼みたいのですが、
まだ、データの形が決まってないところがいくつかあるので('';
0082( ・ω・)∩04/09/18 16:12:30ID:Y/aHvJYv
敵機のAIを作りました。
>>74さんのをそのまま使いました。ありがとうございます。

1.基本は常に前進
2.前方が壁ならランダム方向転換
3.xx%の確率でランダム方向転換
4.前方に何もなくてもxx%の確率で撃つ
5.前方に自機&陣地が存在したらxx%の確率で撃つ

(xx%は0〜100まで変えられます。敵機の種類ごとに変更可能。)
(実行ファイルの敵機は 3を1% 4を3% 5を50% にしています。)

思ったよりうまく動いてると思います。
でも、当たり判定を作って、速度調整をした後にもう一度
調整か改良しないといけないかもしれません。
何か動きが違う感じがするので。

次は、弾、自機、敵機の当たり判定を作りたいと思います。
0083名前は開発中のものです。04/09/18 17:26:22ID:9LXfRJnU
右方向を向いて壁に密着して弾を撃つと、一番手前の一番上のブロックが
1個だけ残ってるね。
00848004/09/18 18:27:55ID:HW6mCAXn
>>81
漏れも個人で作ってみる。
お互い頑張ろう。
0085名前は開発中のものです。04/09/18 23:00:38ID:rglvGYN7
バトルシティみたいなゲーム、ソース付きでBASICマガジンのホームページにうpされてるよ。
投稿プログラムのコーナーの2000年5月号のとこ
0086( ・ω・)∩04/09/20 01:12:41ID:Oexw1q7P
>>83
何度も試したんですが、そのバグが出てきませんでした。
なので、修正はもう少しかかりそうです..

>>84
はい!頑張りましょう。

>>85
どうもありがとうございます。
参考します!
0087( ・ω・)∩04/09/20 01:46:06ID:Oexw1q7P
弾-弾 弾-自機 弾-敵機 の当たり判定を作成しました。

一応、今は当たってちゃんと消えてるのですが、
ゲーム速度を落としたらバグがでてくるかもしれません(''
(自機は弾が当たっても消えません。)

------------
ちょっと質問です。
弾はshot[8]  敵機はenemy[4]の配列を使ってるのですが、
これは一般的な方法なのでしょうか?

いくつかプログラムを見たんですが、
違うやり方もあるようなので、ちょっと気になって。

ttp://www9.plala.or.jp/sgwr-t/c/sec15-5.html
最初は↑のような方法でしたかったのですが、
なんだか難しそうだし、変数が増えそうなので諦めました。
0088名前は開発中のものです。04/09/20 01:58:55ID:f+AcIb8r
>>87
リスト構造を手っ取り早く使いたいなら、STLのlist(vectorでも良いけど)を使うと楽じゃない?
00898004/09/20 02:07:50ID:VdXYB/LI
現在、自機の表示・移動まで作成しました。
次は弾の発射を作ってみようと思います。

( ・ω・)∩さんと同じようにELを使って作成しようとしたのですが、
なんだかファイル分割が出来なくて諦めてしまいました。

代わりに、ここのライブラリを使用しています。
ttp://www.interq.or.jp/black/minami-m/
0090名前は開発中のものです。04/09/20 05:12:43ID:gIDmjFga
>>87
リストは便利だけど、将来的に使い方を覚えるので良いと思うよ。
STLのListとそのページのやりかたは似たようなものなので両方勉強してみるのもよし。

メリットとしてはEnemy[4]だと敵が4機か1機か0機か関係ナシに4回チェックしなければ
ならないけど、リストなら1機なら1回だけしか処理を呼ばなくて良くなる。

場面ごとに出現する敵の数やアイテムの数が大幅に変動するようなものだとリストにしておけば
CPUパワーやメモリ消費を必要最小限に抑えることが出来るようになる。


ちなみに配列の敵の数は#defineか、const変数で定義した方が良い。あとで増やす時楽になるので。

#define ENEMY_VALUE 4
もしくは
const int ENEMY_VALUE = 4;

として、敵の配列の最大数として使用している4という数字をENEMY_VALUEに置き換えれば
4機じゃなくて8機にしたいときスムーズに変更できる。
0091名前は開発中のものです。04/09/20 12:06:36ID:BYeKGbVO
初心者がSTLとかにいきなり手を出さない方がいいと思う。いろんな意味で。
0092名前は開発中のものです。04/09/20 14:50:54ID:7/mB1suy
とりあえずEffectiveC++とEffectiveSTLぐらいは一通り読んでから作った方が良いな
0093名前は開発中のものです。04/09/20 17:12:22ID:kLjr1+BM
えー
0094( ・ω・)∩04/09/22 00:24:40ID:/4Z81bhj
STLのlistですか。_φ(・ω・ )メモメモ
このゲームは、ユニット数が少ないから配列でもよさそうですね。
でも、結構使えそうな気がするのでゆっくりと調べてみます。
どうもありがとうございました!

>>89
ファイル分割が出来ない理由って>>52ですか・・・?
間違ってたらすいません(''
0095( ・ω・)∩04/09/22 00:25:35ID:/4Z81bhj
今回、作ったところは下の3つです。
・弾の再装填時間を作成
・自機、敵機の停止時間を作成。(自機・敵機が一定時間動かなくなる機能)
・爆破表示 [爆破クラスの作成](自機・敵機が破壊された時のみ表示)

弾の再装填時間を忘れてました('';
敵機の停止時間は、動きを止めるアイテムのためです。
自機は味方機から撃たれた時のためのです。

次は、、、アイテム関連を作ります!
00968004/09/22 01:43:51ID:XP6c+MBO
>>94
その方法は試したんですけど,改善されませんでしたorz
別のライブラリに乗り換えた今も,時々そのことを思い出して頭がもやっとします。
00974704/09/23 00:31:44ID:k7D7aDWV
おー、ガンガッテるね。
そろそろ画像をうpしようと思って来たら丁度アイテム作成か!
もう用意してあるよ。でもアップローダが使えないみたいでつ。
0098名前は開発中のものです。04/09/23 00:56:26ID:ix/1QRkO
こっちは?
http://gamdev.org/up/upload.php
00994704/09/23 19:31:44ID:Tmtf5ZoF
>98
ありがd。さっそくうpしてきました。
ttp://gamdev.org/up/img/1326.png

ちなみにちゃんと組み合わせるとこんな画面になりまつ。
ttp://gamdev.org/up/img/1326.png
01004704/09/23 19:49:33ID:Tmtf5ZoF
組み合わせ画像の番号がコピペでそのままだった・・・orz

× 1326.png
○ 1327.png
0101( ・ω・)∩04/09/25 21:47:34ID:OFktArWF
画像、ありがとうございます!!
さっそく使わせていただきました。

・アイテム関連を作成。
・バリア関連の作成(表示方法は考え中)
・敵機出現管理関数の作成(現在、出現間隔は最短に設定)[最大20機まで]

を作りました!


ttp://gamdev.org/up/img/1327.png
この画像を見て思ったんですが、
画面の大きさは今のままでもいいのでしょうか?
小さいかなと思って、もっと大きくすることしか考えてなかったので('';
自分はこのままでもよさそうな気がしてきてます。
0102名前は開発中のものです。04/09/26 04:40:43ID:/e+Ill1F
>>101
単純な拡大でも良いから倍解像度で遊べると嬉しいなぁ
0103名前は開発中のものです。04/09/28 19:09:35ID:743xQImD
というかあのサイズはどの環境に丁度いいんだろう。
01044704/09/28 21:46:54ID:EN3TuKfn
320×240あれば足りると思うけれど、
640×480にして拡大表示するのもありでつね。
スキャンラインも入れるとシブいかも。


そうそう。
バトルシティのキャラって装甲車になっても
絵のサイズは16×16だったんですね。
今度までに描き直しておきますです。
0105名前は開発中のものです。04/10/12 03:44:36ID:5BYyWGXd
試験で忙しいのだろうか。
応援age
0106名前は開発中のものです。04/10/12 16:26:24ID:UV7As7sf
C++歴2週間そこそこじゃなぁ・・・
01074704/10/13 21:04:29ID:38kzEK6k
>106
2週間で絵が出せて動かせれるなんて漏れより凄いですよ。
もっとも漏れがカスなだけかもしれんけど。

>101
とりあえずChangeDisplaySettings()で320×240に変更して、
画面左上でもいいから表示できればいいんじゃないかな。
あとで画面真ん中に表示できるように改造すればいいだけだしね。
01088004/10/14 01:40:21ID:ET88o5FU
こっそりのんびり作ってる80です。

砲弾の発射を実装しました。
次はマップ表示・当たり判定っぽいです。

( ・ω・)∩さんと仕様が被ってしまうと良くないので
いろいろ独自仕様なとこ考えてます。

そういえば、マップエディタの人はどこ行ったんだろう。
漏れが余計なこと言ったからかな・・・

0109名前は開発中のものです。04/10/15 19:12:57ID:p7Ovp/QY
YO
■ このスレッドは過去ログ倉庫に格納されています