初心者たちが勉強しな ..
[2ch|▼Menu]
1:( ・ω・)∩
04/06/01 16:36 TlsWVL74
前からゲームを作ってみたいなぁと思ってたんだけど
ひょんなことから「Microsoft Visual C++ 6.0」を手に入れました。

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

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

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

BattleなCity(バトルシティー攻略ページ)
URLリンク(www5d.biglobe.ne.jp)
あぷろだ
URLリンク(www.border.jp)
お勉強ページ 勝手にリンク 第2版
スレリンク(tech板)l50

2:名前は開発中のものです。
04/06/01 16:37 k6jz7R3Y
ない

3:( ・ω・)∩
04/06/01 16:38 TlsWVL74
最初の目標は
「戦車の絵をウィンドウに表示する」です。

その次の目標は
「キーボードからのキー操作で戦車の画像を動かす」です。

とりあえず、この2つをクリアしたいと思います。

4:名前は開発中のものです。
04/06/01 16:44 VcQoCzhw
バトルシティーは好きだった。がんばってちょうだい
でひとつ聞きたいのは>>1のプログラム経験。C++歴2時間なのはわかったけどその他の言語は修得してる?
もし全くの未経験者だったら完成はあやしくなるんじゃないかと思って

5:名前は開発中のものです。
04/06/01 17:02 BQxV4kvC
プロジェクトスレッドについて
概要や製作状況をまとめたWebページがあることが最低条件です。
この条件を満たさない場合は単発依頼スレとみなされます。
実際に動くものがあると説得力があります。


6:名前は開発中のものです。
04/06/01 17:06 jZYSHzvd
弾が当たって壁が壊れるところが難しいね

7:名前は開発中のものです。
04/06/01 17:39 wM8XQTZR
>>1
ひょんなことから「Microsoft Visual C++ 6.0」を手に入れました=Winny


8:名前は開発中のものです。
04/06/01 17:41 SXuUQaoe
ないってば

9:名前は開発中のものです。
04/06/01 18:03 VhyvnOZC
>>7
友人がWinnyでVC++落とす。
コピーして貰う。
 = ひょんなことから「Microsoft Visual C++ 6.0」を手に入れました。

かもね。

10:名前は開発中のものです。
04/06/01 21:45 TlsWVL74
>>4
他の言語はVBしか使ったことがありません。
今日、猫でもわかる・・を見てVBより難しいことがわかったんですが、
なんとか形にはしてみます。
>>5
サイトを作らないとまずいんですか
動くものといってもウィンドウを出すものしか・・・
サイト明後日までには用意します。
ご忠告、ありがとうございました。
>>6
自分が見当違いなこと言ってるかも知れませんが、、
1ブロックを縦に4列、横に4列の16個で
弾が当たった方向の1列を消すってのはどうでしょうか
というより、16個で1ブロックを作るって言ったほうが早いですね・・・
素人考えですいません。

>>7 >>9
誤解させそうな文章ですね。すいませんでした。
実は、工業系の大学にいる友人から貰ったノートパソコンの中に入ってました。
大学に入学した時に買わされたそうです。
でも、まったく使わないそうで2万円で貰っちゃいました。
VC++が入ってるなんて知らなかったので>>1の様な文章になったんです。

11:( ・ω・)∩
04/06/01 21:52 TlsWVL74
URLリンク(www.kumei.ne.jp)
なんとか↑のをコピペして、
ウィンドウを表示させることまでは成功しました。
(ちょっと感動、、、コピペしただけなんですけどね・・・)

URLリンク(www.kumei.ne.jp)
今は、↑を読みながらビットマップの画像を
表示させるところを作ってます。

ちょっと質問があります。
このようなゲームを作るときはDirectXを使ったほうがいいんでしょうか?
まだ、先の話ですがネット対戦で10vs10を (できるならもっと多く。)
できるようにしたいと思ってるのですが。

12:名前は開発中のものです。
04/06/01 23:53 HPYoBEBB
10vs10はちと多いのでは?
4vs4あたりもちょっと多め。
2vs2が理想。
1vs1もまた理想。

でもまずは1vs壁から作らん事には・・・
わしもそのうち作るかも。(多分flashになりそうだが)
とにかく、ガンガレ。

13:名前は開発中のものです。
04/06/02 01:39 g2/Df+nh
なんかこのスレあたたかいな。
昔BASICやってたりとかしたから、応援したくなる。

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

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



14:名前は開発中のものです。
04/06/02 02:50 Do7B8O4G
DirectX じゃなくて OpenGL を使った方がよいと思うが。

15:名前は開発中のものです。
04/06/02 02:53 Do7B8O4G
ちなみに OpenGL と C++ のリンクおいときますね
URLリンク(www.center.wakayama-u.ac.jp)
URLリンク(black.sakura.ne.jp)
URLリンク(www1.kcn.ne.jp)
URLリンク(www.kumei.ne.jp)

16:名前は開発中のものです。
04/06/02 08:49 y2+rhgtC
まあ、こんな初期段階であれこれ言うのも何だと思うが、

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

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

ちなみにお前の現在位置は、数学で言うと一桁の足し算ができたぐらいだがな。

17:受験生 ◆3VUXqvbfSY
04/06/02 09:33 22urPlb/
応援してますよ>>1
…でも、VB使えるなら…VBで組めば?
BMPもウィンドウもクソ簡単だよVBなら…
まあVC++の方が速いことは認めるが…
大した処理では無い上に、表示がDirectXなら…
VBでも変わらんよーな…winsockなら誰でも通信対戦作れるし…

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

URLリンク(www.monsho.hp.infoseek.co.jp)

18:名前は開発中のものです。
04/06/02 18:12 XW5gCXFe
>>11
DirectXというか、まずDIBを勉強しなさい。DIBならDirectX使うときにも
応用が効く。ネコ26章のサンプルはDDBなのでゲームには向かない。
簡単に言うとDIBは仮想のビデオメモリのようなもの。直接書き込んで
bltするだけで好きな画像を表示できる。

19:名前は開発中のものです。
04/06/02 23:15 LNnPIvSC
けっこうまったりと助言が多くて良いスレですね。
フラッシュで作るんが一番簡単そう。
バトルシティーくらいなら、”もうだいたい出来てる”
って言えるくらいだもんなあ、フラッシュ

20:名前は開発中のものです。
04/06/02 23:29 EfDmktMn
>>18
DIBってBitBltとかのこと?
あれだけでも十分ゲーム作れるよねぇ

21:名前は開発中のものです。
04/06/03 00:23 m/jDGGaL
別にC++屋・Java屋・VB屋になりたいわけじゃない
鯖屋にも興味がない

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

ひまわりで遊んでみませんか?
URLリンク(hima.chu.jp)

日本語でかんたんプログラミング!
「ひまわり」で学ぶアプリケーション作成
URLリンク(hima.chu.jp)


22:( ・ω・)∩
04/06/03 00:49 Q84kowAy
みなさんどうもありがとうございます。
>>18さんが教えてくれたDIBで表示させることにしました。
(基礎?ぽいような気がしたので)

創作プログラミングの街
URLリンク(www.sm.rim.or.jp)

の「BMPファイルからDIBを読み込む」
URLリンク(www.sm.rim.or.jp)

のところにあったソースをコピペして画像を表示させるこに成功しました!
今、1行ずつ意味を調べてるところです。
画像を表示させるだけでもたいへんですね

23:名前は開発中のものです。
04/06/03 10:53 WS0sBkjF
何か普通にちゃんとやってるね

現段階でコピペすんのは構わないと思うんだけど、
動作内容を理解することの方がずっと重要だよ。
サンプルを一個動かしてみるたびに、
修正して何か応用品を作ってみるってのはどうかな。
もっと色んなことを学べるし、もっと楽しいと思うよ。

24:受験生 ◆3VUXqvbfSY
04/06/03 11:49 qNQL62tU
>>1
まずは数当てでも作ってみれば?
このままだと…コピペしかして無さげに見えるよ

25:( ・ω・)∩
04/06/03 23:59 Q84kowAy
サイト作りました(あぶない。。あと少しで嘘つくことになるとこだった
急いだのでかなり雑です。。。
URLリンク(www.geocities.jp)

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

>>24
そうですね。
まだ、1つも自分で作ったものがないし、
少しは頭に入ってるか
今から数当てゲーム作ってきます。

26:( ・ω・)∩
04/06/04 01:21 ydPlS60G
初めてのC++でのゲームです。(数当てゲーム)
1時間もかかっちゃいました。
ソース↓
URLリンク(www.geocities.jp)

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

関係ないですが、数当てゲーム、最高7回で成功

27:名前は開発中のものです。
04/06/04 02:41 R69FQnPG
2,3日の学習でこれだけできれば問題ないっしょ。とっととバトルシティ作っちゃって下さい。
ちなみに細かいことだけど return に括弧はいらないよ。
俺もひまができたらバトルシティ作ってみよかな。

28:名前は開発中のものです。
04/06/04 09:46 Tvj07fVB
>>26
STLを使ったソースを参考にしてるな。STLを使わないんだったら

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


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

STLは気が向いたら勉強すれば良いと思う。

29:名前は開発中のものです。
04/06/04 20:15 fjK1VDKm
・・・ごめんなさい恥ずかしいこと聞きますが
最近のCってprintf使わないモンなんですか?

30:名前は開発中のものです。
04/06/04 23:34 ZGm1ocIY
勉強って書いてあるけど手っ取り早くおおよその全体を掴みたいなら
↓のライブラリを使うといいと思う
URLリンク(www3.justnet.ne.jp)
cの知識と高卒程度の四則演算が出来ればサクサク作れるよ

上のサンプル見てもワカランってな時は↓のサイトにゲームのサンプル載ってるから
参考にするといいと思う
URLリンク(ponk.jp)



31:名前は開発中のものです。
04/06/04 23:40 sR1TnrKn
>>29
C++だとprintfよりcoutのほうが使われるね

32:( ・ω・)∩
04/06/08 00:53 8RxieY0/
>>30
ありがとうございます。
簡単そうなのでちょっと使って見ます


土日できなかったから、
今日こそは勉強するぞーっと思ったらこんな時間・・・orz

33:( ・ω・)∩
04/06/10 00:01 6zLM4DrQ
elを使って作るとほんとに簡単ですね
>>30さんに教えてもらったサイトを参考に
(自機の操作・弾・敵・当たり判定)まで作ってみました。(かなり適当ですが・・)
URLリンク(www.geocities.jp)
(実行ファイルはサイトの方に。)

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

elを使うと簡単なんですが、
こんなに簡単に出来るものを使っていいのかと逆に悩みます・・・

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


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

ビルド時に最適化掛ければさらに速くなると思うので、当面は必要なものを追加していく方向でがんがれ〜。

35:名前は開発中のものです。
04/06/10 03:16 Ock/rmst
> こんなに簡単に出来るものを使っていいのかと逆に悩みます・・・
最初はどうかと思ってたけど、
この姿勢はなかなかいいな。
向上心を感じるよ。でも、

> 簡単なようでそうでもないので。全部に手を出すとスゲー時間が掛かるので
> まずelを使ってバトルシティの完成を目指すのがいいと思う。
俺もこれに同意。
暫くの間、ゆるいライブラリに依存しててもいいんじゃないかな。
基礎構文がスラスラ出てきて、脳内コーディングもできるようになったら
DirectX なり SDL なり、もうちょっと難易度の高いものに朝鮮すればいいじゃない。
別に誰に急かされてる訳じゃないし、ゆっくりでいいと思うよ。

36:名前は開発中のものです。
04/06/10 18:40 ZmE5oMyN
elもの足りなかったり、最終的にはdirectXで作りたいんだったら
URLリンク(www.twin-tail.jp)
にあるライブラリ使うと勉強になるかもしれない

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

宣伝くさいがC++入門書には
これならわかるC++―挫折しないプログラミング入門 小林 健一郎 (著)
をオススメしとく。ゲーム作成っぽくPGを学べるからサクサク進めるよ

37:名前は開発中のものです。
04/06/18 12:26 79uzekdF
もう飽きたのか?

38:名前は開発中のものです。
04/06/18 17:48 r0laBVzQ
便りがないのは元気な証拠。

39:( ・ω・)∩
04/07/17 20:12 879HB6EF
もう、一ヶ月も経ってしまったのですね・・・
忙しさにかまけて全く進めていませんでした。

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

>>37-38
すいません。。

40:名前は開発中のものです。
04/07/17 20:17 879HB6EF
処理の流れを簡単に考えたのですが、
上から順に

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

こんな感じにしようかと思っています。
今は、いくつかゲームのサンプルを見てたんですが、
クラス?というものが使われているみたいなので、
クラスについて勉強中です。

41:名前は開発中のものです。
04/07/19 12:18 JtU3sKHQ
>>1よ久しぶりに現れたな。

で、elがどうやってタイミング調整してるか知らんが、
本質的な処理ではないフレームレートなんかは後付けでいいんじゃないか?
初心者ならまず一通り動くものを作ったほうが良いと思わんでもない。

42:( ・ω・)∩
04/07/19 14:51 7vl/cHwF
クラスって難しいですね
まだ、いまいち理解できてないです。。。
でも、なんとかクラスを使って自機移動まで作ってみました。
作ったクラスの2つです。

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

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

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


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

ソースと実行ファイルは下のサイトにあります。
URLリンク(www.geocities.jp)

43:( ・ω・)∩
04/07/19 14:56 7vl/cHwF
次はマップを作ろうと思ってます。

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


>>41
どうもです。
そうですね。フレームレートの調整はある程度できてからにします。
調整のしかたも思いつきませんし('';

44:( ・ω・)∩
04/07/19 20:31 7vl/cHwF
URLリンク(www.geocities.jp)

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

マップを作るうえで必要だったので。

45:名前は開発中のものです。
04/07/21 10:37 uuB5cohb
>>44
地形に砂地もなかったか?
荒地だっけ?

46:名前は開発中のものです。
04/07/21 13:20 EPpPlRxT
よくわかんないけどガンガレ

47:名前は開発中のものです。
04/07/22 22:10 SITCAYjl
なんか応援したくなったのでキャラ描いてみますた。
戦車とかはペイントなりなんなりで回転させてほすぃ(時間なくなったので。手抜きでスマソ)

URLリンク(www.border.jp)

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

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


48:47
04/07/22 22:13 SITCAYjl
_no

× 44
○ 45



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

今、試験期間中のためあまり進められません。
終わってから進めようと思います。

50:名前は開発中のものです。
04/07/24 23:15 WVCkrGJs
楽しそうなスレだ
俺も試験終わったら、
ここ参考にしながらJavaで作ってみよう

51:名前は開発中のものです。
04/07/25 15:52 Kcyx9Vfw
>>50
協力するぜ。俺も試験終わったら。

52:( ・ω・)∩
04/08/01 16:00 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"


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

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

それに弾同士の当たり判定。
弾が小さくて速いので通り抜けそうで・・・
初心者でも簡単にできるかなと思ったけど結構難しいですね('';

53:名前は開発中のものです。
04/08/05 01:06 jyXW8GZk
ふつう速い弾の当たり判定ってどうするものなの?


54:名前は開発中のものです。
04/08/05 03:14 s8LdeTfp
>>53
点じゃなくて、線で判定する

55:47
04/08/05 23:46 l8XMkoTU
斜めに飛ぶ弾とかがないから、矩形の判定処理で代用できると思うよ。
絵のほうは暇を見て増やしてまつ。

56:( ・ω・)∩
04/08/06 23:02 0sFGptW2
なるほど。
これでひとつ問題が解決できそうです。
ありがとうございます。

それにしても、開発の速度がどんどん遅くなってる・・・(--;

57:名前は開発中のものです。
04/08/09 09:10 TxMxWFVj
地道に進んでるようじゃのう。よしよし。

58:名前は開発中のものです。
04/08/17 22:27 vYCYRBKg
URLリンク(gamdev.org)
こんなんあった

59:( ・ω・)∩
04/08/24 02:17 /PiImTUl
マップの表示とマップの障害物との当たり判定を作りました!

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

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


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

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


次は、弾を発射です。
その次は、弾とマップの障害物との当たり判定です。
早くレンガを壊したい!!

60:名前は開発中のものです。
04/08/24 04:20 sdxYJefI
>>59
順調そうでなによりだ
その調子でファイトー

61:名前は開発中のものです。
04/08/25 02:58 KZrGgGXZ
自機はええなw

62:名前は開発中のものです。
04/08/25 18:09 r9yYYXGW
URLリンク(www004.upp.so-net.ne.jp)
これ作って友達に見せたら、バトルシティみたいって言われた。
誰も対戦してくれなくて、テストプレイも何もできない状態ですけどね…。w

横槍でごめりんちょ。

63:名前は開発中のものです。
04/08/26 14:02 uDW62OsJ
>>62
よくできてるけどバトルフィールドではないな。

64:名前は開発中のものです。
04/08/26 15:34 Lib8gHjj
>>63
たしかにバトルフィールドではないなw

>>62のはバトルシティを作ろうとして作ったんじゃないし
しょうがないさ

65:名前は開発中のものです。
04/08/27 00:18 59ITK8Dw
バトルフィールドも面白いんだよな。いまはRTSが近い感じだな。

66:( ・ω・)∩
04/08/29 00:40 RGX1hLFJ
>>58
おお、そこはこの前見ました。
スレ立てた時はここもそんな風にしたかったんですけどね。
自分に力なくどんな順序で作るかうまくイメージできなかったのでもう諦めました。
行き当たりばったり完成に向います('';
でも、完成したら、そこみたいにまとめるつもりです!

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



すいません、バトルフィールドってなんですか?
検索しても「Battlefield 1942」とかしか出てこなくて・・・

67:( ・ω・)∩
04/08/29 00:43 RGX1hLFJ
sage忘れちゃった。。

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

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

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

次はなにを作ろう・・・敵機かな。
敵機のAIは難しそうですね。。
とりあえず、敵機を作ってみます。

68:名前は開発中のものです。
04/08/29 03:20 MHuIalwt
オレも勘違いしてたはw フィールドコンバットと。

69:名前は開発中のものです。
04/08/29 03:51 t812oNyN
なぜにビッグブリッヂ?ちょとワラタ

70:62
04/08/29 04:42 nU29DQl2
遊んでくれた人がいてうれしかったです。
遊んでくれてサンキューさんです。
友達はゲームしない人が多いので、感想も聞けなくて。
3日と言ってもお盆中に一日12時間くらいかけて作ったので、
けっこう時間はかかってます(笑)

敵機の移動アルゴリズムは手がかかりそうですねー!
がんばってください!

71:( ・ω・)∩
04/08/29 16:47 RGX1hLFJ
AIはどんなふうに作ればいいのでしょう・・・
今のところ思いついたものを下に書きました。
とりあえず、こんな感じで試してみようと思っています。

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

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

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

 ・レンガと衝突した場合、レンガを破壊する。

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

最初は画面下真ん中への移動しつつ、適当にランダムな動きをし(障害回避)、
弾も適当に撃つって感じでもそこそこ遊べると思ふ。

73:名前は開発中のものです。
04/08/29 18:57 MHuIalwt
とりあえずそれで作成してみると良いと思う。
バランスなどは実際に作ってからじゃないと取れないものなので。

経験をつむと調整作業を短縮できるようになるが、自力でできない
作業の省略は練習にならんのでまず作れぃ。

74:名前は開発中のものです。
04/08/29 23:05 jOomCCJ/
>71
行動は
・基本は直進
・前方が壁なら方向転換
・たまに方向転換
・前方に何もなくてもたまに撃つ
・前方に自機がいたら撃つ
これくらいの簡単ロジックでも十分ゲームになると思われ

75:名前は開発中のものです。
04/08/30 16:01 mJPPvXlu
パックマンみたいに数種類の超単純なロジックを揃えるのも

76:( ・ω・)∩
04/09/15 21:21:05 losKJYUJ
今まで、PCに触れないところに行ってました。

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

今、簡単なフローチャートを書いて頭の中を整理中です。

77:名前は開発中のものです。
04/09/16 01:30:05 ejJ+5J5O
ガンガレ

78:名前は開発中のものです。
04/09/17 02:30:26 9Yy7gs00
一念発起してモジュール分けをやるんだ。

79:名前は開発中のものです。
04/09/17 18:10:15 xO/NyFmL
漏れ、参加しようか?
マップエディタくらいなら作れるよ。
ゲームの基本的な仕様は今更ながら参加しづらいんだけども。

80:名前は開発中のものです。
04/09/17 20:34:58 1kORR/c9
>>79
共同で製作しようって企画ではないんじゃないか?

81:( ・ω・)∩
04/09/18 16:09:26 Y/aHvJYv
>>72-75
どうもありがとうございます。
今、かなり賢いAIも考え中です。
まだ、先のことですがネットに対応して、「複数のプレイヤー vs AI」の時に使えそうなので。

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

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

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

マップエディタを作ってもらえるのなら、頼みたいのですが、
まだ、データの形が決まってないところがいくつかあるので('';

82:( ・ω・)∩
04/09/18 16:12:30 Y/aHvJYv
敵機のAIを作りました。
>>74さんのをそのまま使いました。ありがとうございます。

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

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

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

次は、弾、自機、敵機の当たり判定を作りたいと思います。

83:名前は開発中のものです。
04/09/18 17:26:22 9LXfRJnU
右方向を向いて壁に密着して弾を撃つと、一番手前の一番上のブロックが
1個だけ残ってるね。

84:80
04/09/18 18:27:55 HW6mCAXn
>>81
漏れも個人で作ってみる。
お互い頑張ろう。

85:名前は開発中のものです。
04/09/18 23:00:38 rglvGYN7
バトルシティみたいなゲーム、ソース付きでBASICマガジンのホームページにうpされてるよ。
投稿プログラムのコーナーの2000年5月号のとこ

86:( ・ω・)∩
04/09/20 01:12:41 Oexw1q7P
>>83
何度も試したんですが、そのバグが出てきませんでした。
なので、修正はもう少しかかりそうです..

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

>>85
どうもありがとうございます。
参考します!

87:( ・ω・)∩
04/09/20 01:46:06 Oexw1q7P
弾-弾 弾-自機 弾-敵機 の当たり判定を作成しました。

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

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

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

URLリンク(www9.plala.or.jp)
最初は↑のような方法でしたかったのですが、
なんだか難しそうだし、変数が増えそうなので諦めました。

88:名前は開発中のものです。
04/09/20 01:58:55 f+AcIb8r
>>87
リスト構造を手っ取り早く使いたいなら、STLのlist(vectorでも良いけど)を使うと楽じゃない?

89:80
04/09/20 02:07:50 VdXYB/LI
現在、自機の表示・移動まで作成しました。
次は弾の発射を作ってみようと思います。

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

代わりに、ここのライブラリを使用しています。
URLリンク(www.interq.or.jp)

90:名前は開発中のものです。
04/09/20 05:12:43 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機にしたいときスムーズに変更できる。

91:名前は開発中のものです。
04/09/20 12:06:36 BYeKGbVO
初心者がSTLとかにいきなり手を出さない方がいいと思う。いろんな意味で。

92:名前は開発中のものです。
04/09/20 14:50:54 7/mB1suy
とりあえずEffectiveC++とEffectiveSTLぐらいは一通り読んでから作った方が良いな

93:名前は開発中のものです。
04/09/20 17:12:22 kLjr1+BM
えー

94:( ・ω・)∩
04/09/22 00:24:40 /4Z81bhj
STLのlistですか。_φ(・ω・ )メモメモ
このゲームは、ユニット数が少ないから配列でもよさそうですね。
でも、結構使えそうな気がするのでゆっくりと調べてみます。
どうもありがとうございました!

>>89
ファイル分割が出来ない理由って>>52ですか・・・?
間違ってたらすいません(''

95:( ・ω・)∩
04/09/22 00:25:35 /4Z81bhj
今回、作ったところは下の3つです。
・弾の再装填時間を作成
・自機、敵機の停止時間を作成。(自機・敵機が一定時間動かなくなる機能)
・爆破表示 [爆破クラスの作成](自機・敵機が破壊された時のみ表示)

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

次は、、、アイテム関連を作ります!

96:80
04/09/22 01:43:51 XP6c+MBO
>>94
その方法は試したんですけど,改善されませんでしたorz
別のライブラリに乗り換えた今も,時々そのことを思い出して頭がもやっとします。

97:47
04/09/23 00:31:44 k7D7aDWV
おー、ガンガッテるね。
そろそろ画像をうpしようと思って来たら丁度アイテム作成か!
もう用意してあるよ。でもアップローダが使えないみたいでつ。


98:名前は開発中のものです。
04/09/23 00:56:26 ix/1QRkO
こっちは?
URLリンク(gamdev.org)

99:47
04/09/23 19:31:44 Tmtf5ZoF
>98
ありがd。さっそくうpしてきました。
URLリンク(gamdev.org)

ちなみにちゃんと組み合わせるとこんな画面になりまつ。
URLリンク(gamdev.org)


100:47
04/09/23 19:49:33 Tmtf5ZoF
組み合わせ画像の番号がコピペでそのままだった・・・orz

× 1326.png
○ 1327.png

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

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

を作りました!


URLリンク(gamdev.org)
この画像を見て思ったんですが、
画面の大きさは今のままでもいいのでしょうか?
小さいかなと思って、もっと大きくすることしか考えてなかったので('';
自分はこのままでもよさそうな気がしてきてます。

102:名前は開発中のものです。
04/09/26 04:40:43 /e+Ill1F
>>101
単純な拡大でも良いから倍解像度で遊べると嬉しいなぁ

103:名前は開発中のものです。
04/09/28 19:09:35 743xQImD
というかあのサイズはどの環境に丁度いいんだろう。

104:47
04/09/28 21:46:54 EN3TuKfn
320×240あれば足りると思うけれど、
640×480にして拡大表示するのもありでつね。
スキャンラインも入れるとシブいかも。


そうそう。
バトルシティのキャラって装甲車になっても
絵のサイズは16×16だったんですね。
今度までに描き直しておきますです。

105:名前は開発中のものです。
04/10/12 03:44:36 5BYyWGXd
試験で忙しいのだろうか。
応援age


106:名前は開発中のものです。
04/10/12 16:26:24 UV7As7sf
C++歴2週間そこそこじゃなぁ・・・

107:47
04/10/13 21:04:29 38kzEK6k
>106
2週間で絵が出せて動かせれるなんて漏れより凄いですよ。
もっとも漏れがカスなだけかもしれんけど。

>101
とりあえずChangeDisplaySettings()で320×240に変更して、
画面左上でもいいから表示できればいいんじゃないかな。
あとで画面真ん中に表示できるように改造すればいいだけだしね。


108:80
04/10/14 01:40:21 ET88o5FU
こっそりのんびり作ってる80です。

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

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

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



109:名前は開発中のものです。
04/10/15 19:12:57 p7Ovp/QY
YO

110:名前は開発中のものです。
04/10/15 19:36:01 XmketHMs
決めました

111:名前は開発中のものです。
04/10/15 23:53:38 +x/VxyVt
ほんとうにそれでいいのか?

112:名前は開発中のものです。
04/10/20 20:25:27 QkVrTGoy
>>111この一言によって
2人をめぐる運命の歯車は回り始めたのです。

113:( ・ω・)∩
04/10/29 00:27:59 BsjfUtDp
>>102-104 >>107
2倍3倍って感じで拡大できるようにしてみます。
値を変えるだけでできるみたいなので、それで試してみます。

>>105
試験じゃないけど忙しかったです。

>>106
2週間・・・?

>>108
独自仕様ですか!楽しみだ。
自分のはプログラムが大きくなってきて
バグが増えてきて独自の仕様とか考える余裕ないです(--;

>>109-112
お話の途中おじゃましてすいません('';

114:( ・ω・)∩
04/10/29 00:35:55 BsjfUtDp
いつの間にか一ヶ月も経ってました('';
来週は休みが多いので少しは進むかも

・フレームレート調整処理を追加(1秒間に30回程度更新)
・敵機同士の衝突判定 ( すり抜けたり、重なったりしないようにする処理も)
・[調整] 敵の更新回数を減らし速度の低下をしました。(速すぎるので)
・マップの表示方法の一部変更
・マップデータの修正(一部間違えてました)


敵機の速度をかなり落としのたで、
狙って撃てるようになりました('ー'

次は、レベルごとの弾の変化を作成したいと思います。
これで、防弾壁も破壊できるように!

115:( ・ω・)∩
04/10/31 14:39:51 aT8mkNkY
どうも風邪をひいちゃったみたいです。
また、遅れる・・・(´・ω・`)ショボーン

[修正]
・敵機が右上の位置から出なかったバグを修正
・アイテムの時計の敵機停止方法の変更
・自機の更新回数を減らした (自機の移動速度低下)
[追加機能]
・レベルごとの弾の機能を追加 (lv1 弾速が上がる lv2 弾が2つまで発射可 lv3防弾壁破壊可)
・自機、敵機の残機表示

自機の速度を下げたら、レンガとレンガの間に楽に入れるようになりました。
でも、自機の動きにちょっと違和感があるのでもう少し調整が必要かも

(今回は、自機の初期レベルが3になっている実行ファイルも入っています。)

次は、自機と弾の当たり判定を作りたいと思います。
これで、自機もやられるように・・・

116:名前は開発中のものです。
04/11/05 23:57:29 XmN1DdeJ
良スレ発見。がんばれ。

117:名前は開発中のものです。
04/11/09 03:54:34 BYZNqjuG
Borland C++ Compiler 5.5でバトルシティー作るのってMicrosoft Visual C++ 6.0で作るのと比べると大変過ぎでしょうか・・・?

118:名前は開発中のものです。
04/11/09 18:54:04 CCAQ9Qrg
ゲーム作るのにIDEはあんまり関係ないと思うよ。

119:名前は開発中のものです。
04/11/11 01:34:32 OHs4YyAZ
VC.NETに比べたらVC6.0でも大変だっていうやつはいるだろうな。

120:名前は開発中のものです。
04/11/11 13:25:12 mLxtVDRC
>>118
変わらないないのですか
参考書等見たらVCはウインドウを出すプログラム等は勝手に書いてくれるという話が載っていて
それが結構長いコードだったので不安になってます

121:名前は開発中のものです。
04/11/11 23:41:48 HdeAIiS0
>120
悪いことは言わないからHSPにしておきなよ。
バトルシティだったら十分処理間に合うだろうから。

122:名前は開発中のものです。
04/11/12 00:51:06 OkzvKccB
>>120
目的がゲームを作ることならHSPとか豆乳とか別の言語環境にしときなさい。
目的がC言語の勉強ならBCCの方が余計なところで煩わされない、
だけど、Windows上のプログラムがメインならVCが良いと思う。

123:120
04/11/12 03:23:42 clMGaKCb
バトルシティーで終わる気がないというのか
DirectXかOpenGL系に進むつもりなので・・・・

124:名前は開発中のものです。
04/11/12 13:25:54 7pdZL7B8
だったらウィンドウプロシージャ程度のコードで不安になってんじゃないよ!

125:120
04/11/12 16:18:56 lBwS/HFD
参考書じゃ端折られてて、何やってるのかまるっきりわからなかったので不安なってしまいました

126:名前は開発中のものです。
04/11/12 19:32:51 mm6jRjgC
分からないから調べるんでしょ?
一日10行でも、少しずつ進んでいけばいいじゃない

127:120
04/11/12 20:57:29 lBwS/HFD
まったくもってその通りですね・・・!

アドバイス等等ありがとございます

128:名前は開発中のものです。
04/11/13 00:57:41 sPccNQvK
120二等兵の健闘を祈る(゜д゜)ゞ

129:( ・ω・)∩
04/11/13 01:52:04 UlBt5ie1
>>116
どうもです。作る速度は遅いけど・・・がんばります!
良スレなのはみなさんのおかげですね。

>>120
がんばって('')/


[修正]
・高速用衝突判定
・敵機同士の衝突回避処理(敵機クラス内で処理)
[追加機能]
・自機の削除処理を追加 (残機が無くなってもゲームは終了しない。)
・自機、敵機出現時にバリア。
・バリアの仮表示 (動作確認のため)

速い物同士の当たり判定の方法を教えてもらったのに
変更するのを忘れてました・・・orz

この前P3 800MHzのPCでこのゲームを試したら、
最大でも3.0fpsしか出ませんでした。
性能は問題なくてもスムーズに動かないことってあるんですね('';

130:47
04/11/13 03:09:00 sPccNQvK
お! かなり出来てきたね〜。
前に言っていたキャラの16×16ドット化をしてきました。
これで★でパワーアップできるかと。

URLリンク(gamdev.org)

それからアイテム持った敵を点滅できるように赤く光った絵と
バリアのパターンも入れてみました。

最後に動作報告。
Celeron2.5でも24fpsくらいです。
あと、倒した敵キャラに当たり判定があるみたいで
壁も何もないところで爆発するバグがありました。

次は面クリア処理が入るとかなりゲームになるね。
引き続き頑張って〜。


131:80
04/11/15 21:14:48 yPY5zSbA
お久しぶりです。
皆さん着実に作業が進んでいるようですね。

それに比べて漏れは・・・orz

現在、ゲーム仕様の段階でつまづいています。
独自仕様なんて大それた事言ってますが、いいアイディアが浮かびません。

独自仕様となるようなもので、何かいいアイディアは無いでしょうか?
よろしくお願いします。

# そろそろ独自でプロジェクトページ作ろうかと思ってます

132:さんじゅ ◆BukiNdKASA
04/11/17 01:34:33 raV4ZcS3
改名&トリップテスト&ageです。

プロジェクトページ作りました。
URLリンク(f61.aaa.livedoor.jp)

133:名前は開発中のものです。
04/11/18 06:17:06 S89L9SLZ
なんとなく寝付けなかったのでSDLで作ってみた
なんかダレも実行ファイルまだうpしてないようなのでうpしてみた
とりあえず自機表示と移動とマップ表示と数字表示
弾はまだでない
ジョイパッドでやるといい感じ
Zキーかボタン0で変身
大抵の環境で動くんじゃないかと思うけどどうだろ?
SDLなのでLinuxでコンパイルしなおせば、きっとLinuxでも動くけど、
それはコンパイルしてないし、入れてない
URLリンク(venus.aez.jp)

134:133
04/11/18 09:32:24 S89L9SLZ
BattleTownSDL
とりあえずキリのいいところまでのバージョンをうp
Zまたはボタン0で発射
Xまたはボタン1で変身
URLリンク(up.satoweb.net)

135:名前は開発中のものです。
04/11/18 12:44:15 3fkVgfKs
>>133
( ・ω・)∩ さんのなら>>25のサイトあるよ

136:名前は開発中のものです。
04/11/18 15:59:33 S89L9SLZ
>135
そこにあったんだ
とりあえず落として遊んでみた
結構いい感じ
el使ってるのかねー?
elってジョイパッドは未サポート?

137:FINALFACTs ◆iWNwl/.CWE
04/11/19 06:21:58 OmJmrx8G
>>1
すげー。
ホームページの所にあるやつやってみたけど、十分ゲームしてる。
俺も、触発されてゲーム作ってみようと思った。
で、とりあえず、Cの入門から。

138:名前は開発中のものです。
04/11/19 06:41:16 CvTcRkeC
>>134
動きが滑らかで(・∀・)イイ!!



まだ開発中だからだろうけど気になったので報告

ブロックを3/4ほど削っても
→■■■■
→■■■■
→■■■■
→■■■■

上からの攻撃で
↓↓↓↓
□□□■
□□□■
□□□■
□□□■

□□□* ←この部分が壊れる。
□□□■
□□□■
□□□■

139:名前は開発中のものです。
04/11/19 07:09:50 h53/nGz6
基本は中央2マスなのか?

140:名前は開発中のものです。
04/11/19 07:26:59 CvTcRkeC
>>139
YES
当たり判定は2マス、崩れる範囲は4マス

141:( ・ω・)∩
04/11/21 22:35:40 UiSVC1dP
>>130
ありがとうございます!
そういえば、アイテム出す敵は赤でしたね。
すっかり忘れてました。

24ですかぁ
30になるようにしてるつもりなんですが、何か問題があるのかな。

>>131
いいアイディア・・・ん〜思いつかないorz
サイト作ったんですか!とっても見やすいですね。
うちの手抜きサイトをどうにかしたくなってきた('';

>>133
す、すごい。
絵が綺麗に表示されてて、動きもスムーズ!!
1ブロックよりもっと細かい単位で動いてそう

elのサイトを見たんですが、ジョイパッドのことは書いてないみたいです。
掲示板の方に「DirectInputでの・・・」「ジョイスティック用のを使って・・」
とかでジョイパッド用に使ってるみたいです。(よくわかりませんが。。。)

そういえば、レベルによって弾の表示って変えるの忘れてた.

>>135
どうもです。
たまにサイトのアドレスを貼っておいたほうがよさそうですね。

>>137
Cでゲーム作るんですかぁ
自分も>>1のころはほとんどCを知りませんでした。
( ・ω・)∩応援してます。

142:( ・ω・)∩
04/11/21 22:41:40 UiSVC1dP
[修正]
・当たり判定の関数を2つにした。(前まで使ってた当たり判定・弾同士の高速用)
・バリア表示
[追加機能]
・画面の大きさを(1、2、3)倍と変更する変数を追加
・自機レベルにあった自機表示


画面を大きくするとなぜかレンガの表示が変になる('';

全ての当たり判定を高速用の当たり判定で処理してたら、
「敵機同士が重なる?」「自機が発射した弾に自機が当たる」などのバグ出たため
前使っていた当たり判定を復活させました。
高速用は弾同士のみに使うことにします。(時間が空いた時に解決法を考えてみます。)

(実行ファイルの方に画面の大きさが1、2、3倍に設定した3つのファイルを入れてます)

143:名前は開発中のものです。
04/11/22 07:57:12 W8PT4OVx
>>142

2倍、3倍表示見やすいです。

自機の移動量が1/4ブロックだけど本物は1/2ブロックでは?

144:さんじゅ ◆BukiNdKASA
04/11/27 02:12:28 OlQqntXT
いつまでも仕様で悩んでいてもしょうがないので
とりあえずは本家BattleCityと同じような作りにしてみます。
そこから独自に拡張できたらいいなぁと。

早めにバイナリのアップロードをしたいです。

145:名前は開発中のものです。
04/11/30 02:37:27 1LChg/yT
バトルシティまだぁ?

146:名前は開発中のものです。
04/11/30 18:43:40 uVo70kVI
>基本的に敵軍味方軍の区別はしない。プレイヤーが操作しているか、していないかである。
仕様書のこれってバトルロイヤルで戦って司令部とかはなしってこと?
ひょっとしてネット対戦狙っているのか!?

147:47
04/11/30 23:26:27 7ktg95yl
>142
開発、乙です。
キャラクタ15ドットで転送してるっぽいよ。戦車のキャタピラとか欠けてる。

あと4ドットごとに移動しているから普通壊せないレンガが壊れるので報告。
下の■が壊せない壁なんだけど、左から3,4番目のところに弾を当てると×の位置が壊れる。

■■■■×□□□
■■■■□□□□
■■■■□□□□
■■■■□□□□

というわけで、正面の壁が壊せない壁だったときに例外処理をすると吉。


>144
いずれにしろ動かして壁を壊すところまでは
本家と同じだと思うのでまずはそこまでがんがれ〜。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5331日前に更新/102 KB
担当:undef