俺育成ゲーム(参加者求む)

このエントリーをはてなブックマークに追加
11
ゲームを作りたい…!

しかし、この歳にになっていまさら何からすればいいのかわからない。
C++?
と解説ページに行ってもイマイチよくわからない。
(coutとか書いているとウィンドウがつくれるの?)

こんな俺に課題を出して育成してくれ!

目標・2Dでよいのでゲームが作りたい。
   ツクール系は試したが、イマイチ思ったとおりに出来ないので。
   まずはシューティング。

以下、絶対守る俺ルール。

1・課題を出してくれ、解説してくれる人は師匠とあがめる。
2・わからなければ質問しまくるが、週に1度は最低1つの課題に対する成果を提出。
3・課題と回答、師匠の解説をまとめたページを作成する。

やる気と健康度だけは100(技術と知力は0)な俺を育成してくれ、師匠!
2名前は開発中のものです。:04/10/14 01:35:59 ID:oNm4IWaX
とりあえず、1がむかえるだろうエンディングを16パターン作ろうか。
3名前は開発中のものです。:04/10/14 01:44:39 ID:FcqFfPb0
1.ろくに相手してくれる人がいなくて、いきなり挫折。
41:04/10/14 01:55:39 ID:pcg5xJTZ
1・ろくに相手してくれる人がいなくて、いきなり挫折。
2・数学ができずに挫折。
3・ポインタ(が難関らしい?)がわからなくて挫折。
4・結局ツクールに逃げる
5・ある日突然フェードアウト
(以下挫折ネタが続く)
13・出来たものの出来は散々。失望して終了。
14・いいところまで行ったが…仕事が忙しくなってフェードアウト。
15・2Dシューティング完成! しかし燃え尽きて終了。
16・無事作成。2Dから3Dの世界へ幅を広げる。

こんなところか?
5名前は開発中のものです。:04/10/14 02:02:54 ID:Blgm+oyG
じゃあ課題。

とにかくなんでもいいからキャラクターを表示しれ。透過とかはまだ考えなくていい。
キー入力によってそいつを上下左右に動かせ。
61:04/10/14 02:06:45 ID:pcg5xJTZ
師匠、質問です!

それはC++とかを使えばいいのでしょうか?
キャラクターを表示するにはDirectXが必要ですか?

教材の指針を示していただけると助かります!
7名前は開発中のものです。:04/10/14 02:14:16 ID:DqKWLhA1
5 とは違うが、何となく眠れないので付き合ってみる。

>>1 は全くプログラミングの経験がないのかな。
C, C++, VB, Java, Delphi, HSP とか、どれか使ったことはある?
81:04/10/14 02:26:18 ID:pcg5xJTZ
>>7
ありがとうございます、師匠!

N88Basicを(大昔)少々。
VBに手を出したこともありますが、コンポーネントの配置とかよくわからず挫折。
せっかくなのでC++である程度本格的にがんばってみたいと考えています。

CharacterってString(文字)をDOS窓に表示なら少し勉強すればできるんですが…。
9名前は開発中のものです。:04/10/14 02:26:24 ID:+FGJJWUJ
>>1の現在のパラメータ
やる気 :100/100
健康  :100/100
技術  :0
経験  :0

一週間後の予想
やる気 : 36/100
健康  :100/100
技術  :1
経験  :5
10名前は開発中のものです。:04/10/14 02:30:14 ID:+FGJJWUJ
>>8
むらびと:
HSPをやっときなさい。BASICと同様の感覚で出来るから。
C++は止めときなさい。ライブラリ使わないと簡単に絵が出ないから。

  ならHSPをするか
   それでもC++をやります
> ころしてでも うばいとる
111:04/10/14 02:31:46 ID:pcg5xJTZ
明日の仕事があるので今日は寝ます。
出る前にスレをチェックしますので、お勧め教材などがあれば
購入する所存。
12名前は開発中のものです。:04/10/14 02:32:25 ID:qME+J7uL
>>8
言語は C++ で決定ですか?
13名前は開発中のものです。:04/10/14 02:35:13 ID:6eBZsYy1
一週間後の予想
やる気 : 0/100
健康  : 40/100
技術  : 0
経験  :-10
147:04/10/14 02:37:18 ID:DqKWLhA1
>>8
プログラミングの経験が皆無というわけではないのですね。

多分、スレの流れ的にはココと同じになると思うので、
合間で参考にしてみてください。

今日から必死で1から全て学んでゲーム作成します
http://pc5.2ch.net/gamedev/kako/1044/10445/1044534510.html
今日から必死で〜
http://pc5.2ch.net/test/read.cgi/gamedev/1064146178/

まずは、C++ をコンパイルして実行できる環境を手に入れること
からですけど、現在 C++ のコンパイラは何か持っているのでしょうか?
15名前は開発中のものです。:04/10/14 02:38:17 ID:+FGJJWUJ
なんで経験減ってるんだよw。
あと、1はそんなに頑張り屋じゃないから健康減らんよ。きっと。
やる気0と技術0はは当たってるかもしらんが。

まあ、楽しめそうなスレが立ったな。煽りもするが教えもするぞ。
16名前は開発中のものです。:04/10/14 02:43:44 ID:+FGJJWUJ
最近はマシンが高速だからJava+eclipseでjavaアプレットとして作るというのも
なかなか悪くない選択肢だと思う。
177:04/10/14 03:00:47 ID:DqKWLhA1
確かに、最初は簡単なのが良いよね。
すぐに絵が出て、動いた方がプログラミングしていても楽しいし。
C や C++ で作ると、そこまで行くのに一苦労で、やる気なくすから……。

なので、手軽に作りたいのなら C++ は私もお勧めできない。
そして、C++ を使わないのなら、私がお手伝いできることは何もないです……。
18名前は開発中のものです。:04/10/14 03:01:14 ID:T3JzKORS
いきなりC++に朝鮮して玉砕するのも悪くないかと
C++を齧ったという経験が積めて本望だろうて
19名前は開発中のものです。:04/10/14 03:03:16 ID:T3JzKORS
無料で俺がRPGを作れるようにするスレ
http://pc5.2ch.net/test/read.cgi/gamedev/1059218326/l50

このスレを押しておこう
20名前は開発中のものです。:04/10/14 03:10:33 ID:17t4V1ld
女と酒と自慰を絶つ覚悟はあるか?
話はそれからだ・・・
21名前は開発中のものです。:04/10/14 04:43:41 ID:FiEfKyZr
22名前は開発中のものです。:04/10/14 05:28:07 ID:7FaNgX7X
マジレスすると、最初の課題は「時間の確保」
3ヶ月で100時間、純粋にゲ製に取り組む時間割の計画を立てる

…社会人になってからゲ製覚えようとすると、
  仕事以外の全てを捨てることになりかねんよ
23 ◆HOTsoUpxjY :04/10/14 06:27:51 ID:QDkPfhnp
1.ゲームが作りたい
2.しかしPG初心者だ
3.といってツクールでは物足りない

という人にはHSPが最適
BASICライクだしすぐに絵が表示できて動かせる

CだとAPI通さないとウィンドウも出ないよ
コンソール表示のゲームでも別にいいけど

プロのPGになりたい訳じゃないならHSPがお勧め
241:04/10/14 09:01:26 ID:JCaF8MRC
ししょー!出発前にレスを。

教材はとりあえず2chスレなんですね。

>>7師匠 21師匠 23師匠
HSP、ゲーム用ベーシックのようなものでしょうか?
調べてみましたが、速度が大丈夫か少し心配(弾幕系シューティングを作りたいので)

C言語には厨房の頃からの憧れがあるのでしばらくHSPと平行で覚えて見ようかと
考えています。
Cに憧れるあまり他の言語が見えてなかったので、どんな言語があるか勉強して見ま
す。

俺の環境はWIN2000+Borand C++,Celeron1GHz。
C++はテキスト編集で四則演算・結果表示プログラムのコンパイルを通したことが
あります。
(1年ぐらい前)
そのときはウィンドウの出そうとしたものの、ちんぷんかんぷんで諦めました。

>>16師匠
Java、これから調べて見たいと思います。

>>20師匠
酒はもともと飲みません。
女はしばらく前に振られました。
性欲はそのときの自分の馬鹿さ加減に対するショックで(マジ)。
条件を満たしたくなかった…。

とりあえず、行ってきます。
25名前は開発中のものです。:04/10/14 09:28:50 ID:qMyvy6oQ
漏れの予想
一週間後の予想
やる気 : 0/80
健康  : 60/101
技術  : 0
経験  : 0
26名前は開発中のものです。:04/10/14 10:19:51 ID:sC/LnJWk
>>1
ttp://www.plustarnet.com/aspil/Programming/
↑をまずやれ。
終了
27名前は開発中のものです。:04/10/14 12:05:58 ID:v4AEF0Zo
資金 : ????
28JAVA厨:04/10/14 15:08:56 ID:TC+D/li2
VC++で周ティングやeピージー作ることはできますか?
29名前は開発中のものです。:04/10/14 15:58:20 ID:YCZ2uFpV
ウィンドウ作成で挫折したらなウィンドウ作成を課題にすればいいんでないの?
30名前は開発中のものです。:04/10/14 18:48:02 ID:aMAlVVKF
VC++は最強だ!!!!!!byネレー@Ore1GP
31名前は開発中のものです。:04/10/14 19:05:06 ID:mke3XcGK
1にアイテムが追加されました

「ロープ」「練炭」「睡眠薬」
32 ◆HOTsoUpxjY :04/10/14 19:20:56 ID:mOUg7y43
>>24
HSPは弾幕STGもOK
>>28
C++はゲーム会社が使ってるんだからもちろんできる
33 ◆HOTsoUpxjY :04/10/14 19:23:15 ID:mOUg7y43
んで、俺のお勧めはHSPだけど
Cやるならウィンドウ表示だね、まずは
↓こんなまっさらのウィンドウ作るのが最初の課題
http://gamdev.org/up/img/1549.zip
341:04/10/14 20:50:26 ID:YUMqY0bg
ただいま帰宅しました。
掃除やご飯などで開始はまだ遅れます…。
とりあえず、師匠に連絡を。

HSPを進める方が多いのでHSPも勉強してみます。
C++とHSPそれぞれを見ていって俺自身の適正を判断してみたいです(甘いか?)

>>22師匠
実はすでにその見通しが立っています。
仕事が楽になってきたのでこのスレ立てました。
3ヶ月で100時間こなします!

ちなみに、俺にはもう捨てるものがありません…。
この上はゲームを作る夢に殉じるのみです。

>>21師匠、23師匠
HSPですか…足を踏み入れて見ます!

>>25師匠
そういって負けん気を起こさせてやる気をあおるつもりですね!
考えが深い。

351:04/10/14 20:53:31 ID:YUMqY0bg
>>26師匠
おお、これはよさそうなページ!
課題の参考に…したかったけどウィンドウ作成が省かれているような。
(まだ斜め読み)
あと、これは「俺育成ゲーム」なんですよ
よって師匠と俺との双方向性が重要、俺は独自に学習するが決して完全な独習では
面白くないわけで!
ほら、だんだんやる気0に近づくのを過程を見たい人もいるっしょ!
ついでに師匠が見て評価してくれること自体がやる気↑につながるわけですよ!

>>27
資金 : 0

>>29師匠
おお、それは新しい発見!
たしかにウィンドウ作れないんですよね。
ネットで調べるとよくわからない関数(?)を使用しないといけないみたいで頭が…。

>>30師匠
なるほど!
しかしVCは高い。

>>HOTsoUpxjY師匠
おお、ウィンドウだ!
さすが師匠、スゲー。
36名前は開発中のものです。:04/10/14 21:05:37 ID:jWqEzwnK
こんな>>1を育成するぐらいなら俺を育成してください。
37名前は開発中のものです。:04/10/14 21:15:23 ID:+FGJJWUJ
>>36
馬鹿かお前は。このスレは1の成長と*挫折*を煽るスレなんだぞ。
二週間後に来たら多分誰も居ないから、第二期生として名乗りを上げろ。

>> 1さん
ウィンドウを作る仕組みを理解しようと考えてもしかたないぞ。
それと同じ労力でHSPでグラフィックと音楽バリバリ流したデモを作れる。
どうせウィンドウ作成なんて、上級者でも初心者でもスケルトンをコピペする
だけなんだから。

あと、この言葉を送ろう。
「関数の原理を理解しようと思うな。使い方だけ判ればいい」
38名前は開発中のものです。:04/10/14 21:20:17 ID:BHi/eKOR
>「関数の原理を理解しようと思うな。使い方だけ判ればいい」

マジでいってんのか?コレ
39名前は開発中のものです。:04/10/14 21:27:56 ID:TQGkZWC0
この手のスレは1、2ヵ月後には廃墟
定説です。
40名前は開発中のものです。:04/10/14 21:28:30 ID:+FGJJWUJ
当たり前だろ。
今の1のレベルでライブラリの中とか追うなんて、気力の無駄以外の何者でもない。
41名前は開発中のものです。:04/10/14 21:46:02 ID:SMxe9OI1
>>39
連日書き込みがあるのは10日
一ヵ月後、仕事が忙しかったので、学業が忙しかったので、ちょっと病気して
二ヵ月後、
421:04/10/14 22:05:28 ID:YUMqY0bg
今終了しました。
ついでにHSPインストール。
DIRECTXSDKインストール。
BCCデベロッパーインストール。

課題をこなすたびに↓更新予定。
http://f41.aaacafe.ne.jp/~grow/

>>36さん
ふふふ、すでにレスが40件近く!
現在やる気140なので当分譲りません。

>>37師匠
確かに!
俺は中身を知ろうとして意味がわからずに悩んで挫折する傾向があります。
「お呪いと思った方がいい」
昔の会社の同僚にも言われた…。

>>39〜41
確かにこの速度のレスは最初の1週間程度だと思う。
だが、ほぼ毎日レスは(仕事で泊まらなければ)確保する。
43 ◆HOTsoUpxjY :04/10/14 22:28:39 ID:mOUg7y43
ウィンドウ作るだけなら猫プロのこのページにまんまソースがある
http://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
↑真ん中の太字のとこコピペしてbccでコンパイルしてみて
44 ◆HOTsoUpxjY :04/10/14 22:31:46 ID:mOUg7y43
ちなみにHSPでウィンドウを出すには↓これだけでOK

stop
451:04/10/14 23:02:46 ID:YUMqY0bg
>>◆HOTsoUpxjY師匠
HSPで画像が表示できました!
確かに楽です。
Basicのget putよりはるかに楽でした。
画面更新もらくなような…?
N88Basicの記憶が薄れているのでもう比較もできませんが!

猫プロ、そのままコンパイル通してみました。
うーん、ウィンドウが出たけれどなにをやっているのか意味不明。
よくページを読んで理解します。
とりあえず、29師匠の課題をクリアした(のか?)ので明日か明後日
にはまとめてHPにアップしたいと思っております。

やはりHSPが楽でも低級
461:04/10/14 23:03:44 ID:YUMqY0bg
う、興奮のあまりすっ飛ばしてしまいました!

HSPが楽でもCとかの言語がかっこいいと思っている俺。
しばらくはCも地道に生きたいと思います!
47名前は開発中のものです。:04/10/14 23:18:54 ID:C9qERpiu
48名前は開発中のものです。:04/10/14 23:24:06 ID:qA7nVnp4
>>1
そんなこと言えるくらいなら金も出さないくせに育成してとか言うな。
無能だな。
49 ◆HOTsoUpxjY :04/10/14 23:25:14 ID:mOUg7y43
HSPは動かすのが楽だけど、大規模・長期のゲーム開発ならC/C++の方が大局的に効率が良くなる
HSPでもAPIやDirectX使えるし、そんなすぐ言語の限界にぶつかる訳じゃないけどね

それで言語を二つ以上同時に覚えるのはしんどいと思うけどなあ
構文とかの記憶がゴチャゴチャになるからお勧めしない
特にC+APIは三ヶ月/百時間をまるまる当てる位の期間が必要かもしれない

1がBASICでプログラムの基礎をどれ位押さえてるかで時間は変わるとは思うけどね
まあRPG二、三本クリアするのにそれ位掛かるから大したこと無いと言えばそうだけど
50 ◆HOTsoUpxjY :04/10/14 23:25:38 ID:mOUg7y43
んじゃまた明日
51名前は開発中のものです。:04/10/14 23:38:42 ID:1l5Sft7t
C++はオブジェクト指向わからんと扱いづらいが、HSPをやるとC++覚えるのがめんどくなってきて結局どっちつかずになるという諸刃の剣。
52名前は開発中のものです。:04/10/15 00:34:09 ID:cRGvPnjU
■■■このゲームのルール1■■■
1.1日10ポイントのやる気が下がります。
  (ただし1の書込みが一日中ない場合は30ポイント下がります。)
2.1レスにつき1ポイントのやる気が上がります。

やる気 :141
健康  :100
技術  :0
経験  :1
53名前は開発中のものです。:04/10/15 00:59:16 ID:wMD//jR2
54名前は開発中のものです。:04/10/15 01:44:30 ID:yrGe0oqB
HSP厨うざい
55名前は開発中のものです。:04/10/15 02:27:36 ID:cRGvPnjU
>>54
厨房にC++を勧めても無駄だからな。
厨言語HSPを教えるのが何か間違っているとでも?
56名前は開発中のものです。:04/10/15 03:09:10 ID:WAL8bcnO
さっさと挫折しろ
57名前は開発中のものです。:04/10/15 03:35:34 ID:yrGe0oqB
>>55
ごめん、間違ってない
58名前は開発中のものです。:04/10/15 17:27:23 ID:7hVmvBX9
誰か僕を育成しろよ
59名前は開発中のものです。:04/10/15 17:30:12 ID:BuM3m0Ek
それより幼女育成ゲーム作ってくれよ
60名前は開発中のものです。:04/10/15 17:55:22 ID:7hVmvBX9
とりあえず画像表示させてキーで動かすとこまではできた
61名前は開発中のものです。:04/10/15 17:59:08 ID:q0RdRnIe
じゃあ画像が画面の外に出ないようにしれ
そん次は画面の中に四角を表示させて四角には入れないようにしれ
62名前は開発中のものです。:04/10/15 18:45:07 ID:7hVmvBX9
画面の外に出ないようにはできた。
が当たり判定がうまくいかね。んばる。
63名前は開発中のものです。:04/10/15 19:11:40 ID:q0RdRnIe
言語は知らんがあたり判定くらいはぐぐればすぐ出てくると思う。んばれ。
641:04/10/15 20:13:11 ID:Sz/cdZ1A
ただいま帰宅しました。

>>47さん
もしやそれは画像の差し入れ!?使わせていただきます。

>>48さん
くっ、言い返せない…。

>>◆HOTsoUpxjY師匠
なるほど、わかっていましたがHSPの方が楽に作れるんですね…。
だが究極はC++と。

目的を果たすだけなら正道はHSPな感じですね。
しかし、自分のこだわりとしてはC++…。
師匠、C++で行かせてください! 覚悟を決めます!

>>51師匠
心を決めました。
C++です。根性入れます。

>>52さん
経験が1あがってる!
やったっ!


>>53さん
AOWってDelphiだったんですね…(ちょっと思い出あり)
ありがたいですが、C++に決めたので!
651:04/10/15 20:16:50 ID:Sz/cdZ1A
>>54さん
そんなことないです。
目的を果たすだけならHSPでも十分なはず。
皆さん、書き込みを読んで適切なアドバイスをして下さってますよ。

>>56さん
いやだ。

>>58さん
同じ教材で一緒にがんばりましょう!

>>59さん
ごめんなさい、幼女より立派な勇者(男)を育てるゲームのが好きです…。

>>60さん
す、すげー!

>>61師匠
か、課題だけが前に進む…って俺取り残しっ!?
6658:04/10/15 20:37:59 ID:7hVmvBX9
今日は時間ねえから明日また頑張る。ちなみに言語はVC++。
あとel使ってるからそこまではすごくない。卑怯とでも何とでも家!
67 ◆HOTsoUpxjY :04/10/15 21:03:21 ID:BKoMi53i
C++で行くのか。道のりは遠いが焦らないで行こう
関数・ポインタ・構造体が分からないで
API使う(コピペするだけ)のは無意味なんでCのマスターから始めよう
変数とか制御文とか基本的な部分はBASICと同じようなもんだから大丈夫

それでまずコンソールゲームから始めようか
よくあるじゃんけんゲームとかそんなやつ
681:04/10/15 21:07:50 ID:Sz/cdZ1A
師匠!
公式ページ更新しました!
デザインも何もまだまだですが、整理して資料的価値がでるようがんばります!
http://f41.aaacafe.ne.jp/~grow/

>>58さん
いや、方法論を見つけてくるだけですげー!
利用できるものは素直に利用した方が得でしょ。
俺もDXLIBをつかって課題をクリアしようか悩んだ…。

>> ◆HOTsoUpxjY師匠
了解しました。
DOSプロンプト上でじゃんけんするようなゲームですか!?
文字でちょきとかでてくるよーな。
69名前は開発中のものです。:04/10/15 21:20:00 ID:cRGvPnjU
俺はC++はオススメせんなあ。
なんだかんだ言って結構古い言語なんだよ、アレは。
C++言語が作られた後で一般的になった設計思想もあるし、C言語との下位互換
という制約を負っているために、どうも垢抜けしない印象がある。

>>64-65
お前、そのレス書いてるくらいの時間あればHSPで>>60-62ぐらいまでの
作業できるぞ。
C++をやるなら、……楽に使えそうなグラフィックライブラリを探せ。
間違ってもWindowsSDK(API)でキャラ表示とかやろうと思うなよ。
見返りが無いわりに、やたら労力増えるからな。
70名前は開発中のものです。:04/10/15 21:40:27 ID:7MR3d+Hy
>>69
お勧めはナニよ
711:04/10/15 21:51:35 ID:Sz/cdZ1A
ぜぇぜぇ、58さんに負けてられない!
ということでがんばります。

>>◆HOTsoUpxjY師匠
http://f41.aaacafe.ne.jp/~grow/

↑この課題ページ3に回答を出しました!
コンパイルも通ったし、ランダム関数もいけました!
次お願いします!!!

>>26師匠
紹介してもらったページが役に立ちました!
ありがとうございます!

>>69師匠
C++がだめと言うと、今は何の時代なんでしょう?
C#?
Javaはネットでアプレットゲームやったらしょぼい割に(俺では作れないLVだけど)
やたら重かったので止めておこうかと思っています!

グラフィックライブラリ…DXLIBのような?
DirectXでは駄目なのでしょうか!
72名前は開発中のものです。:04/10/15 22:02:48 ID:7MR3d+Hy
なにやってるのか分からないところがあるのになんで次に進めるの?
73名前は開発中のものです。:04/10/15 22:03:26 ID:RjTL7DNU
解答みてみたけど、やっぱりHSPの方が作りやすいような気がするな…
初心者がゲーム作るには、グラフィック関連が簡単な言語にすべきだと思う。
HSPなら便利なライブラリも沢山あるでしょ。
74 ◆HOTsoUpxjY :04/10/15 22:08:50 ID:BKoMi53i
>>71
はやっ! このタイプのスレではかなり優秀な1ですね
だけどincludeの後は何
あとvoid main(void)→int main(void)
75名前は開発中のものです。:04/10/15 22:19:48 ID:cRGvPnjU
>>74
s/</</
s/>/>/ してないんだろ。
7675:04/10/15 22:21:01 ID:cRGvPnjU
ぐあ、馬鹿なことやってしまった。
&を&amp;と書いてなかったよ。
s/</&lt;/
s/>/&>/
77名前は開発中のものです。:04/10/15 22:24:26 ID:7MR3d+Hy
>>cRGvPnjU
質問に答えてくれよ
781:04/10/15 22:27:53 ID:Sz/cdZ1A
とりあえず、doubleとかの型は大体理解したと思います。
関数とクラスの差がちょっとよくわからない。

>>72師匠
time関数はt_time型で現在時刻を返します。
それをunsignd intにキャスト(型変換?)してtime関数が扱えるようにしてるみたいです。
time_tは通常typedefでlong型を指定して返しているらしいです。

timeはlongを返すのにunsignd intを渡さないといけない関数randに値を渡せて
いるのはなぜかよくわかりません。
ついでにlongを返しているのにtypedefでわざわざt_time型を新規に作っている
のも意味不明。
何か意味があるのでしょうか。


>>73師匠
確かに俺もそう思います!
HSP楽です。
でも、C++(低級言語)でゲームを作成すること自体が若かりし頃の
自分の夢だったので意地を貫きたいのです。


>>◆HOTsoUpxjY師匠
<>は>とかやらないと表示されないのを今知りました。
のでtime関数の説明とともに修正しました。

ちなみに、俺は頭悪いですが行動力はある方だと思います。
よって言っててやらないというより、やろうとしてできないタイプです。
今後ともご指導よろしくお願いします。
79名前は開発中のものです。:04/10/15 22:36:52 ID:RjTL7DNU
>>78
おぉそうか。夢なら仕方ないな。その姿勢にちょっと感動した。んばれ。
とりあえずテキトーに変数系を覚えたらさっさとグラフィック関係にとりかかろう。なんか面倒そうだし。
80 ◆HOTsoUpxjY :04/10/15 22:44:37 ID:BKoMi53i
>>75-76
なる、タグで引っ掛かったのか

>>78
俺C++って高級言語だと思ってた、まあいいや
夢もいいけど、ゲームのプレイヤーを楽しませるのも忘れずにね

それで俺はHSP専門だし今コンテストやってるから、しばらくROMするわ
なんか立て逃げが多いこの手のスレで成長が凄い速いから楽しみだね
81名前は開発中のものです。:04/10/15 23:08:31 ID:cRGvPnjU
>>77
すまん。オススメはC#、Java、D言語あたりだ。
821:04/10/15 23:09:21 ID:Sz/cdZ1A
>>79師匠
がんばります!
ところで、課題なんか出していただけると短期的目標ができて非常に嬉しいのですが!
いや、ウィンドウに画像出すのが遠く見えすぎていてきついだけなんですが!


>>◆HOTsoUpxjY師匠
調べて見たらC++は高級言語でした…。
大学ではCが低級とか言われていたのに。

それはそうとお疲れ様でした!
なんとなくやる気も出てきたので妄想全壊でシューティング企画を考えております!
また見に来てください!
8372:04/10/15 23:10:49 ID:7MR3d+Hy
>>1
>time関数はt_time型で現在時刻を返します。
>それをunsignd intにキャスト(型変換?)してtime関数が扱えるようにしてるみたいです。
>time_tは通常typedefでlong型を指定して返しているらしいです。

t_time ? time_t ? うちの環境じゃ time_t しかないです。
この辺間違えると言ってることが通じないので気をつけませう。

あんまり深追いする必要はなくて、その関数が何をするのかだけ知っておけばいいと思います。
どういう引数をとってどういう値を返すのかはマニュアルを見ればいいんで。

で、あれは time() の戻り値を unsigned int にキャストして srand() の引数にしてます。

>timeはlongを返すのにunsignd intを渡さないといけない関数randに値を渡せて
>いるのはなぜかよくわかりません。
渡してるのは srand() ですね。
time() の戻り値を unsigned int にキャストして、それを srand() に渡しているので問題ないです。
(unsigned) は time() の戻り値にかかります。

>ついでにlongを返しているのにtypedefでわざわざt_time型を新規に作っている のも意味不明。
>何か意味があるのでしょうか。
time() が返しているのは long ではなくて time_t 型です。同じですが型としては異なるものです。
time_t を作る理由は、環境によって型の大きさを変えなくちゃいけないからです。
環境によっては time_t が long 以外である必要があるかもしれないでしょ?
でも time() が返す値を time_t で統一しておけば移植するとき何も考えなくていいんです。
84名前は開発中のものです。:04/10/15 23:13:52 ID:RjTL7DNU
>>82
課題→ウィンドウに画像出す

コレが最初の難関らしい?
とりあえずココだけさくっとやっちまおう。必要な計算なんかは後からいくらでも付いてくる。
目標がゲームなんで、画像出せないといつまで立っても変数処理ばっかりだし。
コンソールでもパックマンとか作れないこともないけどその後がしんどそう。
85名前は開発中のものです。:04/10/15 23:15:32 ID:cRGvPnjU
>>82
まあ、普通に機械語とアセンブラ以外は高級言語だし。
高級言語の中では、Cはかなり低級な(マシン語に近い)位置にあると思うぞ。
867:04/10/15 23:20:22 ID:lbz+IkKK
おっ、凄いジャンケンゲームができてる。

次の課題としては、もうちょっと C の準備運動ということで、
コンソールでモグラたたきはどうでしょうか?

***
***
*** と表示して、

***
**T
*** ならテンキーの [6] を押す、みたいな簡単なものを。
871:04/10/15 23:23:05 ID:Sz/cdZ1A
今からウィンドウに絵を出すため黙々と作業に入ります…。

>>72師匠
なるほど、これから文章にも気をつけます!
time_t型は移植性とかの問題なんですかね、納得!
よくわからんですがオブジェクト指向にも関係ありそうですね。

説明が感動的なわかりやすさだ…!

>>84師匠
さくっとですか!
出来る限りがんばって見ます。
とりあえず土日を目標に。
やるに当たってスケルトンとか、ウィンドウ出す関数はコピペじゃまずいです
よね、やっぱり?
8872:04/10/15 23:27:15 ID:7MR3d+Hy
>>1
>よくわからんですがオブジェクト指向にも関係ありそうですね。
残念だけどオブジェクト指向は全然関係ないぞ!
89名前は開発中のものです。:04/10/15 23:27:46 ID:RjTL7DNU
>>87
まずはコピペでいいと思う。
で、とりあえず表示できたら
「引数にどれとどれを渡す」とか「この引数は何に使う」とか、細かい部分を見てけばいい。

…で、詰まったら>>86で息抜きしよっか。
90名前は開発中のものです。:04/10/15 23:55:16 ID:pupEBzZi
C++でキャラクタが出て、キー操作で上下左右に動くなんて、
1時間ぐらい対話型の授業形式で教えればできるよ。
ただ、みんな面倒なので付き合わないだけだろ。
91名前は開発中のものです。:04/10/16 00:00:00 ID:Eaxee8r+
さっさと挫折しろ
921:04/10/16 01:22:53 ID:8rTcDmlx
もぐらたたきゲームが何気に難しい。
どうやったら文字の表示位置を調整できるのか?
改行で画面を全部流すのは正解じゃない気がする…。
関数リファレンスとか探しまくるしかないのか。

とりあえず、今日はもう寝ます…寝不足は髪&記憶力の敵なので。

>>72師匠
再利用性を考慮して…とかありそうだったのに!
そうだったのか!


>>89師匠
了解です!
明日は用事があるので1日いっぱいは使えませんが、日曜は完全オフ!
両方ともクリアしますよ!

>>90さんへ
マジですか…。
俺の頭悪さがいかんのか…。


>>91
無理。
むしろそのレスで俺は負けん気を燃やす。
頭きた。
とりあえずウィンドウに画像ぐらいは明日中(26時ぐらいまで?)にやるからみとれ。
937:04/10/16 01:32:34 ID:n7AtejJd
ごめん。サンプルをさっさと書き込んでおくべきでした。

BCC なら conio.h をインクルードして、
gotoxy(x,y) で x 列, y 行にカーソルの移動
clrscr() で画面の消去ができます。

#include <conio.h>
gotoxy(1,5);
printf("5行目にカーソルが移動します");
gotoxy(1,1);
printf("先頭にカーソルが移動します");
947:04/10/16 01:40:25 ID:n7AtejJd
ついでに停止せずにキー入力を取得する方法も。

#include <windows.h> // GetTickCount()
#include <conio.h>

int main()
{
int anime, time, key;

time = GetTickCount();
anime = 1;

// キーの入力待ちループ
while( !kbhit() )
{
// 一定時間毎に点滅
if( 500 > GetTickCount() - time )
continue;
time = GetTickCount();

gotoxy(1,1);
if( anime )
printf("入力待機中");
else
printf("     ");
anime = !anime;
}

key = getch();
printf("\n %c が押されました", key);
return 0;
}
957:04/10/16 01:52:37 ID:n7AtejJd
これでラスト。

#include <windows.h>
GetTickCount() は Win32 SDK の API で起動からの経過時間をミリ秒単位で返す。

#include <conio.h>
kbhit() はキーが押されていれば 0 以外、押されていたら 0 を返す。
押されたキーは getch() で取得できる。

ついでに、 _setcursortype(_NOCURSOR);
でカーソルを消去できる。

ちなみに conio.h は BCC のコンソール制御ライブラリ。
フリーだとマニュアルが付いてないのが辛いね……。
96名前は開発中のものです。:04/10/16 01:54:17 ID:I0ZUZAtI
まだ思いっきりC言語だな。C++への道は遠い。
977:04/10/16 09:16:28 ID:pT3BuS7r
>>94
訂正

int anime, time, key;
の行を下記の様に修正してください。

int anime, key;
DWORD time;
98名前は開発中のものです。:04/10/16 10:15:25 ID:S8dY4gdz
Cって凄い大変なんですね…。
HSPでも手間取ってるのに…。

>>1さん頑張ってください
991:04/10/16 23:19:17 ID:wcib9JUA
ただいま帰宅。
しかし、現在のパラメーター

健康:20

91に負けるようで悔しいが、とりあえず今日はモグラ叩きを作って
今日はねる。

>>7師匠
大量のコードありがとうございます。
ほぼ回答と同義な気もするので速攻で作ります!

>>84師匠
すみません、画像だしは明日になりそうです。

>>96さん
C++とCってそこまで違うものなのか…。
道は長いな。

>>98さん
応援ありがとう。
Cでも画像処理ライブラリを使えば楽に出来るらしい。
100名前は開発中のものです。:04/10/16 23:27:45 ID:I0ZUZAtI
>>99
お疲れさん。C++は完全にCを含んでいるからねえ。
明日は、ライブラリのサンプルコピペでもいいから、画像ファイル読んで表示とか
出来るといいな。
101名前は開発中のものです。:04/10/17 00:01:23 ID:GhgtnGYU
さっさと挫折しろ
102名前は開発中のものです。:04/10/17 00:54:06 ID:22lINAyj
>>101
定時連絡乙
103名前は開発中のものです。:04/10/17 09:06:32 ID:c7MQTym6
もうゲーム作ってるってことは変数、構造化文、基本関数は理解してるんだよね?
104名前は開発中のものです。:04/10/17 11:52:15 ID:22lINAyj
105名前は開発中のものです。:04/10/17 12:48:30 ID:XVGfeu4K
うぅーんち うんち うんちうんち
106名前は開発中のものです。:04/10/17 14:16:56 ID:4m6YlnQo
頑張って下さい。と言ってみたり
1071:04/10/17 15:29:15 ID:fmtmZm4t
中間報告。

コピペで画像を出すのはできた。
が、やってることがわからないので読解中。

もぐら叩きはクラスを使って見たらちゃんと表示できなくなって
しまったので必死にデバッグ中。
1081:04/10/17 19:27:06 ID:fmtmZm4t
いつまでも何も出さないのもあれなので、課題5「もぐら叩き」の仮版を
アップして更新しました。
意図しない場所に文字が表示されたり、キー入力待ち、盤面表示待ちがお
かしかったりと散々です。

無理してクラスを使おうとしたのがいけなかったのか…。

http://f41.aaacafe.ne.jp/~grow/kadai/5.html

とりあえず、食事・選択などのため一旦PCを離れます。
109名前は開発中のものです。:04/10/17 19:44:15 ID:XVGfeu4K
うぅーんち うんち うんちうんち
110名前は開発中のものです。:04/10/17 22:02:31 ID:SJTqGlHN
>>1
もぐらたたきをちょっと触ってみた。
http://gamdev.org/up/img/1575.zip

BCC使ったことなくてウェイトに sleep() 使ってるからゲームにならないけど
なーんかそれっぽくなったぞ。
できるだけ原型をとどめるようにしたから良かったら見てちょ。

キー入力、画面描画、ウェイト調整も考えると
ゲーム用ライブラリとか導入したほうが楽になれると思う。
1111:04/10/17 22:13:33 ID:jxLgr8xB
VC++を購入した方がいいのか?
ネットを見ているとVC++が圧倒的に多い。

>>100さんへ
ありがとうございます。
とりあえず、出来たのですがやっていることが意味不明!?


>>102
まあ、これは義務なので。

>>103さんへ
基本関数…たぶん理解できてないです…。

>>106さんへ
ありがとうございます!

>>110師匠
あ、ありがとうございます!
参考にします!!

ところで、HPにこれを乗せてもいいでしょうか?
とりあえず、基礎力がついたらライブラリは考えて見ます!
112110:04/10/17 22:19:54 ID:SJTqGlHN
>>111
もちろん構いませんです。

BCC でも msec, usec レベルでウェイトがとれればいいんだけどね。
修正前のがどうもビジーループっぽかったもんで、
ビジーループすべきでない派としては sleep(1) にさせてもらいました。
1131:04/10/17 22:20:08 ID:jxLgr8xB
>>110師匠
師匠!
DLしたものの回答できないであります!
仕様ソフトはLhasaとLhazですがどちらも駄目でした。
114110:04/10/17 22:27:49 ID:SJTqGlHN
>>1
(;´Д`) マジデ?
Lhasa でも Lhaplus でも展開できたよ
1151:04/10/17 22:31:50 ID:jxLgr8xB
>>110師匠

ダウンロードしなおしたら回答できました。
お手数をおかけして申し訳ありません。
1161:04/10/17 22:54:33 ID:jxLgr8xB
もしかして、1週間でウィンドウ表示+キャラ移動までいくのか!?
行ったら俺基準でスゲー。

>>7師匠
とりあえず、
http://f41.aaacafe.ne.jp/~grow/kadai/4.html
に課題のものをアップしました。
ほぼ完全にコピペなので自分の実力にするべく理解中です。
そのうち、ソース内に自分で理解したことを書き加えたいと思っています。
117名前は開発中のものです。:04/10/18 00:38:42 ID:asD8nPsJ
画像表示成功おめでとうございます。
この調子で行くと年内に弾幕シューティングも達成しそうな勢い。すごい。

とりあえず今のサイズ変更が出来るウィンドウだと都合が悪くなってくるので、
サイズ変更不可にした方がいいですよ。ついでにウィンドウのサイズも640*480ぐらいの
キリのいいサイズに変えてみてはいかがですか?

両方ともCreateWindow()関数で設定します。
ウィンドウスタイルについては
http://yokohama.cool.ne.jp/chokuto/urawaza/prm/window_style.html
を参考にしてみてください。
118名前は開発中のものです。:04/10/18 16:38:29 ID:0TUiYsJt
漏れも今C独学で覚えてる。
1がんがれー
119名前は開発中のものです。:04/10/18 16:42:07 ID:0TUiYsJt
参考になるといいけど、APIについて
http://wisdom.sakura.ne.jp/system/winapi/win32/index.html
自分には大分参考になったよー
1201:04/10/18 20:35:34 ID:gKooVcwv
ただいま帰宅。
今日はもぐら叩きで110師匠のコードを見ながら俺に足りないものを考えた…。

そして浮かんできた疑問。
・果たしてクラスはこんな使い方でいいのか?
本当にクラスってあれでいいのか?

あと、ソースコードは見やすくしないといけないことを実感。
110師匠のソースコードは見やすい。


>>117師匠
ありがとうございます。
弾幕シューティングにはいろいろまだまだ障害があって
・絵はどうするの?
・音楽どうするの?
・俺の企画で人が集まるの?
・そもそもゲームの設計論とか、デベロップの基本とは?
とか、素人考えでもこれぐらい。

ウィンドウについては変更をやってみます。
資料提供どうもです。


>>118さん
お互い競争だ!


>>119師匠
ありがとうございます!
これは…ばっちりやりたいことに合致してますね!
121名前は開発中のものです。:04/10/18 20:42:19 ID:0TUiYsJt
ちなみに118の中=119の中=漏れだったりするよ。
122 ◆HOTsoUpxjY :04/10/18 20:48:39 ID:qQ0g94Ps
>>120
>・果たしてクラスはこんな使い方でいいのか?
使わなくても可
>・絵はどうするの?
素材
>・音楽どうするの?
素材
>・俺の企画で人が集まるの?
既に集まってる
>・そもそもゲームの設計論とか、デベロップの基本とは?
動くものが無い段階では不要

>>121
IDで分かるよ
123名前は開発中のものです。:04/10/18 20:51:34 ID:0TUiYsJt
>>122
いや、別人に扱われてたから言って見ただけ。
124名前は開発中のものです。:04/10/18 20:53:45 ID:rtx3/5w+
このゲームクリアしたら・・・・なんか商品あるのかな
125110:04/10/18 22:27:50 ID:cj9tokKx
>>120
モグラはクラス化したほうが見やすいし、メソッドもあれでいいと思います。
1267:04/10/18 23:19:58 ID:bXK9FjqZ
>>120
モグラたたきのクラスは、初めて作ったとは思えないほど上出来です。
てっきり、関数と構造体で作っていると思っていたので、ちょっとびっくりしました。
ただ、動かないのが難点ですが……。

私も 1 さんのソースを元にして作ってみたので、
良かったら見比べて見てください。
http://gamdev.org/up/img/1589.lzh
1277:04/10/18 23:45:34 ID:BTTdGkZa
あと、「果たしてクラスはこんな使い方でいいのか?」という不安ですが、
それを解決するには、「オブジェクト指向の概念」と、「C++ がどのように
オブジェクト指向を言語でサポートしているのか」を学ぶ必要があります。

これを一気にクリアするのは難しいので、
最初は構造体と関数を使ってプログラミングしながら、
合間にぼちぼち学べば良いんじゃないかと思います。
(そして上手くクラス化できたら組み込んでみる)

C++ の勉強のためにやる気が 0 になったんじゃ、本末転倒だと思うので、
今はクラスに拘らずに、どんどんゲームのコードを書いて動かすべきです。
まずは、もう少し大きなプログラムを作って各部品をモジュール化に挑戦
してみることをお勧めします。

まあ、楽しみながら行きましょう。
課題の提出とホムペの更新、お疲れさまです。
1281:04/10/18 23:48:58 ID:gKooVcwv
師匠!!
もぐら叩きを更新しました!
110師匠のものを少し修正しただけですが!
(110師匠の元コードは許可がないのでアップしてないです)

…と思ったら7師匠もソースコードを!
早速見てみます。

http://f41.aaacafe.ne.jp/~grow/

>>121師匠
何かを教えてくれた時点で師匠だ!
ありがとう!

◆HOTsoUpxjY師匠
おお、暖かい励ましのお言葉!
がんばります。
そのうち素材も集めはじめたいと思います。

>>124さん
クリアするとゲームが出来る。

いやそれより、こんな密度で勉強するのは久しぶりで楽しい。
後、ゲームを作れたら「俺育成スレッド」の成功例を作ったことに。
(いや、過去の例は知らんが)

>>110師匠
なるほど、ありがとうございます!
でも関数と構造体でもよかった気がする…。
1291:04/10/18 23:49:30 ID:gKooVcwv
>>7師匠
ありがとうございます!
なんかゲーム作成系サイトに行ったらInitとか使っていたので真似して見ました。
privateで変数を作れとあったので外からいじる欲望を抑えてひたすらprivateに。
ただ、まだ意味はちゃんと理解してません。
うおぉぉ!ソース!
ありがとうございます。早速見ますよ!
130110:04/10/19 00:17:50 ID:YQYgiZF5
>>126
ウホッいいソース。
他の人が書いたソースってやっぱり面白いし勉強になります。

って読んでたら気づいたんですけど
漏れが書いたやつはキーとモグラの対応が正しくないですね。
ノートしかもって無いもので素で気づきませんでした。orz
ごめんよ1さん 。・゚・(ノД`)・゚・。
1311:04/10/19 23:09:03 ID:NPbZ6Dto
ただいま帰宅。しかし、明日が早いので寝ないと死ぬ罠。

>>7師匠
電車の中で読んだ7師匠のソースはすごかった!
ヘッダを使って分けるだけですごくわかりやすくなるんですね。
HPに比較対照としてのせていいでしょうか?
ああ、HPも整理しないと…。

クラスについては現時点で下記のような理解にとどまっています。
<理解してるような気がするところ>
・関数を含められる構造体(構造体は変数の集まりを1つの型として定義するようなもの)
・クラス内部からしかアクセスできない変数・関数と誰でもアクセスできる変数・関数を設定可能
・外からいじれないので無茶な応用が利きにくい反面、なかで何をやっているのか気にせず一定の動作を期待できる。
 よって外からあまりいじれないように上手く作れば大きなソースの中でも互いに干渉せずに便利な関数として使用可能。

<理解が怪しすぎるところ>
・クラスは継承ができるので、あ「基本クラス」から「派生クラス」へと分岐させられる。
 分岐してもコードのなかで同じように振舞わせることが出来るのでそれを上手く利用する?

Basicできれいな(脳内基準)コードを書いていた頃に、スマートなサブルーチンを作ろうと
がんばっていた記憶があるので、結構こういう概念とかについて考えるのはすきなのかもし
れません。

>>110師匠
大丈夫です。
そこは気づいて修正しましたし、なによりコードをみて勉強になりました!
これからもよろしくお願いしますっ!
132 ◆HOTsoUpxjY :04/10/19 23:30:54 ID:TNWY/TNZ
>>131
タスクをクラスで、とか考え始めると面白いけど、抽象化技法は程々に
んで素材だけど

http://doga.jp/2004/programs/dogal/index.html
↑L1はフリー。3Dだけどドット絵より楽。組み合わせでオリジナル色も。
http://kikyou.sakura.ne.jp/~osabisi/
↑いっぱいある。効果音を試聴しながらどう使うか想像するのも楽しい。

音楽は聞いたことのない素材サイト見つけた方がスレ的に面白いな。
んじゃ引っ込むんで頑張ってちょ。
133名前は開発中のものです。:04/10/20 08:02:52 ID:EqIxCb1Y
初めて覗いてみたけど良スレですね。

漏れは良い課題を作ったりする能力はないけど、
C++は多少は分かると思う(とはいってもBoost実装なんかは半分理解が危うい程度 orz)
ので、初期の助言ぐらいは出来るかもしれません…

>>1 さんがんがってくださいな。応援しとります。

ちなみに漏れもPC9801EX時代のN88BASICから入ったけど、
昔を考えると、CになってもC++になっても、
プログラミングて結局、PCにやらせたいことをそのまま並べるんだな
なんて当たり前のことを再認識してしもた
134名前は開発中のものです。:04/10/20 20:49:52 ID:ghz7CXOS
スレ主が馬鹿みたいなアイディア出さないで、スレのスピードが適度というあたりも
このスレが良スレである要因になってるな。

あとは、このままフェードアウトしないで続けてくれるといいぞ。
1351:04/10/20 21:23:51 ID:mCCeUcY9
◆HOTsoUpxjY師匠
なるほど、確かに素材を見ているとゲームで使う様が想像できて楽しいですね。
これから暇を見て探して見ようと思います。


>>133さん
ありがとうございます。
学習成果は随時アップするのでなにかあったらよろしくお願いします!

>>134さん
応援ありがとうございます。
ひたすら続けますよ!
1361:04/10/21 02:12:33 ID:zOcPz3kA
なんか…ウィンドウをフルサイズしたらそのまま帰ってこなくなりました。
今日はここで力尽きます…。
137名前は開発中のものです。:04/10/21 03:04:07 ID:OI06Hccu
おつ〜
今は何の課題にチャレンジ中で?
138名前は開発中のものです。:04/10/21 19:41:50 ID:h0v0g/KL
可能性1.DirectX排他モード
1391:04/10/21 21:11:16 ID:wY6YFmxH
ただいま戻りました。

7師匠のもぐら叩きコード、俺では改造する点すら見つからなかった…orz

とりあえず、現在画像動かし中。
キーボードのキー入力をとって画像を動かせました。
今日中には画面端判定をつけてUPしたいところですが結局明日も朝早く
あまりいじれなさそうな感じ。

その分明日は17時帰宅を認めてもらっているので明日には必ず…
140名前は開発中のものです。:04/10/21 21:13:07 ID:Bv2wMQxd
嫁とのエッチの時間は作る

その動画をうp


1411:04/10/22 00:09:21 ID:JdM7p1I/
とりあえず、今日はもうむりぽ…。
明日4時出なので寝ます。

ごめんなさい。
1427:04/10/22 02:58:03 ID:mcq+TWuo
>>141
お疲れさまです。あんまり、無理しないように。
時々休むか、遊びなよー。

>>131
>HPに比較対照としてのせていいでしょうか?

自由に使ってもらって結構ですよ。
必要なら修正、加筆してもらっても構いません。

>>135
>7師匠のもぐら叩きコード、俺では改造する点すら見つからなかった…orz

もぐら叩きを改造するのなら、
練習として 110 さんのようにノートで遊ぶ人のために
テンキーを使わないバージョンを1から書き直してみたらどうでしょう?
(練習なので今あるソースを見ずに書き、バグも全部取る)。

あと、余裕があればゲームを拡張するのも良いかも。
例えば、プレイ中に難易度が変わるとか、ハイスコアがファイルに記録されるとか。
または、1 さんが思い付いたアイディアを何か一つ。

コードの構造的な改造なら、
メンテナンスをより容易にするために仮想関数や関数のポインタを使ったりする
方法があります。しかし、これにはクラスの継承やポインタを理解する必要があるので、
まあ、もう少し先の話ですね(この規模で導入すると逆に複雑になりますし)。
1437:04/10/22 03:46:10 ID:oH/2oYx0
続けて、ですが。

そろそろシューティングへの布石として、
簡単なマト当てゲームはいかがでしょう?
(縦向きか、横向きはお任せします)。

* <- マト。右から左へなど一定パターンで動く

.| <- 弾。自機から発射。
W <- 自機。ボタンで弾を発射。

最初はマト、弾の両方とも一つだけの状態で、
コンソールで正しく動くか試してみてください。

あと、モグラ叩きは今動いているバージョンをアップして、
上に書いた拡張版は飛ばして、こちらに移ってしまうのも良いと思います。
(……同じものを連続して何度も作るのは飽きると思うので)。
やり甲斐がある方をやってみてください。1 さんにお任せします。

どちらにせよ、今やっている課題が一段落するか、詰まったらどうぞ
(〆切なんてないので、マイペースでね)。
144名前は開発中のものです。:04/10/22 20:20:40 ID:wVGHjlwa
もぐら叩き改がGUI版もぐら叩きなら、そのまま作って
その上で、GUIマト当てゲーム作った方がよくない?
1451:04/10/22 23:06:34 ID:sIUDsE7s
今帰りました。

早起きしたのに結局この時間。

>>138師匠
アドバイスありがとうございます。
調べて見ますね。

>>7師匠
了解です!
それぐらいなら朝飯前で作れそうな予感。
やってみます。

>>144師匠
GUI版はまだ無理そうです…。
CはわかってきてもWINAPIの使い方と作法が難しい…。
1461:04/10/23 01:43:14 ID:MSdMPRa5
一応、文字シューティングの基本(?)は作成しました。
べた書きですが、HPに課題6としてUPしておきました。

本来なら今まで習ったことを生かすべきなのですが、今朝4時出で
気力がつきました…。
今週までは時間に余裕があるはずが週末も埋まってしまった…。

http://f41.aaacafe.ne.jp/~grow/
147名前は開発中のものです。:04/10/23 11:34:06 ID:bO77c3Y/
ある意味リアル育成シミュレーションゲーだな
148名前は開発中のものです。:04/10/23 18:03:59 ID:43exaIy0
このスレに感動した!
よっしゃ俺もソースファイルを晒す!みんな見てね
1491:04/10/25 00:01:30 ID:rXHULzlV
忙しいゾーンが過ぎました。
今日からまた再開できます。

課題が時間のかかるものになりつつあるので、今までより多少ペースが
落ちると思いますが、やり続けますのでよろしくお願いします。

次は水曜更新が目標です。
150MFC ◆xRgRnKA3e2 :04/10/25 00:14:16 ID:KNcib9y5
kono sure zitaiga game
151名前は開発中のものです。:04/10/25 02:52:54 ID:cGYf71f1
良スレ発見!

■クラスについて
赤っ恥覚悟で言わせてもらうと、プログラムの構造を理解しやすくするための概念。
もぐらたたきはあれ自体それほど難しくないので、1つのクラスでも問題なし。
シューティングなんかを作っていく場合は、ShipClass(飛行機クラス)とかShotClass(弾クラス)
なんかを作ることになる。

■継承
ShipClass { // 飛行機のベースクラス
int x; // X座標
int y; // Y座標
};

PlayerShipClass : public ShipClass { // プレイヤー飛行機クラス
int ship; // 残機数
int bom; // ボムの数
};

EnemyShipClass : public ShipClass { // 敵飛行機クラス
int type; // 敵の種類
};

こんな風にしとけば、アニメーションなんかの敵味方共通な処理はベースクラスに置いといて、
それ以外の個別の処理は継承先に書いておくと、コーディングが減らせる(←これ超大切)。
152151:04/10/25 03:17:29 ID:cGYf71f1
>>139 で画像の表示と移動なんかをやってるようなんで、
せっかくだからクラス・継承を使ってみてはどうでしょ。

// 動く画像のベースクラス。
// 座標の保存と表示処理だけを行う。
class MoveImageBase {
int x, y; // 表示座標
void draw() // 画像を表示
};

// 移動処理を外から受け取って移動する画像。
// move_???()をコールするとそれぞれの方向に移動する。
// キーボードの入力値でコールするメソッドを変える。
class MoveImageUser : MoveImageBase {
void move_left(); // 左に移動
void move_right(); // 右に移動
void move_up(); // 上に移動
void move_down(); // 下に移動
};

// 勝手に動く画像。
// move()をコールする度に移動量分移動する。
// 壁で跳ね返る。
class MoveImageAuto : MoveImageBase {
int move_x, move_y; // 移動量(-1〜+1)
void move(); // 移動量分移動
};
153名前は開発中のものです。:04/10/25 05:29:21 ID:jCfAP82P
>>151,152氏に勝手に補足させて頂くと、
共通の処理を基底クラスにまとめる、というのは、複数のコードから重複する部分をサブルーチンにまとめて分離するのと似ていますから、あまりメリットを感じない”かも”しれません。

しかしここで大切なのは、処理をまとめたことだけではありません。継承することによって
「MoveImageUserもMoveImageAutoもMoveImageBaseの一種である」という関係が出来たことです。
これにより、クラスを利用する側(ゲーム本体)ではMoveImageUserもMoveImageAutoも同じ種類のもの、としてひとまとめに扱うことが出来るようになります。
簡単な例を挙げると、普通に書けば

MoveImageUser userImage; // ユーザ入力版画像オブジェクト
MoveImageAuto autoImage; // 勝手に動く画像オブジェクト
userImage.draw(); // 描画処理
autoImage.draw();

と書いていたのを、(敢えてポインタを使って書きますが、もちろん意味は気にしなくてOKです)

MoveImageBase* image[2]; // image[0]=ユーザ版 image[1]=AI版
// ... ここになにやらモニョモニョ ...
for (int i=0; i<2; i++) image[i].draw(); // image[i]を描画

のような感じで、どちらもMoveImageBaseの一種として、共通に扱うことが出来るようになります。

例えば新たに、「ギコが出てきて勝手に動かしてくれる画像クラス」を追加することになったとしても
同じMoveImageBaseから継承してさえいれば、ゲーム本体で変更する箇所は、上の例で言えば配列の個数だけで済みます。
これが2,3個の追加ならそのまま書いても良いのですが、実際のゲームで50種類の敵が出てきたりすると、各クラスごとにdraw描画命令を書いていたのではたまりませんね。

この他にも先人の知恵で、継承を使うことで様々なメリットがあり、複雑な処理が比較的簡単にできるようになるのですが、、
理解するには、最低限ポインタを理解していなければいかんので、今はあまり深く追求せず、今できる課題をこなすと良いと思います。
こういうことも出来るんだな、程度で、読み飛ばしてください。
ちなみに理解しやすくするためにかなりハショり、一部嘘を交えてます。逆に分かりにくくなってたらすみません(´・ω・`) 説明下手なもんで。゜(゚´Д`゚)゜。
154名前は開発中のものです。:04/10/25 07:22:03 ID:F/wobf5h
最初はいつもの糞スレかと思っていたが
だんだん良スレになってきたね
おいらも負けじとがんがるぞっと
1551:04/10/25 21:48:09 ID:zJqKCX2T
>>MFC ◆xRgRnKA3e2さん
イエス。
このスレで育成した弟子は現実に残るのがいいところ…?
師匠はグッドエンドを迎えられるのか!?

>>151師匠
なるほど、クラスの利点がわかってきた気がします!
弾・敵・自機に共通する点は…
・移動する
・当たり判定がある
・画像を表示する
あたりなので、それらを共通部品化しようとしてみます!



>>153師匠
なるほど、ポリモーフィズムとかそんなやつですね!
とりあえず、ポインタをまともに勉強しないと使いこなせないのですね…。


>>154さん
この手のスレには珍しくガチでクリアを目指しています。
156名前は開発中のものです。:04/10/25 21:52:50 ID:DEvUXz/V
ポインタはそこまで難しくないよ。

理解するだけなら簡単。泥臭い使いこなしをするには慣れがいるけど
157名前は開発中のものです。:04/10/25 23:38:49 ID:6f4gWOV8
>>155
親クラスのメソッドを使いまわして行きたいなら、そのうちSTLってのも使うことになるだろう。
STLってのはC++の標準ライブラリの一種で、文字列クラスやコンテナなどの
プログラムを書くのに便利な道具の集まり。
158名前は開発中のものです。:04/10/26 00:00:24 ID:sbftx/e5
このゲームのエンディングはバッドエンドかグッドエンドか果たして
159151:04/10/26 00:44:04 ID:Pl5Fu1Ro
>>153 補足ども。自分は「クラスってポリモーフィズムのためにあるんじゃないの?」と思っちゃうくらい重要視してます。

>>1 >>151-153の流れでよく「ポリモーフィズム」って言葉が出てきたなぁ。ポインタも分からんとは思えない。すごい。もぐらたたきでいきなりクラス使ってるとことろなんか見ても、やっぱそういう「概念」とかにモチベーションもつのね。

■ポインタ - ポインタでややこしいのは2つ(だと思う)。

【宣言と参照】
int num; // intの実態
int* ptr; // intのポインタ
int& ref; // intの参照

num = 5; // numに5を代入
ptr = # // ptrはnumのポインタになる。
ref = num; // refはnumの参照になる。

printf( "%d", num ); // num(つまり5)を表示
printf( "%d", *ptr ); // ptrの実態(つまりnumの5)を表示
printf( "%d", ref ); // refの参照先(つまりnumの5)を表示
// 結局どれも同じ。というように、*とか&とかがごちゃごちゃしていて分かりにくい(と思う)。
// 正直慣れるしかない。

【何に使うか】
int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int p = a; // pは配列aの先頭のポインタになる。

for ( int i = 0 ; i < 10 ; i++ ) {
printf( "%d", *p ); // pの実態を表示
p++; // 配列の次の要素に移動
}
// ※出力結果 ... 0123456789
// というように、ポインタは基本的に配列と絡んで使う。
160名前は開発中のものです。:04/10/26 22:28:39 ID:RloahSOL
この手のスレは開始そうそう1が叩かれてAA大量に貼られたあげく
1が逃亡して終了ってのが相場だったんだが、ここはがんばる1さんのいる良スレですね

1000までに果たして1は無事に育成完了するのだろうか…
161名前は開発中のものです。:04/10/27 08:32:51 ID:IyxR/2ed
>>159
あと、クラスの「参照」作るのに使うわな。
むしろ実体を宣言する必要性はあるのかという気もする。
162名前は開発中のものです。:04/10/27 08:45:10 ID:+29GhM1T
いきなり使い方だけ示されてもなんのこっちゃだから、
作る仮定で覚えていけばいいさ
1631:04/10/27 21:54:22 ID:SIdHsNqi
今帰宅。

これから課題の残りを仕上げるので少し待ってください。
164名前は開発中のものです。:04/10/27 23:23:32 ID:IyxR/2ed
■現在の状況■
1のやる気:30/100
技術    : 0
経験    : 5

スレのレベル :+1(-5〜+5)
スレの活気度:-3(-5〜+5)
1651:04/10/28 01:24:53 ID:xrpkFgj6
まだつくってます…
166名前は開発中のものです。:04/10/28 01:56:39 ID:zWN7bqm5
あわてない〜ひとやすみ〜
1671:04/10/28 02:41:44 ID:xrpkFgj6
HPはちゃんと更新はしていませんが、今日の成果をここに。

http://f41.aaacafe.ne.jp/~grow/
↑のトップにやりかけのシューティング課題ソースをUPしました。
 コンパイルは通りますが、上手く動作してくれません。
(またか)
 明後日修正版をUP予定。

継承したクラスがまともに動いていないのでなんともいえないのですが
気になっている点。

Stg_obj→シューティング基本クラス
MyShip→自機クラス、stg_objの派生
Enemy→敵基本クラス、stg_objの派生

Stg_obj stg[2];
stg[0]=MyShip ship;
stg[1]=Enemy enemy;
for (i =0;i<2;i++) {
stg[i].action();
}

などとすればaction内のコードがMyShipとEnemyで違っても
動いてくれるということなのでしょうか。
1681:04/10/28 02:43:06 ID:xrpkFgj6
あとは何で動いていないのか例によってよくわからない…。
師匠の皆様方、アドバイスありがとうございます。

レスは修正ソースというかたちで明後日に!

あ、やりかけソースはトップページからリンク張ってあります。
169153:04/10/28 06:50:30 ID:4VEPRGpu
>>167
すんません、俺が変に書いたから逆に混乱してしまったかもしれませんね(´・ω・`)
(実は、そのようなコードを考えてくれたのですごい安心してたりもしますが、、矛盾してますね。)

継承についてですが、考え方は全くその通りで、後は書き方の問題です。

コンパイラから見ると、「MyShipとEnemyはStg_objの一種」であって、
Stg_objそのものではないので、直接の代入は出来ません。
(補足ですが、変数 = 型 変数名;  のように、代入式の中で変数は定義できません。)

かといって、
MyShip ship;
stg_obj[0] = ship;
とも出来ません。
(強引に代入だけなら出来ますが、スライシングという現象が起きます。それは後々分かるかと)

で、これを実装するためには以前も書いた通りポインタを使う必要があるのですが、
ポインタをどこまで理解しているのか分からないので突っ込んだ説明は避けます。。

一応、「もしやるとしたらこうなる」という例を書いておきますが、意味は深追いしなくて結構です。
コードの枠組みが同じなのから分かると思いますが、>>1氏の考え方が間違ってるわけではないので…(´・ω・`)

Stg_obj *stg[2];
stg[0] = new MyShip;
stg[1] = new Enemy;
for (i=0; i<2; i++) {
  stg[i]->action();
}
170名前は開発中のものです。:04/10/28 12:12:08 ID:fOrfn5ZE
ところで>>1はポインタについてはどれぐらい理解してるの?
そろそろ学んでもいい頃だと思うが
171名前は開発中のものです。:04/10/28 12:57:22 ID:caR1Gx8j
>>168
というか、あんたはそんな時間まで起きていて大丈夫なのか。

>>170
まあ使い方だけ分かるのでも使えないことは無いが、理解しておいた方が
よいってのは確かだな。後に納得できないことが出てきにくいし。
ただ、注意して欲しいのは「使い方を覚える>原理を理解する」という
優先順位にしたほうがよいってことだ。
例えば、ポリモーフィズムがどうやって実現されてるかとか、そういう
ことは理解するのが難しい。それを理解するために一時間使いなら
使い方を一時間学んだほうがよいってこと。
172名前は開発中のものです。:04/10/28 13:17:23 ID:t0xQmLbI
>>171
ポインタに関してだけは1時間かけて使い方を10個覚えるより
1時間かけてでも原理を1個覚えた方がいいと思う。
173名前は開発中のものです。:04/10/28 13:35:40 ID:9Ze+F2XH
使ってみて感覚を知って
ポインタそのものに慣れることも重要だと思う

「習うより慣れろ、そして知れ」

なんつって
174名前は開発中のものです。:04/10/28 20:38:06 ID:/+mkJ+19
まあ、ポインタ議論は置いとこうぜ。別にこのスレで議論する
ことでもないしな。
マターリ進行を大事に。
175名前は開発中のものです。:04/10/28 21:05:07 ID:nLtsT1eA
>>174
( ゚д゚)

(つд⊂)ゴシゴシ

(;゚д゚)

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)
1761:04/10/28 21:50:27 ID:R7SeH+zx
久々に早い帰宅。

ポインタ談義が出ているので自分のポインタに対する理解を。

ポインタはオブジェクト(変数や関数)に対するメモリ上の位置。
ポインタが指し示す位置を見ることで変数の値などを取得することができる。

&xなど&をつけることで変数などに対するポインタが生成され、int* ptxのように
あらかじめ宣言しておいたポインタ型にアドレスを格納できる。

int x = 1;
int* ptx = &x <<xのアドレスをptxに格納

で、配列を扱うときには配列がメモリアドレス上で連続して取られるため、
ポインタの進化が発揮される。

int x[10];
int* ptx = &x[0];
*(ptx+1) //これはメモリアドレスを1つずらす式になり、実質x[1]

関数に対する使い方、->についてはまだ勉強中。
有効な使い方も今日勉強予定。
1771:04/10/28 21:58:45 ID:R7SeH+zx
>>156師匠
176が俺の理解で、泥臭い使いこなしはこの先と認識。
どうでしょう?

>>157師匠
ほー。STLですね。今度調べて見ます。

>>158さん
グッドエンドにもたどり着けないようなら俺は死ぬ。

>>151師匠
int num; // intの実態
int* ptr; // intのポインタ=アドレスがptr。*ptrだとprtのアドレスが示す値を見る。
int& ref = num; // intの参照num=refの関係。

と理解しましたが問題ないでしょうか!

178名前は開発中のものです。:04/10/28 22:01:32 ID:y+SO6Hxz
書き込みにも一応著作権があるという事を覚えておこう
1791:04/10/28 22:08:43 ID:pBgl6jh5
>>160さん
実はベストエンド(3Dにも手を染める)のさらに上を行く妄想を持っているから
1000では終わらんかもしれん。
2Dシューティングは1000までにやりたい。

>>161師匠
うはー、実体とか、なんとかまだわからんです。
勉強不足だー!

>>162師匠
地道に覚えていきます…。

>>164さん
むしろ健康が30ぐらい。

>>166さん
ありがとう。だが、目標を達成するまで休みはない。

>>153師匠
stg_obj[0] = ship;
↑やってみて死にました…。
とりあえず、->の理解を始めたいと思っています。

>>170さん
>>176参照で。

>>171師匠
ゲームもつくれないようなら死にます。
というか、大それた妄想があるので2Dシューを作るまでに自分が定めた
期間(9ヶ月)を超えるわけにはいかんのです。
1801:04/10/28 22:09:38 ID:pBgl6jh5
>>172師匠
171師匠の指令と逆だー! どうすればいいんだ!

>>173師匠
慣れてから知れということですね! 路線としてはわかりやすい。
ということでこの路線でとりあえず行ってみます!
181 ◆HOTsoUpxjY :04/10/28 22:18:34 ID:ThoqTfPd
分岐処理が多い場合ポインタ関数の出番〜
182名前は開発中のものです。:04/10/28 22:20:02 ID:/+mkJ+19
>>178
だが、著作者を明示してない2ちゃんの書き込みに著作権なんぞ
発生しようが無いことも確かだ。

>>176
"->"は「ポインタからメソッドを呼び出す」ための記号。
つまり、、、

class Object {
public:
 void func() { printf("hello.\n"); }
};

int main() {
 Object *obj = new Object; //オブジェクトを指すポインタ作成

 //この2行は、まったく同じ意味。
 obj->func();  //ポインタからメソッド呼び出し
 (*obj).func();  //「ポインタの指すクラス」からメソッド呼び出し
 return 0;
}

# 見た目重視のため全角スペース利用してます
183 ◆HOTsoUpxjY :04/10/28 22:25:25 ID:ThoqTfPd
>>182
あ、2ちゃんの書き込みにも著作権あるよ、たしか判例があったと思うけど
184名前は開発中のものです。:04/10/28 22:31:53 ID:t0xQmLbI
メソッドだけじゃないとは思いますが、もっと単純に考えて
(*obj).func();
(*obj).val = 10;
と書くのがマンドイから
obj->func();
obj->val = 10;
と書けるようにしただけ、と覚えた方が良いかもしれませんね。

関数ポインタはポリモフィズムを使って代用できてしまうから、
C++でやってる以上は覚えなくても差し支えはない気もしますが…

で、new (malloc) や delete (free) についてはまだ未開拓?
1851:04/10/28 23:08:52 ID:QLPnNbCt
>>182師匠
まあ、訴えられたらそのときで。
で、->はクラスのポインタから関数を呼び出す、と。

ソースどうもありがとうございます。
大変参考になりました。


>>◆HOTsoUpxjY師匠
な、なんだってー!


>>184師匠
なるほど、わかりやすい!
食事を作っている間にこれからやる部分の予習をさせてもらってしまった…

>関数ポインタはポリモフィズムを使って代用できてしまうから、
な、なんだってー!
ポインタを覚えたらポリモーフィズムも勉強しなくては…。

で、newで動的に生成したオブジェクトはdeleteでメモリを解放しないと
メモリリークが発生することはわかりました。
mallocとfreeについてはこれからですね。
186名前は開発中のものです。:04/10/28 23:15:15 ID:zWN7bqm5
勉強になります。
187名前は開発中のものです。:04/10/28 23:47:20 ID:/+mkJ+19
>>185
心配するな。"変数"ポインタと違って、"関数"ポインタは使い方を知らなくっても
死にはしない。
変数ポインタがだいたい理解できたら、new/deleteに行ってもいいんじゃないか?

私が無知なだけの可能性もあるが、関数ポインタのある言語って
Cファミリー以外知らないし。
188151:04/10/29 00:10:12 ID:cXoe97e1
>>177(>>1) 完璧。*と&でぱにくったら >>159 とか見てもらうといいかも。
ちなみになんで ポインタ ポリモーフィズム って言葉が頻発するかというと、

// 配列確保
const int MAX_OBJECTS = 100;
Stg_obj* object_array[MAX_OBJECTS];
memset( object_array, 0, sizeof(object_array) ); // 初期化

// ---- 生成 ----
object_array[0] = new MyShip();
object_array[1] = new Enemy();
object_array[2] = new Enemy();

// ---- 初期化 ----
for ( int i = 0 ; i < MAX_OBJECTS ; i++ )
  if ( object_array[i] != NULL ) // 配列にオブジェクトが登録されてたら
    object_array[i]->init(); // 初期化する

// ---- 表示 ----
for ( int i = 0 ; i < MAX_OBJECTS ; i++ )
  if ( object_array[i] != NULL ) // 配列にオブジェクトが登録されてたら
    object_array[i]->draw(); // 表示する

というように、自機だろうが敵が何匹いようが初期化や表示なんかは一発でこなせるのだ。
シューティングなら敵や弾の表示順序なんかは、表示する時に優先順位でソートかけるだけで済むし、一時停止機能を追加したければ全オブジェクトのmove()メソッドを呼ばないようにすればいい。
if文一個で終わっちゃう。
「機能(Stg_obj、MyShip、Enemyクラス等)」と、「表示」と、「実装(main()のルーチン)」をきっちりわけると、仕様変更にタフなアプリが作れるようになる。

ちなみに >>1 のソース見せてもらったけど、Stg_obj("シューティングゲームのオブジェクト")なんて名前のつけかたといい、色々な部分で関心したよ。
センスいいと思った。
1891:04/10/29 21:08:47 ID:UWs2GHSt
>>187師匠
なるほど!
とりあえず、ポリモーフィズムを考えたシューティング作成してみます。
バーチャルで○○.ActionをStg_objに宣言、Stg_objの派生、MyShip,Enemyそれ
ぞれに違うActionメソッドをつくって動かす(でいいんですよね?)

幸い、土曜は完全FREE(Full Reactive Eyes Entertainment)うわ、なにをするやめ


>>188師匠
オス! ありがとうございます!

ちなみに名前は他のサンプルプログラムがオブジェクトと言っていたので猿真似。
1901:04/10/29 21:13:24 ID:UWs2GHSt
現在の悩み。

当たり判定の実装方法どうしよう。
とりあえず、当面点と点のみの当たり判定を考慮するとしても同じような
配列に入れておくとどうループさせて当たり判定を行うのか…。
一般的な方法とかありますか?

次、メソッド名やファイル名の謎。
例えば、シューティングオブジェクトSTG_OBJECT クラスを作成するとして
StgObjectとつける人もいれば、stg_object、stgObjectなどとつける人も。

どんなときに名前の頭が大文字になるのかプログラム技術と関係ないながら悩み中。
Javaだとクラスの名前は頭のみ大文字、メソッドは小文字、複数節からなる名前の
場合は単語区切りで大文字にするらしいが、C++の作法はどうなんだろ。
191名前は開発中のものです。:04/10/29 22:20:30 ID:O1Zjnp6S
>>190
当たり判定は、最初だし一番基本的なとこで
for(i=0;i<MAX;i++){
 if(enemy[i].hitChk(myShip.x, myShip.y)){ /* 当たった処理 */ }
}
みたいな感じでいいんじゃない。
こちらの弾と敵編隊とか、n対nの当たり判定の場合は
外側にもうひとつループ増やしてさ。

命名規則はコレという正解は無いので、自分なりに統一されてれば
どういう方法でもよいと思う。
あれはもう宗教論争の世界だから、今後も「正解」ってのは出ないだろうし。
1921:04/10/30 01:26:50 ID:T0bjQJ33
今日はこれにて轟沈。
193151:04/10/30 03:19:57 ID:5NzlD1F3
>>1
当たり判定も「機能」と「実装」で分けると理解しやすくなるよ。
>>191 の言うStg_obj::hitChk()メンバ変数は、
オブジェクトが任意の座標に接触しているかを判定する「機能」を持っている。
で、接触を判定してその結果どうなるかの振る舞いは「実装」になる。
接触したことによって爆発したり得点が加算されたりパワーアップしたり。それは実装次第。

>>191 が'一般的'な「機能」を示してくれたので、>>1 は自分好みの「実装」をすればいいのだ。
(ちなみに「実装」を「一般化」すると「ツクール」になる)

命名規則も >>191 の言う通り。
慣例的なものはJavaが引き継いでるから、Javaの命名規則を参考にするといいかも。
194名前は開発中のものです。:04/10/30 20:09:10 ID:Px9E36TD
今日は一日フリーだったらしいが、進捗具合はどうなったんだろう……
1951:04/10/30 22:16:01 ID:KR7MrVzN
今日は一日中フリーだったが、起きたのがすでに15時…orz

抽象クラスの存在を理解し、文字シューに組み込もうとするが例のごとくちゃんと動かない。
(いつもこれかよ)

弾を複数出るように設計までしたんだが…。

StgObj(基本クラス・弾・敵・自機の基礎)
MyShip,Enemy,Bullet(それぞれStgObjから派生した自機・敵・弾クラス)

StgObj stg[100];の配列をつくってやり、
弾や敵が出るたびにEnemy,Bulletをnewして使用されていないstgに(StgObjは使用中フラグを持つ)割り当て。

StgObjがaction,hitChkという仮想クラスをもち、Enemy,MyShip,Bullet共に別々の実装を持つ。
で、stg[100].action()を全て実行して見ると画面上のオブジェクトが全て動いたり弾を撃ったりする。

で、一通り動いた後にhitChkを呼び出すとそれぞれに当たり判定をしてくれる。
(stg[100]の中から自機弾フラグを持つものの座標と敵フラグを持つものの判定、
 自機フラグと敵フラグを持つものの衝突判定、敵弾フラグを持つものと自機の当たり判定)

それでループ。
1961:04/10/30 22:21:14 ID:KR7MrVzN
あたり判定部分は

for (i = 0;i<100;i++) {
if (stg[i].flg == 2) { //2=自機の弾
for (l = 0;l<100;l++) {
if (stg[l].flg == 1) { //敵機フラグ
stg[l].hitChk(stg[i].x,stg[l],y);
}
}
}
}
こんな感じでえらい力技ループなのでポリモーフィズムの恩恵を受けてない…。
連想配列を使うとここも上手く処理できそうな気がしたが、すでに十分設計に
溺れてプログラムが進まないので泣く泣く諦め。

今日の結論。
設計するよりとりあえず動かせ。
197名前は開発中のものです。:04/10/31 00:20:39 ID:H07pglo7
>>196
連想配列は、引数に文字列が指定できる配列ってだけなんで
別にそれ使ったからといってn:nのチェックが楽になるわけではない……と、思うけど?

迷ったらとりあえずコード書く、というのは私としては正解です。
ある程度書けば、どうすれば効率いい書き方が出来るかの方向性が見えてくるので
その時点で書き換える。というのが理想だが、実際は結構そのまま使ってしまう。
うう、こんなif文羅列してる場合じゃないだろ、とか思いながらな。
198名前は開発中のものです。:04/10/31 00:29:46 ID:VfI9Fc6C
ソース見てないで言うのもアレだけど、>>195-196を読む限り、
全種のオブジェクトを一つの配列で扱ってるのかのう。

種類に応じて登録する場所を決めておけばフラグを調べる必要はないよ。(バケツソート)
例えば「StgObj stg[8][100];」みたいにして、0は敵、1は敵弾、2は自機弾…など。
これをヒントに色々改良してみてはどう?
199名前は開発中のものです。:04/10/31 01:28:39 ID:YkX+DOsT
効率の観点から言うと正解ではないんですけど、
hitChkを仮想関数にしてStgObjに定義(中身は空)しておいて、
自機弾だけに実装しておけばフラグはいらなくなりますね。
(自機弾以外は呼び出されても何も実行されない)

ただ後々描画順を考えるようになると、>>198氏のやり方が便利になってきますね。
200名前は開発中のものです。:04/10/31 10:44:47 ID:SmB4uQNL
おい、おまいら
俺のことも育成してみないか。

やる気 :100/100
健康  :100/100
技術  :1
経験  :3
201200:04/10/31 10:53:04 ID:SmB4uQNL
【プロフ】
・現在カナダに留学中 Grade11th
・プログラム(C++)の授業を取っているが説明が英語なのでちんぷんかんぷん
・やる気と時間は充分
・最終的にはロマサガ2,3みたいなゲームを作りたい
202名前は開発中のものです。:04/10/31 11:44:45 ID:E/EZnM4Q
>>200
OKOK
漏れも育ててやるよ。
まずは全裸のままじゃあれなんで服買わないと…
203200:04/10/31 12:01:54 ID:SmB4uQNL
とりあえず「じゃんけんゲーム」つくってみた。
http://www.geocities.jp/practice200/
204名前は開発中のものです。:04/10/31 12:57:01 ID:H07pglo7
とりあえず<>を表示できる状態で上げてくれ。
205名前は開発中のものです。:04/10/31 20:42:47 ID:JBlQbm1w
>>200
今までのプログラミング遍歴を書くと、教えやすいかも。
何もやった事が無いならないで、そう書いてホスィ。

rand 使う時は、srand 使わないと毎回同じ数列になるので注意。
srand((unsigned) time(NULL));
みたいに、時間をシードにすればおけ。
206名前は開発中のものです。:04/10/31 21:08:00 ID:VfI9Fc6C
名スレの予感
207200:04/10/31 21:48:04 ID:gxWW8Utq
>>204
スマセン
表示できるようにしておきました師匠。

>>205
師匠ご教授ありがとうございます。
srand(time(NULL));を入れたら、ちゃんとできました。
ところで、(unsigned)とは何でしょうか。これを入れたらエラーが出たので抜いたのですが。

プログラミングは何もやったこと無いです。
入門書をカジッタ程度。
208名前は開発中のものです。:04/10/31 22:47:16 ID:2R7wW9WG
>>207
符号が無いって事なのでは?
2091:04/11/01 00:54:55 ID:jhYYwmHZ
ただいま帰りました。

この2日間、体調が悪かったので思ったこと。
夜型にすると多少無理でもやろうとしてしまうので朝方勉強がいいのかも。

師匠方、「これは!」と思う学習方法、「駄目だ!」と思う学習方法の例
等ありましたら教えていただけないでしょうか。
2101:04/11/01 01:08:40 ID:jhYYwmHZ
>>197師匠
連想配列、ご指摘のとおり間違っておりました。
俺が考えたのは…

1・StgObjが前のクラス、後ろのクラスに対するポインタを持つ。
2・新しいものを追加するたびに最後尾のクラスに連結
3・終わったら自身をDeleteし、前のクラスと後ろのクラスを連結する。

連想配列と同時に、こんな感じのものが提示してあったので、これでいけるかも!?
と思ったわけです。

何をするかと言うと。
1・全クラス登録必須配列・敵配列・自機配列・弾配列・敵弾配列があります。
2・全部StgObjを元としたクラスで、全クラス登録必須配列にはnew した全てのクラスが
  連鎖しています。
3・敵配列・自機配列などはそれぞれ敵だけ、自機だけが連鎖しています。
4・全部のクラス共通処理(移動など)は全クラス登録必須配列.action()などとひとまとめ。
5・自機に当たり判定があるクラス(敵弾クラス・敵クラス←敵本体との当たり判定もあるので)は敵弾配列にも登録、hitChkを自機に対して走らせる。
  (自機対敵も同じ)

という処理で柔軟にいろいろな処理が出来て、必要ない処理が減らせるのかなと。
でもとりあえず、今は書くだけ書こうと思います。

>>198師匠
イエス、その通りです!
二次元配列!
確かにその方がわかりやすくていいですね。盲点でした…

>>199師匠
なるほど、その方法がいいかもしれませんね。
特に今は簡単な方がいい気がします(複雑なことをやろうとしてプログラムが動かないので)
その方法、使わせていただきます!
2111:04/11/01 01:10:52 ID:jhYYwmHZ
>>200さん
む、ライバル出現!?
なんかゲーム的な展開だ。
も、燃える!
とりあえず以後よろしく。

>>202さん
育成ゲームもゲーム名だけに買わないと服も着ていないのか…w
212名前は開発中のものです。:04/11/01 12:01:01 ID:rB5WZwI+
>>211
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
213名前は開発中のものです。:04/11/01 13:01:09 ID:aSq2Lqgu
STL使えよ
と言ってみる

管理凄く楽
214名前は開発中のものです。:04/11/01 16:18:45 ID:MWJ2t0jG
とりあえず、皆さんに言っておきたい。

「荒らしはスルーの方向で」
215名前は開発中のものです。:04/11/01 16:21:25 ID:MWJ2t0jG
>>213
リンクリストとハッシュを間違えて話題に上げてるあたり、
STLも調べてるっぽいぞ。
216名前は開発中のものです。:04/11/01 18:15:23 ID:aSq2Lqgu
じゃあ

210のことやりたいなら、STLのlistを調べてみるといいよ
と言っておこう

この板人いないねえ
217名前は開発中のものです。:04/11/01 18:27:29 ID:MWJ2t0jG
確かにlist使った方がよいとは思ったが……
イテレータの概念を理解できるなかーって思って。

いや、しかしポインタ使えてる大丈夫か。
よし、stl::listを使え!
というか、HPを更新しろ!
2181:04/11/01 20:27:43 ID:iXqLIcaV
帰宅。

ようやくvirtualを使用してポリモーフィズム実現しました。
(いろいろ考えた挙句にプログラムは動いてなかった)

STLはまだわかりません。
>>210で言っていたことはC++教本にあったコードを見て勝手に考えた
ことなので…。
2191:04/11/01 20:32:15 ID:iXqLIcaV
>>213師匠
とりあえず、7師匠の課題が一段落ついてからSTLに取り組もうかと。

>>215
リンクリスト?
わからないので調べてみます。


>>216師匠
了解!


>>217師匠
イテレーターもわからないです…。
とりあえず、調べてみます。

HPは明日の午前7時までにはまともに更新します。
STLは7師匠の課題が一段落したらいってみます。

というか、久々にWindowつくって画像を動かそうとしたらできなかった…。
220名前は開発中のものです。:04/11/01 21:38:20 ID:AGV/fOCE
??
221名前は開発中のものです。:04/11/01 21:52:46 ID:ut1KgkLD
????(:)rz?????●rz?????????????????
??
2221:04/11/01 21:57:20 ID:iXqLIcaV
朝方勉強に切り替える実験のため、今日はもう寝ます。
明日朝に更新(&最新ソースUP)します。
223名前は開発中のものです。:04/11/01 22:18:24 ID:MWJ2t0jG
ここのところの後回しにするパターンを見ていると、なかなか投げ出しそうな雰囲気が
漂ってて不安になってくるんだが。
ホントに朝には更新しろよ?
224名前は開発中のものです。:04/11/01 22:49:20 ID:HlwxgpJ5
強要するのもなんか違う希ガス
225名前は開発中のものです。:04/11/01 22:52:46 ID:ut1KgkLD
とりあえず>>1が朝起きた時用に













                    /ヾ
                  ゝイ丿
                   / /
                  / /
                  / /
        ∧ ∧      / // ̄ ̄ ̄ ̄ ̄ ̄
 シコ    ( ゚Д゚)、    / /< >>1おはよう!
      /     ヽ、 / /  \______
 シコ  ( ) ゚ ゚/ヽ、/⊂//
      \ ヽ、 (  /⊂//
        \ ⌒つ /
        (  ̄/ /
        |  |O○ \
        |  |   \ \
        |  )    |  )
        / /     / /
       / /       ∪
       ∪
226名前は開発中のものです。:04/11/02 00:39:10 ID:kGUpB27K
>>223
「俺育成ゲーム」なんだから、うまく >>1 を誘導してやる気にさせなくちゃ。
逃げたら逃げたで代わりの >>1 を(ry
227名前は開発中のものです。:04/11/02 06:51:23 ID:qLGD0oF3
さっさと挫折しろ
2281:04/11/02 07:12:42 ID:xVWcOq4C
http://f41.aaacafe.ne.jp/~grow/

師匠!ようやく更新しました。
1・1対1シューvirtualクラス導入ソース
2・1対1シューvirtualクラス本格導入ソース(Bulletもクラス化し、複数弾を出せるよう変更)
がメインの更新です。

・ファイル名がクラス名と同一に(StgObjクラスならStgObj.cpp)
・クラスは頭が大文字に。
・メソッド・クラスは単語区切りで大文字化(StgObj>Stg+ObjなのでSとO大文字)
・変数は全て小文字、単語は_で区切る
などの自分ルールを決定、導入しました。

とりあえず、最低限の更新を行ったのでもう少ししたらまた変更されているかと。
2291:04/11/02 07:20:06 ID:xVWcOq4C
7師匠、1対1シューとしてはあれでいい気がしますがいかがでしょうか!?
まだ見ていてくれていればいいなぁ…。

今日は朝5時起き。
2〜3時に寝て9時に起きるより大分快調。
もともと8時間睡眠必須人間だったので22時就寝・5時起床のペースで
慣れていく予定。

起きてしばらくだるいが、そのうち慣れるだろう。

>>220さん、221さん
それは俺のやる気が見えないという暗示か!?
あいにくやる気は十分。
健康が回復したらペースも取り戻すからまってろ。

>>223師匠
更新しました。
期待に添えるほど進んでいるかはわからないですが…。

>>224さん
言葉はありがたい。
が、無償で教えてもらっているからにはある程度期待に答える義務が
こちらにあると思っている。

>>225さん
おはよう。

>>226さん
逃げないよ。
230名前は開発中のものです。:04/11/02 10:18:22 ID:QAC/G2jq
会社より。
今更リンクミスに気づきました。

シューティング回答は↓に。
http://f41.aaacafe.ne.jp/~grow/kadai/result/
231200:04/11/02 11:20:41 ID:xxBN9dM6
やぁやぁやぁやぁ、おまいらコンニチワ。
さっそく質問なんだが、
clrscrとgotoxyを使うと「定義されていない識別子です。」と言われるんだ。
conio.hをインクルードしてるのに何故よ?
VC++6使ってます。
初歩的な質問でスマソ。調べたのだが、どうしてもわからなかった。
ヘルプミー

>>1
今後ともよろしく。
232名前は開発中のものです。:04/11/02 11:38:11 ID:jXbFhO40
もう少し頑張れ
せめてこのスレを全部読んでから始めなよ
>>1とその師匠達に対して失礼
233名前は開発中のものです。:04/11/02 11:53:16 ID:l4UyOVyf
これは難易度の高そうなゲームですね
234200:04/11/02 12:18:11 ID:xxBN9dM6
>>232
だよね。
俺が間違ってたよ。
出直してきます。
235名前は開発中のものです。:04/11/02 12:21:30 ID:eCRS9fOS
初心者な231の為に言わせてもらえば、ctrl+Fで検索するといいぞ。
2361:04/11/02 20:54:28 ID:N1WmJFms
帰宅。
現在1VS1シューの敵複数化&ポリモーフィズムをさらに生かすため修正中。

今日中に出来るといいかな…。

ところで質問があります。

現在、基底クラスStgObjからBullet(弾)・敵・自機を派生させていますが、
弾・敵・自機にshootというメソッドをつくり、弾クラスのポインタを返却させ
たいのです。

どれも共通の処理になりそうなので
Bullet* MyShip::shoot() {
  Bullet* new_bullet = new Bullet;
  new_bullet->init(x,y - 1);
  return new_bullet;
}

などと書かずにStgObjに実装したいのですが、Bullet自体がStgObjから派生している
ためか上手くいきません。
なにかよい方法はないでしょうか。
237名前は開発中のものです。:04/11/02 21:19:43 ID:l4UyOVyf
戻り値の型が違うから云々ってエラーが出る奴かね?
2381:04/11/02 21:30:10 ID:N1WmJFms
>>237師匠
E2303 result6_3\Bullet.h 8: 型名が必要
ちなみに、StgObj.hに#include "Bullet.h"を入れ、もろもろのエラーを
解決して最後に残るのがこのエラーでした。

ソースUPはメインPCを家族が使っているので(パスワード不明のため)
今すぐできないのが残念です。
239名前は開発中のものです。:04/11/02 21:33:07 ID:PuwX5QDq
// 1.クラス名の宣言
class Bullet;

// 2.クラス構造の宣言
class StgObj {
public:
  Bullet* shoot();
};

class Bullet : public StgObj {
public:
  Bullet();
};

// 3.クラスメソッドの実装の順で書く。
Bullet* StgObj::shoot(){
  Bullet* new_bullet = new Bullet;
  return new_bullet;
}

Bullet::Bullet() {
  printf("bullet init\n");
};
240名前は開発中のものです。:04/11/02 21:36:30 ID:PuwX5QDq
C言語は、とにかく上からコンパイルするから、
「下の方で定義してあるもの」ってのは、Cコンパイラにとっては
未知の単語に過ぎない。

だから関数の宣言とかクラスの宣言と、その実装を別々に書けるように
なってるわけ。
2411:04/11/02 22:28:19 ID:N1WmJFms
>>239師匠
できました!
ありがとうございます。

これでヘッダの書き方を大分調べたつもりなのですが、ヘッダの書き方について
しっかり書いてあるサイトって少ないですね。

やはりC++本を別に買って見るのがいいのか。
2427:04/11/02 22:42:36 ID:v413qbLh
>>229
すいません、随分と間を空けてしまいました。
課題は受け取りました。

まだ、少ししかテストしてませんが、うまく動いているようですね。
実行ファイルは OK です!
要求を十分満たしています(複数弾などすでに拡張もされてますし)。
体調の悪いところを頑張ってもらえて嬉しいです。

しかし、ソースのほうは、まだまだ改善の余地があります。
これは、C++ の学習はまだ始まったばかりなので仕方ありません。

というわけで、今回は、動くものが出来ただけで素晴らしい!
と判子を押させてもらいます。
243さすらい:04/11/03 04:06:57 ID:u5v4/sy+
>>1さん開発終了おつかれさまです。
このすれ面白かったので読破しちゃいましたよ。
すごい上達っぷりですね。応援してます。

すごい余計なお世話と思いつつも、
勝手ながら>>1さんのソースをちょっといじらせていただきました。
すみません。
中途半端な修正ではありますが、
ちょっと小粋なテクニックみたいなものも織り交ぜてみましたので、
よかったら参考にしてみてください。

http://xxsasuraixx.hp.infoseek.co.jp/
↑の(死んでる)ページの上のほうにある「1さんへ」というリンクがそれです。
かなり僕の趣味が反映されていますが、
ヘッダファイルとかもしかすると参考になるかもしれません。

それではがんばってください!
244名前は開発中のものです。:04/11/03 09:25:09 ID:WyOgcCPy
>243
おや奇遇だね、私も手直ししてみたのをうpって見たところだよ。
http://www.gamdev.org/up/img/1776.zip
#最近ここのうpろだ、糞虫どものせいでちょいと繋がりにくいが。。。

>>1
243氏のはまだ見てないが、同じように書き換えてるところ、
違う書き替えをしてるところがあると思う。
比べてみるのも面白いかもしれない。
2451:04/11/03 09:45:54 ID:tC+TKpxi
今、修正中。
(とってもこれから出かけるが)

あと、皆さんのソースをHPに乗せたいがよろしいでしょうか。


>>7師匠
オッス!
ありがとうございます!
現在更に改造中です!


>>さすらい師匠
ありがとうございます!
Constを別宣言して、さらに別ディレクトリにヘッダをまとめてありますね。
あとは仮想クラス導入ですか(まだ斜め読み)。
確かにStgObjは仮想クラスのほうがいいかもしれませんね。


>>244師匠
おお、ありがとうございます。
複数人のソースを比べるだけで面白そう。

でも244師匠のソースが落ちてきません…。
2461:04/11/03 09:47:25 ID:tC+TKpxi
http://f41.aaacafe.ne.jp/~grow/

一応、出かける前のソースをUPしておきました。
たいして変わってないのですが、shootクラスを追加・少しだけScore機能追加
+237師匠へのありがとうをこめて。
247名前は開発中のものです。:04/11/03 13:16:16 ID:ofl+DdDM
ソース比較するなら、diffって系統のソフトがある。
前のバージョンから変わった場所を調べたり、他人が変更を加えた場所を
調べたりするソフトだ。
GUIで私の気に入ってる奴を紹介しとこう。使ってみるといい。

result6_3, result6_3aなんて比較すると、どこが変わったか一目瞭然。
ttp://www.vector.co.jp/soft/win95/util/se113286.html

次の目標は、いままでの知識を総動員してインベーダーゲームを作る。
なんてどうだろう。
248名前は開発中のものです。:04/11/03 14:07:12 ID:iVy9apM6
>>247
インベーダーはよさそうだね
249名前は開発中のものです。:04/11/03 14:42:53 ID:BS/Ghx7o
>>1さんに影響されて C++ の勉強を始めますた。
今まで Delphi やら Java やら PHP などは書いた事あるのですが、
C++ どころか C 自体、今回初めて触りました。

とりあえず、手始めにリバーシを作ってみました。
オブジェクトの扱いは、Delphi と Java で少し慣れていたので、何とかなりました。
BCCを使っているのですが、コンパイルエラーのメッセージが解り辛くて何度かハマリますた。
http://www.geocities.jp/nanasiya3/archive/PracticalReversi.lzh

>>1さんに負けないようにがんばるYO!
250名前は開発中のものです。:04/11/03 14:56:43 ID:iVy9apM6
>>249
C++初めてでこれですかΣ(´Д`)
Javaやってると強いですねぇ。

細かいことですが、引数を一つだけ取るクラスのコンストラクタは
explicit指定しておいた方が良いかもしれません。
251249:04/11/03 15:17:41 ID:yuzJEfmb
>>250
恐らく、どこかにバグが潜んでいると思われます。
ていうか、MiniMax + αβ でAI作ったのにあんまり強くなくてショックです… orz
評価関数が悪いのかなぁ… (´・ω・`)

ご助言ありがとうございます。
explicit は知りませんでした。検索したら、C++固有の物みたいですね。
これを引数が1つだけのコンストラクタに指定しておくと、
勝手に型変換されるのを防ぐ、といった意味合いでよろしいでしょうか?
252さすらい:04/11/03 15:33:29 ID:uuJHfnBc
ソースは載せていただいてかまいませんよ。
>>244 さんのソースも見たけど、ポイントはできるだけベースクラスにまとめよう
というところな気がします。

>>249
STLを導入するか、もしくはGUIに行くかが次のステップかも。
253名前は開発中のものです。:04/11/03 17:34:18 ID:/JJcJjxn
ためになるスレだなあ

しかしコンパイルできないから、バイナリも一緒に載せてくれないかなあ
と思ったり
2541:04/11/03 21:58:42 ID:jxa6uMV+
サイトの日記、えらくつまらないな…見返して思った。
現在、シューティングの敵複数化・弾を撃ってくる・移動パターンをもつなど修正中。
でも今日はもう寝る。

>>247師匠
師匠、了解しました!
DIFF、いいですね。

そうそう、今作っているのは「敵が大量に出てくる」「時間で弾を撃ってくる」
「移動パターンが複数ある」感じなのでインベーダーに近いかと。
それでもいいでしょうか?

>>249さん
ぶーッ!
俺より遥かにつえぇ!
よ、よろしく。

>>さすらい師匠
GUIもSTLもやってみたいですねー。
GUIにした瞬間、1対1シューの要領でシューティングゲームがつくれ
たりしたら…とっくにみんなシューティング作っているか…。

基礎も学ばなければと思っているのでSTLもいいんですよね。

>>253さん
了解、次回よりバイナリも乗っけます。
2551:04/11/03 22:12:41 ID:jxa6uMV+
師匠!
寝る前にちと相談があります。

今、用を済ませた弾や敵が消え去るためのdelメソッドをクラスに
実装しようとしていますが、やはりmainでdelete処理を行うしか
ないでしょうか。

状態・
敵の行動パターンが3つ(クラスも3つ)

これらはAction(移動方法)・shoot(弾の撃ち方と生成する弾クラス)に差異を
持っています。
弾のパターンが3つ(クラス3つ)
これもActionメソッドが異なり、斜め弾・自機狙い・真下弾の3つがあります。

現在、弾や敵はそれぞれに同一配列に読み込んで処理をさせていますので、事前
に一種類の敵クラスを生成・使用の度に初期化という処理を行うことが出来ず、
毎度Delete・Newを行っています。

このあたりのスマートな解決方法はないでしょうか。
もしや、STLに進んでから考えることとか?
256名前は開発中のものです。:04/11/03 22:49:04 ID:/JJcJjxn
全てStgObjから派生してるから、派生してるクラスなら
なんでも格納できるような

あと初期化とか終了処理をまとめたいなら
ゲームの流れを管理するクラスでも作ってはいかが
257名前は開発中のものです。:04/11/03 23:18:34 ID:ofl+DdDM
>>0xFF
そーいうときは、敵管理クラスを作る。
敵管理クラスの中に、敵配列を入れておいて敵を登録・削除するのは
そのクラスにまかせるわけね。

敵の登録はmain関数かどっかから管理クラスに命令与えてやらなきゃ、
敵をいつ登録するのか判らんから、命令してやらねばならん。
でも、敵を削除するのは管理クラスに登録してある敵クラスを見れば判るんで
管理クラス内で自動的に出来る。
つまりmain関数とかでdeleteしなくてもいいいわけだ。

あ、登録ってのは別に特別なことやってるわけじゃなく
普通にnewして配列に入れてるだけね。

# STLは「配列を楽に管理する」ためのクラスの集まりかね。
# まあ正確には、STLの一部が配列を楽に管理するクラス群なんだけどさ。
258名前は開発中のものです。:04/11/03 23:50:21 ID:jGuNcdqE
そーいえば>>1って幾つだっけ?
259名前は開発中のものです。:04/11/03 23:54:09 ID:/cXEWH3G
クラスの中から自分自身をdeleteしたい時は
delete this;
でOK。
260名前は開発中のものです。:04/11/04 00:32:16 ID:iKq3egpe
試したらエラー出ますた
261名前は開発中のものです。:04/11/04 00:39:40 ID:iosLyaV9
>>260
これでもエラー出る?

class DeleteMine {
public:
 DeleteMine() { printf("create\n"); }
 ~DeleteMine() { printf("destroy\n"); }
 void DeleteMe() { delete this; }
};

void main() {
 DeleteMine *delMe = new DeleteMine;
 delMe->DeleteMe();
}
262名前は開発中のものです。:04/11/04 00:56:44 ID:iKq3egpe
new するの忘れてますた。スマソ
再度試してみた
#include "stdafx.h"
#include <iostream>

class DeleteMine {
public:
    DeleteMine() { m_test=10;printf("create\n"); }
    ~DeleteMine() { printf("destroy\n"); }
       int m_test;
    void DeleteMe() { delete this; printf("無視されるかな%d\n",m_test);}
};

void main() {
    DeleteMine *delMe = new DeleteMine;
    delMe->DeleteMe();
}

結果
create
destroy
無視されるかな-572662307

デストラクタ呼ばれても、次の関数呼ばれるんだな
でもメンバはちゃんと消えてるんだな

C++難しい…
263さすらい:04/11/04 01:24:04 ID:wYOf1GGX
>>1
GUIとSTLどっちが先がいいですかねぇ・・。
STL使わなくても物は作れますんで、
GUIを優先したほうがよさそうな気もします(GUI楽しいですし)。

敵や弾の管理は結構悩みますね。
今は敵とか弾は配列管理してますけど、
スレの上の方に出てきてた双方向リストの管理に置き換えれば、
オブジェクトが自分で勝手に消えてくれる実装ができるかもしれません。

class StgObj
{
  StgObj* m_prev; // 前のオブジェクト
  StgObj* m_next; // 次のオブジェクト

  void del()
  {
    // 自分をリストから外す(nullチェック省略)
    m_prev->m_next = m_next;
    m_next->m_prev = m_prev;
    // 自滅する(>>259のご意見頂戴しました)
    delete this;
  }
};

StgObj* object_list;
object_list = new StgObj(); // リストに追加
object_list->m_next = new StgObj(); // 2つ目追加
object_list->del(); // 1っこ目削除
264名前は開発中のものです。:04/11/04 01:39:00 ID:joRqK5+g
俺も昔はそういうことばっか考えてたなぁ…
今はある程度のパフォーマンスの低下があっても楽に作れるほうを選んでるから
こんな感じで作ってます↓

class StgObj
{
private:
 bool m_valid;
public:
 bool IsValid { return m_valid; }
 void Invalidate() { m_valid = false; }
 StgObj() { m_valid = true; }
 virtual Update() = 0;
 virtual Render() = 0;
};

typedef list<StgObj*> StgObjList;
StgObjList objects;

void UpdateAll()
{
 for( StgObjList::iterator it = objects.begin(); it != objects.end(); it++ ) {
  StgObj* obj = *it;
  if( obj->IsValid() )
   obj->Update();
 }
}
265続き:04/11/04 01:42:21 ID:joRqK5+g
void KillAll()
{
 StgObjList::iterator it = objects.begin();
 while( it != objects.end() ) {
  StgObj* obj = *it;
  if( it->IsValid() )
   it++;
  else
   it = objects.erase(it);
 }
}

まあUpdateAllとKillAllを同時に行う手もある
266さすらい:04/11/04 01:43:53 ID:wYOf1GGX
すみません上のソースの最後にある使い方のとこですけど、
ちょっといい加減過ぎたので書き直します。

// リストを宣言
StgObj object_list_head; // リストの頭
StgObj object_list_tail; // リストの尾

// リストを初期化
// (最初は頭と尾だけのリスト)
object_list_head.m_prev = NULL;
object_list_head.m_next = &object_list_tail;
object_list_tail.m_prev = &object_list_head;
object_list_tail.m_next = NULL;

// リストの最後に追加する。
// (最後というか尾の1つ前に挿入)
void add( StgObj* obj )
{
  StgObj* prev = object_list_tail.m_prev;
  StgObj* next = &object_list_tail;
  prev->m_next = obj;
  next->m_prev = obj;
}

・・・。
stl::list使ったほうが早いかも・・。
267名前は開発中のものです。:04/11/04 01:55:17 ID:Ozr3DazX
>>264 要するに今1がやってる実装ってことだよな。
268さすらい:04/11/04 01:59:18 ID:wYOf1GGX
>>264
俺もそれでいいと思うんだけど、
それって結局今>>1がやってることなのよ。
269名前は開発中のものです。:04/11/04 02:01:21 ID:joRqK5+g
あ、ほんとだ。(今ソース見ました)
STLを使った実装例つーことで参考にでもしてくだせぇ
270名前は開発中のものです。:04/11/04 18:12:38 ID:08bUbnJs
>>266
>>1がやってるぞ
271名前は開発中のものです。:04/11/04 18:13:01 ID:08bUbnJs
2721:04/11/05 00:21:16 ID:2k/tHsKT
月初一週間は忙しい…今帰宅。
そして寝る。

次回更新は土曜日の予感。

>>256師匠
ゲームの流れを管理するクラス…それだ!
面クラス>敵・弾を管理
main>面クラス管理
おお、わかりやすい!…気がする。

>>257師匠
なるほど、敵の配列を持った敵管理クラス内で処理してやることで操作がわかり
やすいし、mainもすっきりしますね。
新しいゲーム作るときも弾の管理とかをいじってやれば新しいシステムに簡単に
対応できそうです。
面管理>敵管理・弾管理
シューティングの構造が見えてきた気がします!

>>258
シオシオの24。

>>259師匠
マジですか!
超便利。ソースコードありがとうございます!
2731:04/11/05 00:28:45 ID:2k/tHsKT
>>262さん
検証ありがとう。
わかりやすい検証のおかげで安心して使える。

>>さすらい師匠
サンプルコードありがとうございます。
STLを使うのはとりあえずの実装が全て終わってからにしようかと思っています。
効率悪いやり方をした後にいいやり方を学んだ方が身につきそうな気がするので。

>>264師匠
ソースコードありがとうございます。
まさにやろうとしていることにピッタリです。
自分流と比較して改良してみます!
…ところで、STLはこれに使われてないですよね?

>>270さん
やろうとしていることの先取りであればソースを比較して勉強できるので
大分嬉しいです。
多人数とソースを比較できる機会なんてあまりなさげですし。
274名前は開発中のものです。:04/11/05 00:34:03 ID:kdAftVZV
歩いている道が、そこで二本に分かれていた。
地図を見ると南へ続く道はWindowsSDKへ、東へ進む道はTextShootingへと
続いているらしい。
君は……

A.やっぱりグラフィックを扱えなきゃな。南へ行ってWindowSDKを学ぶぜ。
B.ここは基本を固めるために、TextShootingの東へと向かってみるか。
C.まてよ……。確か少し戻ったところにjavaへの分かれ道があったよな。
275名前は開発中のものです。:04/11/05 00:35:04 ID:PZhRBaNW
delete this
の使用は(ごく特殊な状況を除いて)推奨できない。。。
削除の対象がクラスCのオブジェクトoとして、
・oがnew C(...)によって確保された時しか使えない。
 staticやauto、placement newなどでは結果がどうなるか分かったものではない
・oを参照している側にはoが削除されたか否かが自明ではない。
といった問題がある(他にもあったかも)。
276名前は開発中のものです。:04/11/05 00:38:15 ID:S6LZ0nGb
>>273
>>264だけど思いっきりSTL使ってるよ
typedef list<StgObj*> StgObjList;
で、リストの型名を定義しとる
277名前は開発中のものです。:04/11/05 00:55:49 ID:TE32uoVQ
>>1に便乗してオレ育成ゲームを同時進行してます。
278244:04/11/05 00:56:42 ID:PZhRBaNW
>245 のせてもかまわんよ。
むしろ、こんな糞コード書いちゃいけねぇ、
と言いきってしまえるほどに成長しれ。

# 244でもSTL使ってたような気がするが気のせいだったかな。
279名前は開発中のものです。:04/11/05 00:58:00 ID:kdAftVZV
STLを使うためにはテンプレートの知識が必要らしい。
噂の巻物は音を立てて消え去った。
280名前は開発中のものです。:04/11/05 01:04:34 ID:LEB7JBjL
>>274
なんでSDKなんだよw
APIに汁
281名前は開発中のものです。:04/11/05 01:12:03 ID:kdAftVZV
あら?SDKとAPIって同意語だと思ってたのだが?
いや、言葉そのものは開発キットとインターフェイスってことで
意味は違うんだが少なくとも、windowsアプリの開発では
SDK使って開発 = API使って開発じゃないっけ?
282名前は開発中のものです。:04/11/05 08:00:15 ID:IJaa/YBg
素人な漏れにとっては
Win32APIだろうがWindowsSDKだろうが
呪文にしか聞こえないわけでorz
283名前は開発中のものです。:04/11/05 08:05:58 ID:PZhRBaNW
ところで、1は朝型生活に切り替えたと聞いたような気がするのだが、
どうなったかな。
284名前は開発中のものです。:04/11/05 08:19:47 ID:E2OAFXco
>>281
MFCだってAPI使うぞ
SDK使って開発=1から全ソースを書く
MFC使って開発=クラスライブラリをベースに作る
285名前は開発中のものです。:04/11/05 13:10:25 ID:FiuVE1A9
MFCはWindowsAPIラッパだろ
286名前は開発中のものです。:04/11/05 16:13:29 ID:LEB7JBjL
>>1がんがれ、超がんがれ
287さすらい:04/11/06 00:34:18 ID:P5Kg8s/4
>>275
そうスね。
delete thisは結構イレギュラーだと思います。
ただgotoと一緒で使いようだと思ってますし、
「〜管理クラス」系のシステムよりなクラスを作るより、
StgObjで完結する仕組みを取り入れていってもらって、
サクサク実装進めたほうがいろんな意味で>>1さんにとって効率いいんじゃないかと、
ちょっと勝手に考えておりました。
288名前は開発中のものです。:04/11/06 00:52:33 ID:uU+gyUMf
>>287
まあ、これ以上は組み方の趣味の問題になるが
俺は管理しやすい部品使って長いゲームループ書くより
細かく分けるほうがすきだなあ。
2891:04/11/06 18:23:59 ID:NxSGjUhd
現在作業中。

というか、昨日は家に帰れず漫画喫茶で一夜を過ごしました。
よって、ようやく掃除などが終わったばかりです…。
2907:04/11/06 21:42:57 ID:/8hMrT4P
私も課題6をアップ。
http://gamdev.org/up/img/1805.zip

*弾と敵機の数はそれぞれのヘッダで調整できます。

なるべくファイル同士の依存性を取り除いています。
手間は増えますが、後々手を加えるのが楽なので。
良かったら、一つの参考にどうぞ。

>>1
無理せず、進めてくださいね。
疲れているときに書くソースはよくこんがらがるので。
2911:04/11/06 23:24:59 ID:iVggyR0n
すみません、会社の仕事と平行してやっていましたが、
仕事が終わらないので仕事専念にいたします。

orz...

次の更新は月曜か日曜夜(予定)
大学生のときにもっと勉強しておけば…。
292名前は開発中のものです。:04/11/08 00:49:11 ID:+jK6X3KR
なんかこのスレだけ2chのスレとは思えないほどだなw
マターリ度120%って感じだ。
1さんはどうせならトリップでも付ければ?
293名前は開発中のものです。:04/11/08 12:41:35 ID:gzobx+f9
>>291
マターリがんがれ
294名前は開発中のものです。:04/11/08 17:11:52 ID:d5JbxtbZ
自分も便乗して、
育成よろしくお願いします。
開発環境は WIN & bcc
C暦2ヶ月
です
295モウダメポ ◆orzOTL/11Y :04/11/08 21:20:25 ID:3b5AxQBD
>294
漏れも3か月で、できれば教育してもらいたいが、1さんはもともとPGだからレベルが違うと思われ。
スレの内容がサパーリなくせに常にROMってる者の独り言ですorz
296名前は開発中のものです。:04/11/08 21:24:17 ID:eLVA3L2H
すげぇトリップだなw

思うに1さんが頑張るからこのスレが伸びてるわけで、
今までのスレの内容はサッパリでも自分のレベル内で頑張れば、
それに応じてレスがついてくると思うんだがなぁ
297名前は開発中のものです。:04/11/08 22:32:38 ID:qFIHlyAE
>>295
もともとのプログラミングの能力なんかどうでもよくて、要は姿勢の問題です。
何がやりたいのか、そのためにどうしたのか、何が分からないのか
をはっきりさせればアドバイスがもらえないことはそうそうないです。
総じて受け身だと絶対にうまくいかないです。
2981:04/11/08 22:32:54 ID:XBmtzuLE
し、仕事がようやく完了。
朝方を目指していたのにしっかり夜型に戻された…。
とりあえず、レスと簡単な疑問をちょっと書かせてもらってから寝ます。

ああ、夜に寝られるようになりたい。
2991:04/11/08 22:37:43 ID:XBmtzuLE
>>274さん
B.ここは基本を固めるために、TextShootingの東へと向かってみるか。
Javaへの分かれ道は携帯ゲームを作るまでパンくず落として見失いようにしておく。


>>275師匠
うわ、staticとかplacementとか調べないと…。
とりあえず、delete thisは危険なんですね。気をつけます。


>>276師匠
なんとー!?
stl.hとか宣言して使うものだとばっかり思ってました。


>>277さん
便乗なんかやめていっしょにやろう。


>>278師匠
ぐはっ! 無知な俺…。
ソースはまとめて公開させていただきます!
300名前は開発中のものです。:04/11/08 22:39:19 ID:IulS2pPZ
じゃあとりあえず >>294>>295 に課題をだします!
BCCでこのスレのコンソール出力(座標指定表示まで)をできるようになってから、
ライフゲームを作ってみましょ(ライフゲーム知らなかったらググってください)。

【ルール】
・70x20マスのフィールドを用意
・「*」が生物。
・空白のマスの周り8マスに「*」が3匹いたら空白のマスに「*」が誕生する
・「*」の周りに「*」が1匹以下もしくは4匹以上いた場合過疎/過密でその「*」が死ぬ。

開始直後の「*」の配置
 *
***

良くわかんなかったら質問してくださいませ。
3011:04/11/08 22:47:58 ID:XBmtzuLE
>>279の巻物
なんと、テンプレート!?
C++は覚えることがおおい…。


>>283さん
宣言した当初は22時就寝を心がけていましたが今は26時まで仕事の日々。
今日から再度がんばる。


>>286さん
ありがとう、超がんばる。


>>さすらい師匠
勝手じゃないですよ!
皆さんがいろいろな方向を示してくれるから自分もいろいろ組み合わせて
考えることができているわけで。


>>7師匠
うわー、相変わらず見やすいソース!
なるほど、確かにソースの依存性を取り除いたほうが変更が楽な気がします。
拡張で可変判定のボスを作ろうとしましたが当たり判定に苦労して挫折しましたし。


>>292さん
トリップ? ちょいと調べてみます…。


>>293さん
ありがとう…身にしみる…。
3021:04/11/08 22:49:03 ID:XBmtzuLE
>>294さん
よろしく、っつーかすでに先輩!?
差を広げられそうでがくがくぶるぶる。

>>モウダメポ ◆orzOTL/11Yさん
俺も最初は経験なしだったし、わけわかんなかったよ
むしろ重要なのはやる気があるかと踏み出せるかどうか。
俺の初期値ぐらいなら10日でいけるよ。

10の知識をもっていても何も行動しなければいないのと同じ。
意味を持つのは知識が0でも実際に行動してる人間だけ。
今やろうと思っているならそれが転機。
3031:04/11/08 22:54:14 ID:XBmtzuLE
現在考えていること(電車の中とかで考えただけでPCに向かって作業できていないが)

・敵と弾と自機は別クラスで依存性をなくすべきなのか?
→敵と自機をかけ離れた仕様にしづらいから。
 すでにaction(int key)としている時点で無理が出ている気がする。
 敵は自機を基点に行動することもあるわけで、自機を変数として渡すべきだろうし。
 そうすると共通actionにはできないよなぁ。

 →でも弾は移動が単純な敵でもいいのかも?
 (衝突判定があるから)

一応、まったくやってない(?)わけではないことを示して寝に入ります…。
ごめん。
304名前は開発中のものです。:04/11/08 23:07:02 ID:eLVA3L2H
>>303
「ゲームとは自立的に行動するオブジェクトの集合体である」
ってのが俺のゲームに対する考え方だけど参考になるかな?
この一文をそのままクラス化したら

class Game
{
 list<Object*> m_objects;
}

class Object
{
 virtual void Action() = 0;
}

…ってなる。以下続く
305名前は開発中のものです。:04/11/08 23:07:16 ID:mo0UiYVh
>>301
あのさー、
typedef list<StgObj*> StgObjList;
        ^^^^^^^^
         ↑これがテンプレートだ。
306304:04/11/08 23:22:56 ID:eLVA3L2H
Game中でm_objectsに入れた全てのObjectのActionを呼び出せば、
ゲームの時間が一定時間だけ進んだことになる。
ここまでは、今まで1さんがやってきた内容について、
クラスを使って作業担当を明確にしただけね。

少し抽象的な話になるけど、
「全てのオブジェクトは自立的に行動する」っていうがコンセプトならば、
Gameは個々のオブジェクトに必要な引数などは逐一知っている必要はないのよ。
Gameは現在のゲーム内部の情報をそれらのオブジェクトに教えるインターフェイスだけあればいい。
例えば敵キャラに対してならば、「自機キャラはどこにいるのか」教えることができればそれでいい。
つまり
class Game
{
 list<Object*> m_objects;
 ...
 Vector2 GetMyShipPosition() { ...; }
}
みたいな。
設計の押し売りみたいだけどこんな感じに作ると綺麗にならんかな。
モロにclass MyShipへのポインタとかを敵キャラに持たせる手もあるけど…
この類のはオブジェクトがdeleteされたりするのが厄介なのであまりお勧めはしない
307295 ◆orzOTL/11Y :04/11/09 00:17:29 ID:d+HMZCjF
良スレすぎてマジ泣けますた(;´Д⊂)
実は工房で、入試はまだですが進学校なのであまり来れなく、後述しますがプログラミングは超初心者で、それでも良いでしょうか?


このトリップは初心者板のトリ探し依頼スレでいただいたものです。

>>300師匠様
ライフゲーム。。。と、とりあえず携帯カキコなのであとでググります(PCが使えるのは火水以外の17〜20時だけなので)
その前に、lcc試食版はNGですか?gccのインスコがどうしてもうまくいかないので…

ちなみに、3ヵ月というのはCばかりやっていた訳ではなく、
C(ポインタがなんとなく分かるくらい)とJAVA(オブジェクト指向でポカーン状態)とPerl(掲示板くらいならなんとか)とPHPとRuby(微妙)
を平行してやっていたんです。そして昨日VC#とVC++とVBとVJ#のくっついた.NETを買いました。
308 ◆orzOTL/11Y :04/11/09 00:27:59 ID:d+HMZCjF
>302=>1様
貴重なお言葉ありがとうございます。今は1さん初期値のはるか下ですが、皆さんの書き込みを見ていると自分にもできそうな気がしました

ところで、PGになるために工房の内からやっておいた方がいいことがあればご教授願います。
309さすらい:04/11/09 00:37:40 ID:oD5Yfbm3
>>307

300です。
間違ってななしで書いてしまいましたよ。

BCCというかBorlandC/C++Builderのつもりで書いてました。
LSI-Cでも全然OKですけど、
VS.NETがあるならそれのがいいと思いますよ・・。

■ライフゲーム
ttp://www.mars.dti.ne.jp/~khnum/life/lifegame_applet_v5.x_jvm.html
画面内をクリックして●を置いてから実行してみるべし。

●●○
○●●
○●○

↑こんなんが熱いっぽい。
310名前は開発中のものです。:04/11/09 00:48:41 ID:+CaSDWAG
ライフゲームは昔、数学者の間とかで流行ったらしいねえ。
グライダーとか、ペンタミノとか有名なパターンもその頃に作られたらしい。

昔は永遠に成長するパターンとかは存在しないもので、長い時間のうちには
繰り返しの動きをするものに必ず落ち着くとか思われてたが、
いろんな研究で「永久に成長するパターン」とかも探し出されたし。

とりあえず作るなら上下左右をループさせると小さい範囲でも、それなりに
動き続けてくれてナイスだ。
311名前は開発中のものです。:04/11/09 04:18:50 ID:uOn7Ncmy
>>300さん質問です。
ためしにライフゲーム(>309のリンク)をやってみましたが、
周り8マスでは無く真ん中のマスも含まれていて、
9マスで判定している気がします。

 ○●○   ○●○
 ●○● → ○●○
 ○○○   ○○○

こんな感じに(上段・真ん中は、黒くならないはず
どちらで製作したらいいですか?
課題、挑戦させていただきます。
312294:04/11/09 04:21:01 ID:uOn7Ncmy
下げ忘れました
ごめんなさい
313 ◆orzOTL/11Y :04/11/09 13:06:49 ID:d+HMZCjF
>294
なんか間違った発言したみたいですみませんor2

>311さんに追加して、*は1ターン終了したら好きな座標を指定して増やすことができるということですか?
314294:04/11/09 16:17:44 ID:uOn7Ncmy
>>313
 いえいえ、お互いがんばりましょう

>>1
 先輩ではないです、
 実力も負けてると思いますし。

ライフゲーム完成しました。
315さすらい:04/11/09 21:26:09 ID:Mkae7mrl
>>311
ルールの説明が一文足りませんでした。
・「*」の周りに「*」が2〜3匹いた場合は現状維持
です。

これでいくと、>>309 のルールと同じになると思うんですけどいかがでしょうか。
○●○→123
●○●→456
○○○→789
とした場合、
(2)は周囲8マスに2匹いるので現状維持
(4)と(6)は周囲8マスに1匹なので死亡
(5)は周りに3匹いるので誕生
となります。

できたソースアップできるといいかもしれません。

>>313
今回のルールでは「好きな座標に増やす」というような
仕様は考えていませんでしたが、
追加仕様で実装してみるのも面白いかもしれませんね。
316 ◆orzOTL/11Y :04/11/09 21:36:49 ID:SPH03XPE
親の目を盗んでキーボードを叩いております
>>さすらい師匠
ライフゲームの意味がやっとわかりました!
携帯Java版は自分で●を置いていくので勘違いしてしまいました…

>>294
早Σ(゚Д゚ υ)

やる気はもちろんあるんですが,経験がほとんどないので完成予定の検討がつかないんですが,,,それでも構いませんか?
317 ◆orzOTL/11Y :04/11/09 21:44:57 ID:SPH03XPE
その前に忘れていましたが,
>さすらい師匠
>BCCでこのスレのコンソール出力(座標指定表示まで)をできるようになってから
とありますが,もう( ゚Д゚)ポカーン です…もう少し説明していただけませんか?
318名前は開発中のものです。:04/11/09 22:50:52 ID:+CaSDWAG
せめてこのスレを全部読んだ上で質問しないと、いままでいろいろな
ヒントを出してくれて来た人に失礼だぞ。
319さすらい:04/11/09 22:52:55 ID:Mkae7mrl
BCCについてはここを参照
ttp://ja2yka.homeip.net/aki/freedev.htm

コンソール出力については
>>93-95
を参考にしてください。

がんば
320 ◆orzOTL/11Y :04/11/09 23:37:10 ID:d+HMZCjF
わ、ガイシュツOTL

スレの座標の意味を激しく恥ずかしい解釈をしてました…
321294:04/11/10 17:02:12 ID:fcMU7Xeh
まとめ用のホームページ作りました

ttp://f61.aaa.livedoor.jp/~sorapage/

LIFEGAME

ttp://49uper.com:8080/html/img-s/22208.lzh

322名前は開発中のものです。:04/11/10 17:12:27 ID:BsnHfsJV
>>321
>>1さんのサイトを見ると分かるけど、
どんなに小さいことでも良いから「新しく知ったこと」とか
「分からなかったこと」を書いておくと後で自分のためになるよ。

あと「できました」って言われても「ふーん」としか言いようがないので
その課題をこなす上で分からなかったことや曖昧に実装してしまったところなど、
つまり見てほしいところをはっきり書いた方がいいです。
でてきたものが動けばいいだけだったら
このスレでこういうことをする必要はないわけで。

とにかく「何がしたいのか/何をしてほしいのか」をはっきりさせると話が早いです。
323名前は開発中のものです。:04/11/10 18:47:56 ID:UkoTSRYX
>>321
ライフゲームの盤のサイズを入力して、
変更できるようにしてみたら?
動的メモリ確保の練習。

>>322
同意。
分からなくても、「全く分かりません」なんてことはないはずだから、
「ここまでは自分で考えました」程度に言ってくれればそれなりにアドバイスできるし。
324294:04/11/10 19:15:21 ID:fcMU7Xeh
う〜ん、
どこが駄目か、どのように実装したらいいかも分からないので、
関数、クラスは、こんな使い方じゃ駄目だってところを
指摘してもらえると助かります。
特に設計の仕方が分からないです、どのように設計してますか?
325名前は開発中のものです。:04/11/10 21:55:30 ID:UiaPzAKg
>>324
小ネタを一つばかし

if (key == 's' || key == 'S')
は、
key = getch();

key = tolower(getch());
にすれば、
if (key == 's') で済んだりするかも。
3261:04/11/11 21:37:33 ID:ubgrCf2V
久々に登場(ごめんなさい)。

最近の成果。
朝型生活になろうとする→残業で帰宅が深夜→早く眠れない→夜型に。
朝型生活は難しいのかもしれん。

よって、以前の生活に戻ることにした。
327名前は開発中のものです。:04/11/11 22:46:33 ID:iAi3pf6h
ガンガレ
328294:04/11/12 18:32:41 ID:2cazD5qg
>>325さん
修正しました
指摘ありがとうございます。

ポインタについて質問ですが
>>159さんの ポインタ型と参照型の違いがよく分かりません。

課題1−2動きはしますが、正常に動作しません。
複雑なポインタになるとお手上げです。

>1さん がんばれ
329名前は開発中のものです。:04/11/12 19:01:46 ID:m9GxWXIB
>>328
参照も内部的にはポインタで実現されているだろうけど、
一度参照先が決定されると変わらないって点が一番違うかな。

::ポインタ
int a, b;
int *p = &a; // pにaのアドレスを代入(pはaを指す)

*p = 10; // a に10を代入
p = &b; // p にbのアドレスを代入(pはbを指す)
*p = 10; // b に10を代入

::参照
int a, b;
int &r = a; // pはaの参照になる

r = 10; // a に10を代入
r = b; // 一度決めた参照先は変わらないので、これは aにbを代入という意味になる
330名前は開発中のものです。:04/11/12 19:03:36 ID:5w/uy/Y6
参照は値そのもので、
ポインタはアドレスを格納する変数
と考えると分かりやすいと

何かの本にあったな
331名前は開発中のものです。:04/11/12 20:52:12 ID:/QQt10R5
>>330
じゃあ、普通の変数はなにを格納してんだよ、とツッコミたくなる文だな。
332名前は開発中のものです。:04/11/12 20:56:34 ID:XBcRqEzn
参照は純粋なエイリアスで
ポインタはアドレスを格納しているから、参照と同じような事もできる
かな?
333名前は開発中のものです。:04/11/12 21:24:43 ID:/QQt10R5
ふむ。エイリアスはいい表現だな。
まとめると……

通常:普通の変数
参照:変数に「別名」を付ける
ポインタ:メモリ上の位置を保存する
ってことで。
334名前は開発中のものです。:04/11/12 22:42:30 ID:5SUN/NQq
なぁ。ポインタって何が難しいんだ?少なくとも漏れがC勉強したときはすんなり解ったよ。
はっきりいって>>330の考え方で十分理解できるでしょ?
335名前は開発中のものです。:04/11/13 00:37:39 ID:3paw7/6Y
>>334
概念そのものは難しくないんじゃないのでは。
ただ、アクセスしたい値に至るまでに変数名→アドレス→値というように
1つ余計なのが入るからな。
ポインタ使うと変数を一つ多く使ってるようなもんだ。そして、人間は一度に
意識下に置いておける変数の数はそんなに多くない。5、6個で限界では?

そんなわけで、>>329みたいな例ならいいが、プログラムが複雑になってくると
ポインタによってプログラムが読みにくくなる。

……って、これは俺がポインタ嫌いな理由だ。抽象度も下がるしな。
336名前は開発中のものです。:04/11/13 08:55:36 ID:yXQXTffk
ポインタはメモリの仕組みさえ理解してれば、理解自体は難しくない。
けど、ポインタを多用したトリッキーなコードを読むのは難しい。
337294:04/11/13 09:07:56 ID:qedMZKEV
動的確保のしかた。失敗時の処理があってるか、
ポインタはこんなのでいいのかを見てもらいたいです。

課題1−2

ttp://49uper.com:8080/html/img-s/22684.zip

よろしくお願いします。
338294:04/11/13 09:11:05 ID:qedMZKEV
途中で書き込む押しちゃいました

ポインタと参照の違いは大体分かりました。
ありがとうございます
339名前は開発中のものです。:04/11/13 09:37:40 ID:fYD5Oslo
>>337
それでも間違いではないんだけど、
この規模の場合は普通に多次元配列のポインタを使った方が分かりやすいんじゃないでしょか。

それとnew失敗時に、bccはstd::bad_allocを投げるようだから、
例外をtry〜catchで補足するようにした方がいいかも。
340294:04/11/13 09:51:44 ID:qedMZKEV
多次元配列のポインタを使おうとしましたが使えません。
 p = new int[y][x];
としても出来ません。
try〜catchについて調べてきます
341名前は開発中のものです。:04/11/13 10:31:51 ID:fYD5Oslo
>>340
// 宣言
int **p_stage;

// 初期化
p_stage = new int*[sizeY];
for (int i=0; i<sizeY; i++)
  p_stage[i] = new int[sizeX];

// 利用
p_stage[10][20] = 123;

// 解放
for (int i=0; i<sizeY; i++)
  delete [] p_stage[i];
delete [] p_stage;

// 例外
#include <new> // bad_allocを使うのに必要

try {
  p = new int[10];
} catch (std::bad_alloc &e) {
  // newに失敗するとここに
  cout << e.what() << endl;
}
342名前は開発中のものです。:04/11/13 12:23:30 ID:73usOWbT
ボーランドって、set_new_handler()サポートしてなかったっけ?
343294:04/11/13 15:09:29 ID:qedMZKEV
>>341さん、修正しました。
ありがとうございます。

失敗時、exit するとそれ以前に確保されたメモリは、
開放(デストラクタ)されるのでしょうか?

アップローダーが使えなかったので、ソース提出します。

ttp://f61.aaa.livedoor.jp/~sorapage/sosu001002.html
344名前は開発中のものです。:04/11/13 20:20:59 ID:3paw7/6Y
>>343
preタグで囲むとインデントできますよ。

exitしてプログラムが終了すると、基本的にそのプログラムが確保してるメモリは
全部OS側で開放してくれます。
だからと言って、メモリ開放しない癖をつけるのはマズイですけどね。
345名前は開発中のものです。:04/11/14 02:40:34 ID:KJXdvBb8
>>341
それって
int hoge[100][200];
のような動的配列を確保するのに101回newしなきゃならないよね。deleteも。
何とか一回で済ます方法はない?

int **hoge = (int**)( new char[ sizeof(int*)*100 + sizeof(int)*100*200 ] );
といった感じで確保して、前半部分に各2次要素列へのポインタを格納するとか。
346名前は開発中のものです。:04/11/14 02:49:35 ID:aEuX5prD
>>345
多次元配列制御クラスを使うのが王道だろう。
boostというライブラリには、そういうのが存在するらしい。
347名前は開発中のものです。:04/11/14 10:52:07 ID:IRwgbW7W
boost使って書くとこんな感じか

boost::multi_array<int, 2> p_stage(boost::extents[sizeY][sizeX]);

p_stage[10][20] = STATE_STAGE;

解放いらない分楽かもしれんね。
STLとBoostは使えるなら使った方が良いかも
348名前は開発中のものです。:04/11/14 21:51:42 ID:aEuX5prD
廃墟一歩手前sage
349名前は開発中のものです。:04/11/14 23:27:13 ID:H8BXV0j1
まあマターリ行こうじゃないか
350名前は開発中のものです。:04/11/15 08:51:11 ID:jwrqOtmL
で、1はどこへ逃げた?
351名前は開発中のものです。:04/11/15 09:41:34 ID:bHT8OtXv
ぬぉぉぉ...何が>>1を変えてしまったのか
それとも風邪でも引いて寝込んでるのか?
それなら治ったらまた帰ってこいよ!
352名前は開発中のものです。:04/11/15 15:00:54 ID:p7XqOh3b
多分流れからして忙しいんでしょ。
まぁマターリ進行でいこうや。
353名前は開発中のものです。:04/11/15 21:50:48 ID:ZDb5maeS
今後の課題の流れはどんな感じになるんだ?
>>1含め、どこまでのゲームが作れればいいんだろうか…
354名前は開発中のものです。:04/11/15 22:03:14 ID:ZYAQLNhi
>>353
おまえ、新参者だな。その書き込みで分かる。
3551:04/11/17 22:13:42 ID:8Xx5MksP
すみません、挨拶にだけきました。
現在仕事で死んでます。

事務の自動処理サーバーが壊れてすべての作業を手でやっています。
泊り込んでいるのに終わりません(T-T)

一応、頭の中で妄想だけしています。
3561:04/11/17 22:21:34 ID:8Xx5MksP
結局、7師匠の依存性を減らす案は一時置いておき、
「クラスを作って初期化すると勝手にあとは進む」
案を実現しようと努力中です。

具体的な構想。

1・クラスは敵弾・自機弾・自機・敵(敵の動きが3種で3クラス)
2・敵弾クラスは敵弾の配列を持つ。
3・自機弾クラスは自機弾の配列を持つ。
4・自機クラスは自機クラスと自機弾クラスのポインタを持つ。
5・敵クラスは敵クラスの配列を持ち、自機クラスと自機弾、敵弾クラスへのポインタを持つ。
6・どのクラスもactionメソッドを実行することで勝手に移動・弾生成します。
7・どのクラスもStgObjクラスの派生です。
8・actionは各クラスでvirtual実装。
3571:04/11/17 22:29:09 ID:8Xx5MksP
9・各クラスがactionした後にupdateメソッドを実行すると
  自機弾クラスが敵との当たり判定を、敵・敵弾クラスが自機との
  当たり判定を行い、状態が更新されます。
  また、それぞれupdateメソッドは最後に得点を返します。

  自機弾クラスの返却値・全ての撃破敵の合計スコア
  敵弾クラスの返却値・全ての撃破自機(=自機が撃破されたら)のスコア
  1以上が返ってきた場合は自機が撃破され終了。

敵の動きは斜め・自機と軸が合ったら弾を打つ・横のみ移動などそれぞれ好き勝手
actionを実装してみています。
実際は敵タイプ変数などを用意し、if (enemy_type==3)というような形で分岐して
もいいレベルだと思うのですが、本格的に作る際にはそれぞれ特殊な行動をさせる
と思うので今から実践。
3581:04/11/17 22:32:21 ID:8Xx5MksP
ちなみに、弾も敵も全て毎回newします(上限数を超えていなければ)。

7師匠(ソースはプリントアウトして会社で見ていますよ!)のソースを参考に
exturn でMAX数をgeneral.hに宣言、各クラスで見るときもMAX_〜〜回ループで
見る感じに。

作られたらnew、撃破・画面外でdelete。
で、最後に終わるとき、自機・敵・自機弾・敵弾それぞれの配列を順に全てdeleteします。
3591:04/11/17 22:35:45 ID:8Xx5MksP
一応、STL系も調べてみたのですが使うのは少し先になりそうです。
使えたらやりたいこと。

自機当たり判定list
敵当たり判定list

をつくり、それぞれに登録。
当たり判定はlistに対して行うだけでいい。
で、オブジェクトが消えるときにlistから削除。
(↑全てのlistを検索して消すと重そうな気がする…)

これで自機にも敵にも当たる弾や、障害物(当たっても死なないけど
中に入れない、とか)を楽に実現できそうな気がしました。
3601:04/11/17 22:40:47 ID:8Xx5MksP
というあたりで寝ます。
すみません、ベッドがいつになく暖かいんです。
こんなにやわらかかったっけ…。
361名前は開発中のものです。:04/11/17 22:56:48 ID:vQHhxLrq
まぁマターリ時間のあるときに勉強汁。
体壊したら元も子もないからね。
362名前は開発中のものです。:04/11/17 23:00:18 ID:qSx5mHJY
自動処理プログラムを自前で作ってしまうとか。
363名前は開発中のものです。:04/11/18 11:17:29 ID:tj2Rny08
つーか皆>>1にきつい事やらせ杉。
このままじゃ死んじゃうって。
364名前は開発中のものです。:04/11/18 12:11:18 ID:Zi0zxVt+
いやまだまだだ。1よそろそろ3Dもいけるだろう。
機体を3Dでモデリングし、それをステンシルシャドウを用いて
影付きでレンダリングするまでとりあえず作りなさい。
3日以内にこの課題をクリアするように。
365名前は開発中のものです。:04/11/18 13:02:21 ID:xWqJuiQK
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J >>364
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
3661:04/11/18 19:18:28 ID:7Tuv59+u
ようやく(というか業者が作業にきて)サーバーが直りました。

そして久々の早帰り。
今から食事選択の後取り組みます。
367名前は開発中のものです。:04/11/18 21:17:51 ID:epZgo7nw
がんがれ
368名前は開発中のものです。:04/11/18 22:29:52 ID:Q20OoPIx
よし、じゃあ俺は1を育成するゲーム作ってくる(`・ω・´)
369名前は開発中のものです。:04/11/18 22:38:53 ID:8pKww9N/
それが>>368の最後の言葉だった。
370名前は開発中のものです。:04/11/18 22:50:22 ID:URAGp6Wm
プログラミングの教材になるかもしれんな<1を育成するゲーム
371名前は開発中のものです。:04/11/18 23:28:38 ID:8pKww9N/
だれか、ケアルでもホイミでもメディでもキュアウーンズでも
なんでもいいから1に掛けてやれ。
なんか瀕死だぞ。
372名前は開発中のものです。:04/11/18 23:53:21 ID:BBWTS49p
「がんがれ」と一言かけよう。
3731:04/11/19 00:06:22 ID:1YgLlWbY
まだコンパイル通らないのですがとりあえず報告を。
(全レスは完成後ということで…)

StgObjからPlayer,Enemy_A,Enemy_B,Enemy_C,Bulletの5クラスが派生。
CtlBaseからCtlEnemy,CtlBullet,CtlEBullet(敵弾)の3クラスが派生。

Ctl〜は全てEnemyならEnemy,BulletならBulletの配列を持つ管理クラス。
CtlEnemy.action()などと命令すると敵が全て行動したりします。
また、それぞれのCtlは内部パラメータに応じて敵をnewするなどの処理も行います。

CtlはPlayerクラスと1つのCtlクラスに対するポインタを持ち、
CtlEnemy.hit()などとすると当たり判定を持っているポインタの
コントロールするクラスに対して行います。

例・CtlEnemyはCtlBullet(自機)のポインタを持ち、hitを行うと
当たり判定をして当たっていればEnemyが死亡、Playerの得点加算。

現在はCtlクラスが1つのCtlクラスに対するhit判定しかできませんが、
将来的には複数配列を扱っていけば画像版STGでも使えるか?と考えています。

PlayerはMyShipに変わって作りました。自機とプレイヤーデータ(得点など)を持つクラスです。
3741:04/11/19 00:07:14 ID:1YgLlWbY
心配をおかけしましたが、健康状態は良好です。
(倒れたほうがプログラミングから遠ざかってしまうので気をつけています)

ということで、今日はこのあたりで。
375名前は開発中のものです。:04/11/19 02:20:51 ID:5amGghZB
さっさと挫折しろ
376名前は開発中のものです。:04/11/19 06:33:40 ID:O52RdXlB
>>375
お約束ですね。定期連絡乙
377名前は開発中のものです。:04/11/19 21:04:48 ID:bEqbYtq8
>>375
これだけ音沙汰がなかったのに、定時もなにも無いんじゃないかと。
3781:04/11/19 22:10:00 ID:ktFMLbsP
帰宅しました。
これより製作に入ります。

今までできなかった分、土曜日には絶対仕上げようと思っています。
とりあえず、連絡のみ。
3791:04/11/20 17:21:33 ID:nnMpuzPR
>>373の構想がだいぶ形になってきましたが、やはりまだ動いていません。
今日中に見せられるものができるか…?
途中ソースでも日の境目ぐらいにはあげられるものを出したいとは思っていますが。

しばらく離れていただけで結構忘れてる…orz
3801:04/11/20 18:14:40 ID:lZ4tahCb
とりあえず、食事・掃除に入る前に一番悩んでいる点をメモ。
ヘッダにポインタ型を指定しているとコンパイル時に不明な型扱いされる
点が解決できず。

CtlBase.h
--------------------
#include "StgObj.h"
StgObj* obj;
----------------

CtlBase.cpp
----------------------
#inclue "CtlBase.h"
void init(){
   obj->init(1,1);
}
---------------------
381名前は開発中のものです。:04/11/20 18:55:40 ID:Q502yzLJ
それだけじゃなんとも…

使う前にnewしてる?
382受験生 ◆3VUXqvbfSY :04/11/20 20:11:28 ID:cXpyXgIQ
mallocとかでも良いけど
兎に角領域を割り当てなきゃ
383名前は開発中のものです。:04/11/20 22:08:17 ID:rVV80zXz
ヘッダとソースの分離って観点から見ると

CtrlBase.h
には
class StgObj;
StgObj* obj; //こいつはCtlBaseのメンバなのかな?

CtlBase.cpp
には
#include "CtlBase.h"
#include "StgObj,h"
void init() {
  obj->init(1,1);
}

の方がいい希ガス
384名前は開発中のものです。:04/11/20 22:17:16 ID:cC+IxKDe
>381-382
よく読め。"コンパイル時に"と書いてある。
3851:04/11/20 23:59:42 ID:A5g65eTO
師匠!
レスありがとうございます。
参考にしてやってみます。

new、そういえばしていませんでした…。
そのあたりももう一回試していってみます。
3861:04/11/21 02:51:12 ID:l4KFHtWv
いろいろ試してみたところ、根本的になにか間違っている模様。

CtlBase.hヘッダに
public:
int score;
と宣言しても、

CtlBase.cppでは
//コンストラクタ
CtlBase::CtlBase(){
  score=0;
};

void init(int size) {
  score=size;
}
で「未定義のシンボル score(関数 init(int) )」が表示されてしまうので。
ただし、コンストラクタにscore=0と書くことにはエラーが表示されません…。
3871:04/11/21 03:02:49 ID:l4KFHtWv
書き込みを見直して気づきました。
CtlBase::CtlBase(){
  score=0;
}; ←「;」

;を取ったらコンパイル通りました。
こんなのに今日一日悩んだのか…orz。
3881:04/11/21 03:16:03 ID:l4KFHtWv
↑ということで、結局今日に見せられるものはできなかった落ちに。
非常に申し訳ない気持ちでいっぱいです…。
389名前は開発中のものです。:04/11/21 09:55:00 ID:+A2Mpfd9
構造がどうなってるのか知らないけど、

>void init(int size) {
これって、

>void CtlBase::init(int size) {
なのでわ…
390名前は開発中のものです。:04/11/21 12:03:23 ID:Njb2Fs1K
共有するメンバ、メソッドはstaticに汁。
391名前は開発中のものです。:04/11/21 13:55:57 ID:Ql1PlhdC
>>389
きっとソレダ!!ヽ(´∀`)9 ビシ!!
クラスの中に直接書いてる時は要らないからなぁ
3921:04/11/21 23:19:35 ID:/gsWytY+
うがー、すごいイージーミス。

首つってきます…。
393名前は開発中のものです。:04/11/22 01:06:36 ID:s/rBDvz2
こういう間違いは自動検出できるべきなんだがなあ。
394名前は開発中のものです。:04/11/22 01:57:09 ID:OCstYIFw
>>393
本当にただの関数として書いたのか、
メンバ関数として書きたかったのかを識別する術はコンパイラにはないからな
395名前は開発中のものです。:04/11/22 18:05:55 ID:lX86u3th
こいつはもう駄目だな。
病気、仕事、絶対、などという単語が出てきたらあとは適当にごまかして逃げるだけ。
半年後に「実はやってたんですよ〜」とかsageで書き込んで自己弁護
396名前は開発中のものです。:04/11/22 18:46:14 ID:IGs/J4HR
何の役にも立たない煽りはいらねーよ
397名前は開発中のものです。:04/11/22 22:01:51 ID:TaOY1mn1
>>396
だが、1はそう言われても仕方ないだけの態度を取っている。
そろそろ、まとめてレスをするのと、HPに作りかけのソースを上げるだけでも
やっとかないと本当に見放されるぞ。
その気になればHPに作りかけのソース上げるのは10分だろう。
3981:04/11/22 22:02:47 ID:nfI2m+Ps
帰宅。
作業開始します。
399名前は開発中のものです。:04/11/22 22:30:30 ID:IGs/J4HR
>>397
>>1は別に何日以内に成果を報告する義務も責任もない。
見放したければ見放せばいいだけでしょ。
漏れみたいに付き合いたい人だけ付き合えばいい。

あと事情も考えずに「それくらいすぐできるだろ」って自分の感覚を
押しつけるのは嫌われるよ。
4001:04/11/22 23:11:19 ID:nfI2m+Ps
いつまでもUPしないのが心苦しいので、一応アップしました。
コンパイルは通りますが、ろくに動きません。

何をしたいかがわかる程度になっています(トップページからリンク)
http://f41.aaa.livedoor.jp/~grow/
401名前は開発中のものです。:04/11/22 23:35:56 ID:fo/iqMIK
パッと見ですが、クラスのメンバ変数がpublicになってるのが気になりましたね。
402名前は開発中のものです。:04/11/23 01:01:28 ID:hTTh9X1P
バイナリも挙げてくれよ…
403名前は開発中のものです。:04/11/23 01:07:13 ID:HH5Y/9CK
class hogehoge{ ~hogehoge(); }
は、デストラクタだと記憶してたんだが、ググると意外と
デコンストラクタと書いてあるのもあってビックリである。
4041:04/11/23 01:20:41 ID:K1HVcn+2
バイナリあげてもろくに動ず。
しかもよくわからんエラーが出るので実行しないほうがいいかと思われ。
405名前は開発中のものです。:04/11/23 01:22:30 ID:PUaIY4rd
少なくともISO/IEC14882:1998には
「destructor」という言葉しか出てこない(当たり前
406名前は開発中のものです。:04/11/23 01:52:18 ID:PUaIY4rd
ちょろっと調べてみますた。
終了時のエラーはCtlBase::~CtlBaseが問題ですね。
ループカウンタとして機能してない(0と1しか消してない)のはおいといて、

h_selfにポインタをコピーしてdeleteすればh_selfはNULLになりますが、
my_obj[0],my_obj[1]の中身は変わらないので
その後

h_self = getMyObj(1); // deleteされたはずのアドレスがコピーされてる(not NULL)

なんてことになって、同じ領域を2度deleteしてしまってるようです。

やるとしたらこうかな?
CtlBase::~CtlBase(){
  for (int i=0; i<MAX_OBJ; i++) {
    if (my_obj[i] != NULL) delete my_obj[i];
  }
}
407名前は開発中のものです。:04/11/23 13:56:31 ID:jghfT6F8
俺も育成してください
C と DirectX でSLGを作ります
408名前は開発中のものです。:04/11/23 14:09:47 ID:hTTh9X1P
それより…
deleteObj無限ループになってないか
この方法だとdeleteしたらNULL代入しないとだめだろ

deleteしたら意味不明なアドレスを指すはず
4091:04/11/23 14:26:49 ID:XB2K5hIB
いろいろ勘違いしていたようです。

脳内妄想

1・ポインタmy_obj[0]を同ポインタh_selfにポインタを渡す。
2・h_selfをdeleteした場合、my_objも同じところを指しているので双方が指しているオブジェクトが無効になる
3・h_selfをdeleteすると指し示す先が無効=NULLとなる(妄想)
4・よってmy_obj[0]=NULLとなる(妄想)

師匠方のおかげでだいぶ修正が進みつつあります。
感謝。

俺の理解もそうですが、休み時間にノートに書き散らしたコードをそのまま
持ってきて打ち込む現在の方法にも問題があるかなぁ…。
妄想を助長する気がする。
4101:04/11/24 19:40:20 ID:KTQqh+/q
これより作業開始します。
そろそろ見せられるものができそうです。
411名前は開発中のものです。:04/11/24 20:20:36 ID:ENQ7AQ6q
がんがれ
4121:04/11/25 13:59:13 ID:TYo74lb6
http://f41.aaa.livedoor.jp/~grow/

師匠!
久々にまともに更新ができました!

といってもまだ途中ですが、シューティング関連オブジェクトを管理クラス
に管理させることはできつつあると思われます。
前回指摘された永久ループなどは解消しました。
修正しながら自分の才能なさにあきれる始末です…。

とりあえず、今回はまだまともに見えるのでバイナリもいれときました。
変な個所があるのはわかっているのですが、まだ修正中です。
413名前は開発中のものです。:04/11/25 14:30:49 ID:iHZzbBhb
(・∀・)チゴイネ!

あとシールド追加できればもうインベーダーゲームが作れそう。
414名前は開発中のものです。:04/11/25 14:53:03 ID:qI1sibQ/
これがある程度できたら、もうちょっとゲームっぽく
「タイトル画面」:Press any key to start
「メニュー画面」:Game start、Hiscore ranking
「ゲーム画面」:そのまま
「ランキング画面」:過去のランキング
を追加すると、コンソールのゲームとしては完結できるんじゃないかな。

mainにゲームループの処理をまとめて書くんじゃなくて、
それぞれを「シーンクラス」として独立させて、スマートにコントロールできる
方法を考えるのも面白いかもしれません。
415名前は開発中のものです。:04/11/25 15:27:48 ID:+aNrY01x
404 ファイルが見つかりません

416名前は開発中のものです。:04/11/25 16:24:04 ID:Y/YjA3fS
リンク張りぐらいきちんとしとけ
417名前は開発中のものです。:04/11/25 17:13:48 ID:+aNrY01x
あった。スマソ

コンソールでここまでできるのか…凄いな
本当にインベーダーゲーム作れそうだな
4181:04/11/25 18:00:37 ID:TYo74lb6
感想ありがとうございます。
現在、敵に弾を打ち込むと挙動がおかしくなる原因がわからず止まっています。

あと、ファイルは時々見つからないことがあるので(直リンクも規制)、
トップページから入ってリンクをクリックして、見つからなくても少し
リトライするのがいいみたいです。
419名前は開発中のものです。:04/11/25 18:25:56 ID:TbH4V0hY
移動がおかしいのは
Enemyのmove_flgがグローバル変数になってて
各インスタンスに割り当てられてないからぽ。

どれか一つでも端に達すると他のも連動して動いちゃう
420名前は開発中のものです。:04/11/25 18:35:11 ID:TbH4V0hY
これもイージーミスの類だと思うけど、
EnemyのInitにHPの初期化が抜けてて、
HPが0の状態から始まるんでバグってるようです
4211:04/11/25 19:58:39 ID:AfaWolBE
http://f41.aaa.livedoor.jp/~grow/

>>419師匠
ありがとうございました!
早速修正してUPしておきました。

これからはprivateとpublic、protectedの違いも調べて有効な
設計をしていこうと思います。
422名前は開発中のものです。:04/11/25 20:18:19 ID:JYVBtpNt
public どこからでも実行できる
private クラス内からしか実行できない
protected クラス内及び、継承したクラス内からしか実行できない
4231:04/11/25 20:57:38 ID:hOm5jC7B
解説ありがとうございます。

残る疑問点としてOBJECT[i]の変数を変更するときに変数がpublicだと
OBJECT[i]のほかの変数(この場合move_flg)がいっしょに変更されてし
まうのかがよくわかっておりません。

move_flgだけ全体につられて、なぜhpが大丈夫だったのか。
現在調べているのですが、それについて書いてあるところが見つからずに
おります。
4241:04/11/25 21:07:33 ID:hOm5jC7B
↑private やら classやらのキーワードで調べていましたが
スコープとかグローバル変数で調べれば出てきそうですね。

ちと音を上げるのが早すぎでした。
425名前は開発中のものです。:04/11/25 21:18:55 ID:+ccdBjyj
class Enemy : public StgObj {
public:
  bool move_flg;
};

は、Enemyのpublicなメンバ変数 move_flg;を宣言していることになりますが、

class Enemy : public StgObj {
  …
};

bool move_flg;

これはclass Enemyとは関係なく、
ただのグローバル変数を作っているだけになってしまっています。
426名前は開発中のものです。:04/11/25 22:07:33 ID:CNrT0QyS
時間があったのでデバッグに協力しようと思って ncurses に移植しようと思ったんだけど、
コンパイルできねぇです。ファイルは result_7.2'.lzh です。

見つかった警告
CtlBase::update(), CtlBullet::updatte(), CtlEnemy::update() が値を返してないです。

見つかったエラー
MyShip::init() 内で使われている show_flg がどこにもないです。
4271:04/11/25 23:16:20 ID:xMxvM+Qw
>>425師匠
ありがとうございました。
privateとか、publicとかの話ではなくてスコープの話だったんですね。
スコープも理解しているといいがたいので勉強してみようと思います。

>>426さん
ありがとうございます
ncursesはわからないので以下推測です。
CtlBaseなどのint update()メソッドが「return 0;」
文で終わっていないのが原因かもしれません(あくまで推測)
あとは現在Ctl〜系のupdateはint値を返す必要がないのでvoidに修正しても
いいかもしれないです。

MyShipは古いコードでもう使われていません(失礼しました)。
MyShipを削除して再度result7_2'.lzhをUPしておきます。
4281:04/11/26 19:43:56 ID:+Z7tAa+Z
ただいま帰宅しました。
忙しい時期の反動で早めに帰れています。
食事その他を済ませてから作業開始します。

とりあえず今日の目標→インベーダーゲーム
(元のゲームやったことないけど)
429名前は開発中のものです。:04/11/26 22:30:15 ID:1xADBjJT
がんがれ。
インベーダ完成したらコンソール卒業しても大丈夫かな?
430名前は開発中のものです。:04/11/26 23:55:52 ID:4ppOYITZ
>>429
コンソールと、GDI使った描画に本質的なレベル差は無いよ。
敵管理するとか、シーン切り替えをする部分こそ、レベル差が現れる部分だし。
431名前は開発中のものです。:04/11/27 00:04:04 ID:aF+RfCo4
描画モジュールをうまく分離出来るかどうかだな。

>>1氏の今までの経過を見るに、案外すぐ出来そうだけど。
4321:04/11/27 01:29:27 ID:YOo7on7Q
とりあえず敵に弾を出させる処理&当たり判定を実装したのでUPしてみました。

比較用になるかな、程度のソースですのであまり意味はないですが。
とりあえず報告まで。
4331:04/11/27 02:29:30 ID:SkkWy47N
http://f41.aaa.livedoor.jp/~grow/

あとは急造ですが、敵を隊列で動かすようにしました。
また、敵がまともに弾を撃つようになりました。

これをもとに本家インベーダーゲームをプレイしてそれっぽくしていこうと思います。

この後は急がずにゆっくり変更を加えていこうと思っています。
具体的には以下のとおり。

コメントを整備する。
無駄にpublicになっているものをprivateにする。
オブジェクト配列をlistとする(STL導入)。
シーンごとにクラスに分ける(タイトルとゲーム画面とか)。

他にもやるべきことが何かありましたらご指摘お願いします。
4341:04/11/27 02:31:50 ID:SkkWy47N
でもって。

そろそろグラフィカルインターフェースに移ってみたいなーと考えています!
>>433は基礎力増強なので平行して進めていく形で。

やはり、以前師匠から与えられたグラフィックを動かす課題から!?
435名前は開発中のものです。:04/11/29 01:20:42 ID:pl2iHbhm
エンド13:誰にも相手にされなくなって終了。

ゴールおめでとう。
436名前は開発中のものです。:04/11/29 02:30:18 ID:/Vco8E3B
一応見てるけど困ったときに登場するのが正義の味方
437名前は開発中のものです。:04/11/29 03:06:21 ID:i8f0vPDu
>>434
画像の表示はもうやってるようだからWinMain等は流用して、
今出来てるSTGのoutText部分を画像表示に書き換えるだけでGUI化できる悪寒。
もちろん細かい修正は結構必要になるけど。
4381:04/11/29 20:26:50 ID:4yU6Nc7i
帰宅。
現在、STLで苦戦中です。
基本は解ったと思いますが、クラスのリストがいまいち理解できていません。
テンプレート学習するのでしばらく手一杯かも。

お勧め書籍などあったら教えていただけないでしょうか。
439名前は開発中のものです。:04/11/29 20:55:01 ID:IfnImJXC
STLならSTL標準講座が良さげ
440名前は開発中のものです。:04/11/29 21:07:46 ID:PJuXKHbS
STL使う上では、コピーや代入が発生するから、
コピーコンストラクタを定義しておかなければいけなかったり、
setやmap等のソートを使うコンテナでは
operator<を定義しておかなければならなかったりするから、
最初はポインタを入れるだけにするのが無難かも。
441名前は開発中のものです。:04/11/29 21:37:38 ID:VjmtHkTX
アルゴリズム無視して純粋にコンテナとして使うだけなら
ポインタと難易度変わらないのでは。
4427:04/11/29 22:27:08 ID:O2Y3t2Kd
>>438
私としては C MAGAZINE での連載をまとめた『詳説C++』を薦めておきたい。
現在 Amazon では売り切れ中ですが……。

詳説C++―ANSI C++完全理解 \3,150
http://www.amazon.co.jp/exec/obidos/ASIN/4797312254/qid=1101729905/ref=sr_8_xs_ap_i1_xgl/249-1417768-3808346

C++ の基礎から、継承の使い方、テンプレート、STL の標準コンテナまで一通り学べるので、
1 さんのようにプログラムは組めるけど、C++ の仕様や使い方にちょっと自信がない方にお勧めです。

多分、今後も >>409 のように C++ の誤解からバグを生むこともあると思うので、
STL を本格的に学ぶ前に、一度 C++ の仕様を知っておくと楽になると思います。

ただ、C 経験者向け(付録に C のおさらい講座もとりあえず付いてます)なので、
立ち読みして理解できそうか確認してみてください。
古いので中々見つかりませんが、本屋でもし見つけたらのぞいてみてください。

以下も見てみて、自分に合った本を探してみてください。

推薦図書/必読書のためのスレッド@2ch まとめページ: C++
http://2chbooks.seesaa.net/category/77376.html
推薦図書/必読書のためのスレッド PART 21
http://pc5.2ch.net/test/read.cgi/tech/1101395436/l50

>>1
応援してますよ。アップされたソースも見てます。
暇を見てサンプルソースを書いたりもしているのですが、なかなか進まず。
完成したら、またアップしますね。
シューティング完成に向け、頑張ってください。
4431:04/11/30 20:35:40 ID:Lovi2mTr
Effective STLを買ってただいま帰宅。
全レス再開します。

>>436師匠
レスがなくてあせっていましたがそういうことだったんですね!
だいぶ安心しました。

>>437師匠
なんか、


>>439師匠
早速ありがとうございます!
しかし、本屋に置いていなかったのでとりあえずEffective STL買ってきてみました。

>>440師匠
実は最初は〜のところで躓いていました(汗
StgObjのポインタを入れようとして失敗していました!
4441:04/11/30 20:38:08 ID:Lovi2mTr
>>441師匠
結構難しいですよ、これが!
というか、テンプレートをすっ飛ばしてきたツケが回ってきた模様。


>>7師匠
最大の本屋と名高いオアゾと秋葉を帰りがけに探しましたが見つからず。
泣く泣くあきらめました…。
地道に探していこうと思います>詳説C++

応援ありがとうございます!
気合で今年中にグラフィックで動くシューティングにしたいです!
445名前は開発中のものです。:04/11/30 22:28:51 ID:KygvImM7
>>444
アマゾンで郵送してもらったらいいんとちゃう?
4461:04/11/30 22:42:52 ID:Lovi2mTr
>>445さん
Amazonは品切れでした…。
447名前は開発中のものです。:04/11/30 23:45:40 ID:kGGLfkX9
EffectiveC++は読んだの?
4481:04/12/02 22:32:41 ID:HKAoz9Im
>>447さん
EffectiveC++は読んでいません。
というか、STL関連書籍がそれしか置いていなかったから買ってきてみたんですが、
どうやらSTLがすでにわかる人向けだった模様。
使う日まで秘蔵します。

STL…というか、テンプレートはようやくわかってきました。
でもあやしいところもあるので、HPに全てUP(試しソースも含む)
してまとめてみようと思っています。
それが土曜・日曜の作業になりそうです。

ポインタよりテンプレートに壁を感じる…。
449名前は開発中のものです。:04/12/03 20:31:18 ID:BV/AA78m
>1さん
がんばれよ
陰ながら応援してるから。
4501:04/12/05 21:43:43 ID:vRYhkX9u
>>449さん
ありがとうございます。
現在作業中ですが、HTMLにまとめていたらだんだん理解できてきました。
以外に人に見せようとしてまとめるといい勉強になるのかも。
4511:04/12/09 01:26:59 ID:OQVn54xz
今更なんですが質問が。

STLのListで複数種類のクラスを扱うことはできないのでしょうか。
(例・基底クラスStgObjのListを作成。
   しかし、Listに実際登録するのはStgObjから派生したクラスA・クラスB)

ここまでやってきて、自分の結論としては出来なさそうという結果に落ち着きつつ
あるのですが。
452名前は開発中のものです。:04/12/09 01:49:03 ID:K0tU7F7E
>>451
list<StgObj*> list;
list.push_back( new A() );
list.push_back( new B() );
453名前は開発中のものです。:04/12/09 01:50:08 ID:K0tU7F7E
名前がマズかった orz

list<StgObj*> objList;
objList.push_back( new A() );
objList.push_back( new B() );
454名前は開発中のものです。:04/12/09 04:36:49 ID:CCZi1X9t
できるよ
4551:04/12/09 20:31:57 ID:QvI2Awo3
>>453師匠
ありがとうございます!
今やったらできました。
現在インベーダーゲームへ応用中。

自分の理解が完全に間違っていた模様…。


>>454師匠
できました…。
456名前は開発中のものです。:04/12/10 03:13:29 ID:L+RmPzsY
百聞は一見にしかずというしな
ソースを見て正確な理解ができればそれでいいさ
4571:04/12/10 23:17:50 ID:MH3CMNYz
>>456師匠
ありがとうございました。
シーズン柄飲み会の連続でばて気味ですが、クリスマス・とイブの2日を
完全オフにしてある(というか必然)のでそれまでゆっくり行きたいと思
います。

…最近遅くてすみません
458名前は開発中のものです。:04/12/11 06:58:51 ID:1XryzoUz
まだがんばってるのか
459294:04/12/13 11:19:35 ID:yNdEt/fD
ご無沙汰してます 294 です。
1ヶ月もネットが出来ませんでした。
復帰してもよろしいでしょうか?

ネットが出来ない間作ったものを提出します

http://49uper.com:8080/html/img-s/28215.zip

提出されていたソースをもとに製作しました
リスト構造・シューティングはこんなつくり方でいいのか
見てもらえると助かります
460名前は開発中のものです。:04/12/13 20:37:50 ID:2QGB4o1K
ごめん、exe起動したらガクガクしすぎて何やってるんだかわからん。
4611:04/12/13 23:32:14 ID:D5VUahDp
>>294
久しぶり。
同じく何をやっているかわかりません…。
しかし、実は俺より先に進んでいるのか!?

現在、こんなことやってます。

1・自機に対して当たり判定が存在するものlist
2・敵に対して当たり判定が存在するものlist

1は敵と敵弾
2は自機と自機弾、敵自身(敵同士で重ならないように)を登録。

それぞれに処理をさせます。
障害物とかもこれで処理できるかな、と考えています。

2つのリストに同じオブジェクトを登録することがあるため(障害物や敵は双方
に登録を想定)、オブジェクトは自身の登録個数を持っています。
で、Listからeraseするときには必ず「stgObjErase」メソッド(listから
eraseした上でオブジェクトの登録個数を減算し、0になるとdeleteする)を呼
び、オブジェクトの登録個数が0になるとdeleteするようにします。

…と、例によって構想で現在はstgObjEraseメソッドがエラー出してます(汗
462名前は開発中のものです。:04/12/13 23:49:35 ID:L/V4rJ7n
>>1氏のようにCを極めずにWinAPIを勉強してる漏れはお呼びでないかな…
463名前は開発中のものです。:04/12/13 23:55:37 ID:/Q7KyYYE
>>461
それは参照カウンタというブツで、ポインタの制御に良く使われます。
自分で作るのもいいのですが、boost::shared_ptrというのがまさに参照カウント型のスマートポインタで、
1氏が考えているように、自身の参照個数を保存して、参照がなくなった時点で自動的にdeleteしてくれます。

参照カウントの実装はコピー時に上げ下げしたり、マルチスレッド時にロックしなければいけなかったり…と面倒なので
とりあえずはshared_ptrを使うべきかと思います。
(ちなみにshared_ptrを使えば、明示的なdeleteはプログラム中からほとんど消すことが出来ます)

自作するのでしたら、More Effective C++に参照カウント型スマートポインタの構造が長々と書いてあるので
それを一読してみると良いかもしれません。

>>462
そういう方法もありでは。分からなくなってから勉強するのでも遅くはないです。
ただ効率が良いか悪いかは分かりませんが…
464名前は開発中のものです。:04/12/14 00:43:24 ID:zzsjrUS8
いや、それもありだと思う。
正直、絵と音が出ないとモチベーション下がるっしょ。
465294:04/12/14 08:07:54 ID:2k9wEzOX
説明が足りませんでした。
最大化すると動くはずなのですが、自分のパソコンに合わせて作ってあるので
それでもがくがくする場合は、MAX_Y を小さくすれば動くと思います。

自分は先頭のリストは、消せないようにしているのですが、
消せたほうが軽くていいのかな?
参照カウント型スマートポインタ調べてきます。
466名前は開発中のものです。:04/12/14 09:14:37 ID:9a+RZ13R
スマートポインタやろうとしたけど
よく考えたらC#でいいじゃんと思って
今に至る。
467名前は開発中のものです。:04/12/14 18:30:24 ID:rt5e3EXt
>>294
ちゃんとショットが弾幕になってるのに驚きました
(・∀・)イイ!!
468名前は開発中のものです。:04/12/14 18:33:37 ID:HO0ZFyQ0
>>467
ワロタ
確かに画面が弾幕で無茶苦茶だなw
469名前は開発中のものです。:04/12/14 18:51:04 ID:rt5e3EXt
>>468
縦に引き延ばせば普通のSTGのショットになるYO
470294:04/12/15 22:09:02 ID:x/IZ5sQ8
>1 さん、勉強が進んでるとかじゃなくて、
育成?された順番が違うだけかと思いますよ
自分のソースは、動くだけで中身ぐちゃぐちゃな気もしますし

自分も絵を出したくなってきちゃいました。
API勉強してきます
4711:04/12/15 22:15:01 ID:ITq1pLqg
今日は早めの帰宅(最近毎日報告じゃないですが)

>>463さん
アプローチ方法は人それぞれ。
このスレでも「絵からいけ派」・「基礎をやれ派」がいたよ。


>>463師匠
そんな便利なものが…というか、以前スレで師匠が紹介していた!
boost導入してみます!


>>294さん
くそ、追い越されないように気合を入れないと!
あと実は、例のプログラムがまだちゃんと動いていない…。

>>466さん
C#…言語としてよく知らないが、ポインタ関連が便利になっているのかな?
4721:04/12/15 22:43:54 ID:ITq1pLqg
今日は早めの帰宅(最近毎日報告じゃないですが)

>>463さん
アプローチ方法は人それぞれ。
このスレでも「絵からいけ派」・「基礎をやれ派」がいたよ。


>>463師匠
そんな便利なものが…というか、以前スレで師匠が紹介していた!
boost導入してみます!


>>294さん
くそ、追い越されないように気合を入れないと!
あと実は、例のプログラムがまだちゃんと動いていない…。

>>466さん
C#…言語としてよく知らないが、ポインタ関連が便利になっているのかな?
4731:04/12/15 23:30:04 ID:QDdj0b/w
うわ、2回送信している…orz
474名前は開発中のものです。:04/12/16 08:12:44 ID:RPKRk48J
STL覚えつつboostまで手を出すとは。
いっそのことlambdaまでいっちゃおうぜ。
475名前は開発中のものです。:04/12/16 13:06:17 ID:LR2uePaM
shared_ptrはとりあえず使っておいて損はないからな。
476名前は開発中のものです。:04/12/20 19:25:02 ID:9Oh9Y4qT
さっさと挫折し……




                    ……もう既に挫折していた ○| ̄|_
477294:04/12/20 21:24:35 ID:pboCxoIu
>1さん のソース見れました。
ノートンが邪魔して見れなかったみたいです。
478294:04/12/20 23:36:03 ID:pboCxoIu
リソースで悪戦苦闘
動きはしますがBMPが表示されません。

ttp://49uper.com:8080/html/img-s/29609.zip
479名前は開発中のものです。:04/12/21 00:23:26 ID:w8c1Lm3U
LoadBitmapは既に旧APIとなりつつあります。
猫プロを参考にされたのかもしれませんが、LoadImageを使った方が無難でしょう。

ちなみにどうも気まぐれにIDI_STAGEという名前がコンパイルできないようです…
(名前を変えて戻すと動いたりする)
試しに.rcファイルとmain内の「IDI_STAGE」という名前を変えてみてはいかがでしょう。
480名前は開発中のものです。:04/12/21 00:31:31 ID:XS1da1Ji
>>479
猫んとこでもLoadBitmapはLoadImageに取って代わったって解説してなかったっけ?
まだ使えるけど
481名前は開発中のものです。:04/12/21 00:33:45 ID:XS1da1Ji
>>478
これ、BCCFormで作ったでしょ?
自分も今日同じ事してたんだけど、どうも表示されないと思ったらリソースが原因だった。
482名前は開発中のものです。:04/12/21 00:36:26 ID:L0pGXTt3
BCC Developerを使うより、VisualC++2005 Expressを使った方がいい気もする…
リソース管理等々が統合されてるし。
483名前は開発中のものです。:04/12/21 00:46:10 ID:XS1da1Ji
>>482
そりゃ当たり前でそ…
貧乏より金持ち、不健康より健康の方が。
484名前は開発中のものです。:04/12/21 00:47:36 ID:L0pGXTt3
いや両方ともタダなんだから、
同じ貧乏でも健康な方がってことデス
485名前は開発中のものです。:04/12/21 00:50:21 ID:XS1da1Ji
そういえばVisualC++2005 Expressはタダだね。
勘違いしてたVisualC++2005はまだ売ってないね…
486294:04/12/21 00:52:12 ID:GbpPB8D2
LoadImage に変えて、名前も変えましたが動きません。
ほかにもに間違えがあるのかも。

BCCForm使ってます
>481さん どのように対処しましたか?
487名前は開発中のものです。:04/12/21 01:04:03 ID:L0pGXTt3
>>486
とりあえず、パスが
"C:\---\----…"
になってるようだけど、正しくは
"C:\\---\\----…"
だと思いマス
488名前は開発中のものです。:04/12/21 01:06:25 ID:XS1da1Ji
>>486
猫で使ってたリソースそのままコピペで貼ってファイル名だけ変えた。
要するにVC++のリソースエディタが生成した奴ね。
今のところそれ以外わからない…
489名前は開発中のものです。:04/12/21 01:07:43 ID:XS1da1Ji
>>487
それ直しても変わらなかった。
というより、VC++とBCCFormの作るリソースじゃあまりに構文が違い過ぎる気がする…
それでも今まで使えてたのも謎…
490名前は開発中のものです。:04/12/21 01:10:30 ID:L0pGXTt3
うちではパスを直して、名前を変更したら動きましたが
491294:04/12/21 01:35:34 ID:GbpPB8D2
解決しました。
MAKEINTRESOURCE の書き忘れでした。

ありがとうございます。
4921:04/12/23 16:34:32 ID:6+ofxhZh
ようやく形になってきました。
26日にはアップします。

294さんのおかげで自分のソースを根本から見直す気になりました。
ちなみに文字のみ弾幕シューになってます。

三角関数の再勉強が目下の課題(汗
4931:04/12/25 22:25:45 ID:MpQ27gIG
一応作成中、26日に間に合わせるにはスマートポインタ導入などを見送ったほうが
よさげ…orz

最近遅くてすみませぬ。
494名前は開発中のものです。:04/12/25 22:27:17 ID:utZQK0hF
>>493
年末だし急ぐ事はないでしょ
マターリがんがれ
4951:04/12/27 00:00:23 ID:nJs+mUuQ
まだやっているワナ…
俺才能ないのかも…。
496名前は開発中のものです。:04/12/27 01:16:25 ID:kJEsfVOk
>>495
ゲーム作りに才能なんて必要ない。
必要なのは知識と経験だけ。

続けていれば、そのうち頭に浮かんだものを簡単に形にできるようになる。
鉄棒や英語と一緒で、一足飛びに上達したりはしないもんだよ。

〆切も大事だが、続けることのほうがもっと大事だ。
焦らずいこう。
4971:04/12/27 01:54:41 ID:UKQVAaiv
>>494さん、496さん
ありがとうございます。
今日はもうだめぽ…明日の仕事のため寝ます。
明後日までにできなければつくりかけをUPします。
と予告して自分を追い込むー。
498294:04/12/27 15:14:08 ID:92AJ3CZU
なんかソースがぐちゃぐちゃです。

ttp://49uper.com:8080/html/img-s/30859.zip

499名前は開発中のものです。:04/12/27 16:01:03 ID:DotxQdES
>>294
ムズい!けど面白い(*´д`*)ハァハァ

タイルのアニメーションはタイルを別クラスで管理した方がやりやすいと思いますです。
浅知恵ですが、タイル描画は

if (m_pStage[iy][ix] == 0) continue;

int bmpPos=0; // tile.bmp上の位置(y座標)
int mod=0; // 位置補正
int animation[8] = {0,4,6,4,0,4,6,4};
if (100 <= m_pStage[iy][ix] && m_pStage[iy][ix] <= 103) {
  bmpPos = 128 + 16*(m_pStage[iy][ix]-100);
} else if (110 <= m_pStage[iy][ix] && m_pStage[iy][ix] <= 113) {
  bmpPos = 192 + 16*(m_pStage[iy][ix]-110);
} else {
  bmpPos = 16*(m_pStage[iy][ix]%8);
  mod = animation[m_pStage[iy][ix]%8];
}
BitBlt(hdc_off, TILE_POSX+16*ix, mod + TILE_POSY+16*iy, 16, 16, hdc_mem, 0, bmpPos, SRCCOPY);

と書けるのではないでしょうか。(行数の関係で縮めたので見づらいですね…)
せっかくですから、オフスクリーン描画を使ってちらつきを無くしてみては
500499:04/12/27 16:08:48 ID:DotxQdES
何となくオフスクリーン使うようにした残骸が残っちゃってました・・・orz
hdc_off→hdc
501名前は開発中のものです。:04/12/28 00:43:47 ID:T7ZsiI8k
語感からして、直感ヒトフデの移植版?
ルールがわからん。
502294:04/12/28 11:49:46 ID:xU5Dc145
>499さん ありがとうございます。
オフスクリーン描画調べてきます。

ttp://49uper.com:8080/html/img-s/30988.zip

>501さん ReadMe.txt 追加しておきました。
503名前は開発中のものです。:04/12/28 15:49:57 ID:iVYqsUo4
>>294
ところでSelectObject(hdc_mem, hBmp);のコメントが「?」になっていたので補足しておくと、

デバイスコンテキスト(DC)は、プログラムとデバイス(モニタやプリンタ)の橋渡し役で
「プログラムがデバイスに書き込む」 という直接の処理ではなく
「プログラムがDCに書き込む→デバイスはDCから読み込んで処理をする」
という流れにより、プログラムからデバイスを意識しなくて済むようにするための仕組みです。
このおかげで、対象デバイスがモニタだろうがプリンタだろうが意識せずに描画が出来るわけですが、
代わりに、どんな画像データを書き込む際にも、DCを経由しなければいけない
という制約が出来てしまいました。(GDIやGDI+では)
ビットマップ画像も例外ではなく、DCを経由してBitBltに渡さなければいけません。

ところでHDCはただの情報を格納する構造体で、
BitBltやTextOutといったAPIで画像データを書き込む際、実際のデータはHDCが持つ
ビットマップハンドルに書き込まれることになります。
ところが、DCをCreateCompatibleDCで作成した直後には
DCはビットマップ情報を持っていません(正確には1×1のモノクロの点を持っていますが)
何もないDCからデータを読み出すことはできませんから、
ビットマップ画像のデータをDCに割り当ててやる必要があります。
その操作が
SelectObject(hdc_mem, hBmp);
です。

これでhdc_memはhBmpを「実際のデータ」として持つことになり、
BitBlt等のAPIでhBmpの中身を読み込めるようになるわけです。

ってもう解決済みだったらスンマソン
504294:04/12/28 23:37:19 ID:/Pzi99YN
>503さん、ありがとうございます。

それで SelectObject を消すと1個前のbmpが表示されたわけですね。

505294:04/12/30 03:27:09 ID:Vdxbn1+8
オフスクリーン分かりません。

DirectX を使用するということですか?

>1さん、
>>472 の例のプログラムってなんでしたっけ?
記憶力ないもので。
506名前は開発中のものです。:04/12/30 03:46:18 ID:N8q60uxJ
えーと、画面がちらつくのは描画が逐一見えてしまうからなので、
一度オフスクリーン(裏画面とも)に書き込んで、最後にまとめて転送するようなやり方を指してます。
DirectXを使うわけではありません。

CreateCompatibleDC
CreateCompatibleBitmap

でウインドウと同じサイズの(メモリ上の)描画領域を作ってやって、
そこにデータを書き込み、最後にBitBltで本来のウインドウ上に転送してやる、というやり方を取ります
507294:04/12/31 05:59:26 ID:lhHQA28R
申し訳ないです。
まったく分かりません。

CreateCompatibleDC でオフスクリーンを作って
CreateCompatibleBitmap でサイズを変更して
BitBlt でオフスクリーンに描画して
すべて描画し終わったら、
BitBlt でスクリーンに描画するということですか?

CreateCompatibleBitmap の戻値がHBITMAPだからこれがオフスクリーンなのかな?

見当違いなこと言ってたら、ごめんなさい、
508294:04/12/31 07:19:15 ID:lhHQA28R
解決しました。
何度もアホな質問してしまって申し訳ないです。

来年もよろしくお願いします。
509294:05/01/07 15:53:09 ID:DjjHZ5Tz
明けましておめでとうございます

今製作中のリソースエディターです。
コントロールの制御の仕方がまったく分かりません
ttp://49uper.com:8080/html/img-s/32879.zip

ランキングを追加しました。
落ちてくるブロックをスプリクトにしたいのですが読んでも分かりません。
ttp://49uper.com:8080/html/img-s/32881.zip
510名前は開発中のものです。:05/01/07 17:22:09 ID:teqh7oYu
何を読んでもわからないのですかね
511名前は開発中のものです。:05/01/10 15:05:28 ID:O8xPY7lA
ところで、1はあきらめたのか。
512名前は開発中のものです。:05/01/10 15:16:13 ID:UaDhr1DI
最後のレスが俺の誕生日だ…。
513294:05/01/12 18:12:51 ID:1EEi3oWF
レス遅れて申し訳ないです。
ブロックは、すきやきのアルゴリズム です。

リソースエディターは、実力不足?どの関数を使えばいいのか分かりません。
不勉強ですね。 探してきます
514名前は開発中のものです。:05/01/30 17:42:50 ID:M4/vu68b
age
515名前は開発中のものです。:05/01/30 17:49:27 ID:ItSOmYfP
誰かしゃべれよ
516名前は開発中のものです。:05/01/30 18:41:24 ID:Pe/S8lF7
HPを持っている方必見!登録したら5000円!
http://afj21.jp/adlink.php?adid=1355
517名前は開発中のものです。:05/01/30 23:34:50 ID:LQvCYKdT
久々だ
俺の予想通りになったな
>>39
518名前は開発中のものです。:05/01/31 02:11:04 ID:dk4MRPJZ
>>517
見事だね
519名前は開発中のものです。:05/01/31 02:55:55 ID:dk4MRPJZ
最初はやる気があるようだったんだがなあ
520(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/01/31 21:43:38 ID:+TxjodOv
 
なんか前任者が染んだようなので次は私が。
小規模なSLGの完成目指して頑張ります

画面は開発中のものです

ttp://karen.saiin.net/~arausa01/Kshiki/GarphixA/20050131213322Size800x600.jpg
521(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/01/31 21:47:36 ID:+TxjodOv
さて次はロボット描かないと
522名前は開発中のものです。:05/01/31 22:03:48 ID:9t/waeE7
>>520
このままでは挫折するのも時間の問題だが、優秀なリーダーのいる同人チームに
拾われればそれなりの活躍が出来るだろう。
523(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/01/31 22:20:00 ID:+TxjodOv
>>522
私の画力は製作レベルにぜんぜん達していないんで
まあ気長に頑張りますよ
524(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/01/31 22:36:38 ID:+TxjodOv
なんかこの手のゲーム作るスレが無かったんですよね
525一星 ◆Cppn/.YI3. :05/01/31 22:41:37 ID:0sv5uukS
>>520
言語はどうしてるんだ?
526(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/01/31 22:45:11 ID:+TxjodOv
>>525
プログラマじゃないのでノータッチ。
複数人で作るスレ立てようと思ったんだけどスレ立てれなかったんで
ここを再利用しますた
527名前は開発中のものです。:05/01/31 22:56:41 ID:txBKJol6
おいゲーム製作者の育成だろ
528(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/01/31 23:16:37 ID:+TxjodOv
つーことはプログラマとセットじゃないといかんわけですか。
誰かいないかなぁ・・・

誰かが名乗りをあげるまでここで画面の開発&練習しててもいいですか?
529名前は開発中のものです。:05/01/31 23:30:29 ID:txBKJol6
廃墟だしいいんじゃない
530(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/01/31 23:46:10 ID:+TxjodOv
>>529
ゲ製板には着たばかりなのでそう言ってもらえると有難いです
腕前が腕前なので一気にってのは無理ですが頑張ってちょこちょこ更新します
531名前は開発中のものです。:05/01/31 23:59:30 ID:9t/waeE7
まあ、期待しないで待っていよう。
532(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/01 00:35:17 ID:CtlibBmI
途中だけどきょうはここまで、っと。
もっと練習&試行錯誤しないとね

ttp://karen.saiin.net/~arausa01/Kshiki/GarphixA/20050201002939Size800x600.jpg

>>531
絵描きで急激な成長ってのは難しいですが頑張りますので
生暖かい目で見守っててください
533名前は開発中のものです。:05/02/01 11:09:52 ID:uXtvyABc
スパロボ系か
作るならプログラマの腕がかなり要るぞ
ほんとに期待しないでいるよ
534名前は開発中のものです。:05/02/01 14:12:36 ID:djMYk4yx
百式に見えるぞ
535リルム:05/02/01 14:50:04 ID:/sjbLrZF
★★FFの戦闘シーン続き誰か教えて★★
名前: リルム
E-mail:
内容:
友人にもらったこのファイル。
感動した。
魔法も増やしたいし、敵も増やしたい
戦闘中の音楽も鳴らしたい。

しかし、私は、全くプログラム経験が無い!
誰か続きをお願いします・・・
ttp://fft-up.hp.infoseek.co.jp/cgi-bin/FF5_up/img-box/img20050201144402.lzh

私も参加していいですか?
536一星 ◆Cppn/.YI3. :05/02/01 20:49:02 ID:AXw5ku21
>>アラウサ
とりあえず、どんなメンバーを募集しているか書いたらどうだ?
537(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/02 00:05:00 ID:/Kwo88yd
>>533
>スパロボ系か、作るならプログラマの腕がかなり要るぞ

個人的にはロボット描けるいろんな絵描きが参加できるようなものにしたいので
敵の思考ルーチンは要らんと思います
機能は極力絞ってシンプルなものに、しかし駆け引きが出来る感じのがいいですね〜
大航海時代2の戦闘みたいなの

>>536
プログラマーと曲作れる人と絵描ける人。
私の実力が実力なので練習しながら気長に待ったり探したりしますが
壮大な方向には絶対持っていかないという条件でなら何人でもOKだと思います

ちなみに私の住まいは北関東。 メアドは [email protected]
538名前は開発中のものです。:05/02/03 08:01:25 ID:PusOIkt9
>>537
システムはプログラマ任せ?
ある程度の叩き台用意しないと人はついてこないような。
539名前は開発中のものです。:05/02/03 08:53:59 ID:7w12Q0eA
叩かれ台なら用意してるようだがな。
540名前は開発中のものです。:05/02/03 21:14:47 ID:YSOZVjDn
>>539
巧い。
541(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/03 21:28:22 ID:js2A7zKz
ここは人材育成スレッドだから叩き上等、ってところですかね

ttp://karen.saiin.net/~arausa01/Kshiki/GarphixA/20050203211121Size800x600.jpg

>システムはプログラマ任せ?

一通り考えられますけど >>533 の発言がちょっと引っかかりますね。
とりあえず画像とか名前とかパラメータとか第三者が入力することが出来て
上の画面のように出力することが出来れば
シュミュレーションゲームなりスゴロクなりカードゲームなりRPGなり応用利くと思うんですが

・・・ちょっと参加の如何に関わらず
これぐらいなら楽勝だぜ!、って人やこれぐらいは作れるようになりたいなぁって人、
どれくらいいるか挙手してみてくれます?
542名前は開発中のものです。:05/02/03 22:40:53 ID:isNIachh
てめー!
こんだけの色塗るのに二日もかけたのかよー!!!
543(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/03 22:56:38 ID:LpuLNaJK
時間がかかったのはむしろ描き直した線画。
Painter買って使い方を覚えてたのもありますけどね。

ワーク力はたしかにまだまだ高めないといけませんね
Painterで手早く塗る方法も探さないと〜
544名前は開発中のものです。:05/02/03 23:43:28 ID:isNIachh
Painterならまかせろ!
わからない事があったらいつでも聞け!!!
545無謀厨アラウサ ◆nbiQZRaAHo :05/02/03 23:58:35 ID:LpuLNaJK
>>544
助かります(´Å`)ノシ
546名前は開発中のものです。:05/02/04 00:20:44 ID:gqIe37IZ
そのSSだけで作れといわれてもな
対戦相手はどういうふうに画面にでるか
攻撃の際ロボットはどういう風に動くか
具体的に書いていかないと
○○みたいなのでお願いじゃ普通通用しない
人に頼むならね
547名前は開発中のものです。:05/02/04 00:39:53 ID:MPSUS+wd
要するに、俺の絵を使ったスパロボみたいなゲーム作ってください。
ってことだろ?
548(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/04 01:29:43 ID:S29FC7s+
一日二日で企画するのも無理ですし、ま、ひとつずつ埋めてきましょ

>対戦相手はどういうふうに画面にでるか
左右にスクロールする感じで画面切り替えが妥当じゃないでしょうか。

>攻撃の際ロボットはどういう風に動くか
動くのはロボットじゃなくて背景のほうがメインになるんじゃないでしょうか
攻撃は絵描きが頑張ってコマ送りで描く、と。絵描きが未熟なら

>要するに、俺の絵を使ったスパロボみたいなゲーム作ってください。ってことだろ?
不特定多数のロボット描きが参加できるものが出来ればいいので
別に私の絵が使われなくてもまったく構いません
549(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/04 01:37:02 ID:S29FC7s+
おっと、文章が途中で切れてる。

絵描きが未熟なら
→絵描きが未熟ならまあ弾丸とかビームとか共用で使える素材を用意するとか
550(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/04 01:39:36 ID:S29FC7s+
PGや絵描き次第では結構質素になるけど
育成スレッドだしそれもまぁいいかもしれませんね
551名前は開発中のものです。:05/02/04 01:45:08 ID:fSvhO8fV
つーか、素材集にしかならん気が。
552名前は開発中のものです。:05/02/04 01:57:20 ID:tQO0CaXT
>不特定多数のロボット描きが参加できるもの

どういうこっちゃ?
ネットワークで接続して、自分のロボ絵をアップロードしてオンラインロボット大戦すんの?
それとも単に絵描きを多人数使った普通にオフラインな簡易ロボット大戦?
553名前は開発中のものです。:05/02/04 01:59:24 ID:UpboEPRG
まぁ素直にSLGツクールでも使えといっておこう。
554(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/04 02:34:50 ID:S29FC7s+
>ネットワークで接続して、自分のロボ絵をアップロードしてオンラインロボット大戦すんの?
そういうのが出来ればいいけど休日使ってそういうのを作ってくれる奇特な人がいるかどうか・・・

>単に絵描きを多人数使った普通にオフラインな簡易ロボット大戦?
配布型であとからいくらでもキャラやらロボットを追加できるならそれもいいかもしれませんね
もしくはシュミュレーションRPGもしくはカードゲーム。
戦闘画面を中心に組み立てるのがいいんではないでしょうか

まぁいいや、今日はもう寝ます、おやすみなさいノシ
555(´Å`)無謀厨アラウサ ◆nbiQZRaAHo :05/02/04 02:36:10 ID:S29FC7s+
>>553
どれくらいのができるかちょっと調べてみますね
556名前は開発中のものです。:05/02/04 12:14:03 ID:DU4pkuDW
きっちりした全体の仕様を出して作ってもらうか。
他のディレクターの下で作業するか。
ツクール使って自分の好きなようにやるか。

いずれにしてもグラフィッカーやるつもりなら
まだ絵の練習に専念するべき段階だよ君は。
557名前は開発中のものです。:05/02/04 19:44:27 ID:tQO0CaXT
うん
素材集が出来て終わりだろうなぁ
アラウサはSLGツクールで製作を開始するも行方不明音信不通
558漏れ太郎:05/02/06 18:42:24 ID:3cMuB8A8
漏れも育成してほしいのだが、スレおわってるーか?
559名前は開発中のものです。:05/02/06 19:02:28 ID:FjYPf4Cd
このスレみりゃわかるが
結局自分でやるしかないよ
幼女でもないのに
育ててもらおうなんて姿勢が腐ってる
560漏れ太郎:05/02/06 19:02:54 ID:3cMuB8A8
はぁ・・・・・。
561漏れ太郎:05/02/06 19:04:19 ID:3cMuB8A8
講座とか探しても、いきなりしらない言葉とかでてくるんです;;
562漏れ太郎:05/02/06 19:09:29 ID:3cMuB8A8
誰か一から教えて〜と終わったスレで言ってみる。
563漏れ太郎:05/02/06 19:10:19 ID:3cMuB8A8
そして、終わったスレとかいいながら、少し期待してみる。
564名前は開発中のものです。:05/02/06 19:25:33 ID:HfMk/eKX
>>563
HSPでいいなら教える。
565名前は開発中のものです。:05/02/06 19:30:32 ID:iQ3MRPmj
教えるが、途中で挫折するのに50万ペリカ。
566漏れ太郎:05/02/06 19:51:09 ID:3cMuB8A8
HSPおせ〜て>>563
567漏れ太郎:05/02/06 19:54:25 ID:3cMuB8A8
ちなみに、いっちばん最初からお願いします。
568名前は開発中のものです。:05/02/06 20:01:45 ID:iQ3MRPmj
まず
ttp://www.google.ne.jp/
へアクセスして、「hsp」という単語を入れて検索する。
出てきた検索結果の一番上のページに飛び、hspをダウンロードする。
次に「hsp 入門」という単語で検索し、検索結果を上から順にざっと見てゆく。
自分でも理解できるレベルだと思ったページがあれば、そこの講座を順に
熟読して、自習する。

まずは文字を表示するプログラムを作れ。
そしてアップロードするのだ。アップロードの仕方も分からなければgoogleで調べろ。
569漏れ太郎:05/02/06 20:02:11 ID:3cMuB8A8
あと、レス遅れスマソ。m(_ _)m
570漏れ太郎:05/02/06 20:03:46 ID:3cMuB8A8
それは、printや、mesのことでしょうか?
571名前は開発中のものです。:05/02/06 20:12:28 ID:HfMk/eKX
>>570
正解。stopも忘れんようにな。
572漏れ太郎:05/02/06 20:15:00 ID:3cMuB8A8
アップローダー使ったら、そのファイルはアップロードできませんでした。;;
だから、ここでかきます。
print "どうですか?"
stop
573漏れ太郎:05/02/06 20:17:04 ID:3cMuB8A8
ここではtabkeyつかえませんでした。
574漏れ太郎:05/02/06 20:24:53 ID:3cMuB8A8
それをできるファイルさがすのが課題でしょうか!?((;゚Д゚))
575漏れ太郎:05/02/06 20:26:13 ID:3cMuB8A8
ファイルじゃなくて、アップローダーだった。^^;
一様、1さんルールにつき、師匠といいます。師匠。
576名前は開発中のものです。:05/02/06 20:30:37 ID:HfMk/eKX
>>572
合格。ただ作者はprintよりmesを勧めていたようないなかったような、間違ってたらすまん。
まぁmesもprintも中身一緒だから問題ない。

ロダは…必要になったら用意すればいい。しばらくはここに書けば事足りる。

次の課題、変数を理解せよ。

a="どうですか?"
mes a
stop

このソースの意味がわかるまで居残りな。
    ( ゚д゚ )
  m9| y |)
577漏れ太郎:05/02/06 20:32:47 ID:3cMuB8A8
どうですか?と表示されます!居残り免罪か!?
578漏れ太郎:05/02/06 20:39:17 ID:3cMuB8A8
ちなみに、a="どうですか?"だから、ソースにaとするだけで、その、どうですか?が表示されるんですよね。
579名前は開発中のものです。:05/02/06 20:39:28 ID:HfMk/eKX
実行せずに結果がわかったのなら合格。免罪オメ

HSPの変数には文字列型と数値型がある。
  (゚д゚ )
  (| y |)

次の課題
a=5
mes a+7
stop

これでどう表示されるか、理解し、応用して何かソースを書け。
580漏れ太郎:05/02/06 20:41:45 ID:3cMuB8A8
a=7
mes a+9
stop

16と、表示されます!あってるかな・・・・。
581名前は開発中のものです。:05/02/06 20:41:57 ID:HfMk/eKX
>>578
ソース中で、aという文字が数字と等価として使える…というべきか、上手い形容が思いつかん。誰か補完頼む。
変数が入れ物であることを把握していれば良し。
582漏れ太郎:05/02/06 20:43:16 ID:3cMuB8A8
一個しか記憶できない用語登録の数字だけみたいなもんですかね?師匠!
583漏れ太郎:05/02/06 20:44:05 ID:3cMuB8A8
ていうか、意味不明だったかな。
584名前は開発中のものです。:05/02/06 20:44:19 ID:HfMk/eKX
>>580
正解。
次はちょっと特殊な文字列型だ

a="456"
mes a+"123"
stop
どう表示されると思う?
  (゚д゚ )
  (| y |)
585漏れ太郎:05/02/06 20:45:13 ID:3cMuB8A8
456123ですか?
586漏れ太郎:05/02/06 20:47:56 ID:3cMuB8A8
この、レスがくるまでの時間・・・・・。ミリオネアのみのもんたが難しい表情をしている時間のようだ・・・。((o(´∀`)o))ワクワク
587名前は開発中のものです。:05/02/06 20:51:34 ID:HfMk/eKX
正解。優秀だ。
  (゚д゚ )
  (| y |)

これを応用して
picload "graphics"+filename+".bmp"
ということが可能なのをよく把握しておきたまえ。
    ( ゚д゚ )
  m9| y |)

ところで、俺はSTGを作ることを最終目標に語ってるんだが…良いのか?
588漏れ太郎:05/02/06 20:54:19 ID:3cMuB8A8
はい。最初はシューティングや、落ち物がいいときいてましたから、どっちかを、希望してました!
picloadとはどういうことだしょうか?師匠!
  \/
,o/ 
lミiニ!
589名前は開発中のものです。:05/02/06 21:02:33 ID:HfMk/eKX
>>588
ふむ、好奇心旺盛ないい生徒だ。
picloadはファイルの画像を現在の画面に読み出す命令だ。
ゲームを作るときにまず使う命令なので真っ先に覚えておいて損は無いだろう。
  (゚д゚ )
  (| y |)

ついでに文法も覚えておくよう
         ( ゚д゚)  picload p1,p2,p3
        (\/\/
説明面倒だから自分でヘルプ引いてくれ。
590漏れ太郎:05/02/06 21:02:51 ID:3cMuB8A8
親てきに寝ます。スマソ。明日は5時から8時までいけます。
591漏れ太郎:05/02/06 21:03:54 ID:3cMuB8A8
ヘルプみときます。
592漏れ太郎:05/02/06 21:05:51 ID:3cMuB8A8
先生明日もこれますか?
593名前は開発中のものです。:05/02/06 21:06:24 ID:HfMk/eKX
ん、わからんことは遠慮せずに俺に聞くといい、向上心のある奴は好きだ。
  (゚д゚ )
  (| y |)
594漏れ太郎:05/02/06 21:10:32 ID:3cMuB8A8
では、おやすみなさい。
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□■□□□□□□□■■■■■■■■□□□□□□□□□□□■□□□□□■□□□□■□□□□□□□□□□□□□□□□
□□□□□□■□□□□□□□■□□□□□□■□□□■□□□□□□□■□□□□■□□□□□■■■□□□■■■■■■■■■□□
□■■■■■■■■■■■□□■□□□□□□■□□□■□□□■■■■■■■□■□□■□□■□□■□□□□□□□□□□■□□□
□□□□□□■□□□□□□□■□□□□□□■□□□■□□□□□□□■□□□□■■□□■■□■□□□□□□□□□□■□□□□
□□□□□■■■□□□□□□■□□□□□□■□□□■□□□□□□□■□□□□■□□□□□■■□□□□□□□□■■□□□□□
□□□□■□■□■□□□□□■■■■■■■■□□□■□□□□□□□■□□□■■■■□□■□□■□□□□□□□■□□□□□□
□□□■□□■□□■□□□□■□□□□□□■□□□■□□□□□□□■□□□□□■□□■□■□□■□□□□□□■□□□□□□
□□■□□□■□□□■□□□■□□□□□□■□□□■□□□□■■■■□□□■□■□■□□□■□□□□□□□□■□□□□□□
□■□□■■■■■□□■□□■□□□□□□■□□□■□□□■□□□■■□□■□■□■□□□□□□□□□□□□■□□□□□□
□□□□□□■□□□□□□□■□□□□□□■□□□■□□□■□□□■□■□■□■□■□□■□□□□□□□□□■□□□□□□
□□□□□□■□□□□□□□■■■■■■■■□□□■□□□□■■■□□□□□□■□□□□□■□□□□□□□■■□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
595漏れ太郎:05/02/06 21:11:43 ID:3cMuB8A8
(ノ∀`)アチャー失敗。まあいいや。







ってわけで、うめるためにながいスレ〜〜。
596漏れ太郎:05/02/06 21:12:47 ID:3cMuB8A8





















597名前は開発中のものです。:05/02/06 23:13:00 ID:W7YrVcDf
もって1ヶ月ってところだな
598生徒。:05/02/06 23:16:47 ID:xfkzeOM+
私にも教えてくださいな。漏れ太郎と一緒に頑張ります!
とりあえず今までの部分は全て理解したので今日は寝ます。
599名前は開発中のものです。:05/02/06 23:19:06 ID:HfMk/eKX
おお、生徒が。先生こそよろしく。向上心があって良いな。
  (゚д゚ )
  (| y |)
600名前は開発中のものです。:05/02/07 02:17:58 ID:egHsLNna
>>597
馬鹿。一週間くらいだろ。
そもそも、本当に作る気があるならこんなところで変数の扱いとか、やりとりしてない。

まあ、その上に教えてと教えるのやりとりしてるんだから、別にいいんだがな。
601名前は開発中のものです。:05/02/07 13:36:08 ID:xcihYip+
自分で調べたほうが早そうだな…。
まぁ、動きがあって面白いからみてようっと。
602名前は開発中のものです。:05/02/07 16:58:53 ID:3tGLQ+pg
>>601
んだな、リアルタイムで聞いているほうが頑張れるかも知れんけど
手っ取りばやく技術つけたかったらググったほうがずっと早い。

そういや、5時〜8時とか言ってたな、小学生か?
603名前は開発中のものです。:05/02/07 18:07:02 ID:QtQcBYua
ところでアラウサはどうなった?
604名前は開発中のものです。:05/02/07 18:13:43 ID:IH8buJZy
( ´∀`)∩   <先生、今回の課題は何ですか?
605名前は開発中のものです。:05/02/07 19:05:06 ID:HMYOCZ3b
アラウサは何も出来ない厨房
いらね
606名前は開発中のものです。:05/02/07 19:10:25 ID:fa2JI3Nu
>>604
まずは、漏れ太郎か>>598が出てくるのを待ってからだ。
  (゚д゚ )
  (| y |)
607生徒。:05/02/07 19:11:04 ID:IH8buJZy
598です。名前入れてませんでした。
608名前は開発中のものです。:05/02/07 20:00:16 ID:fa2JI3Nu
やる気のある良い生徒だ。

本来ならここで配列などもっと基礎的なことを覚えるべきなんだが
せっかくのHSPだし、まずは見えるものが作りたいことだろう。
よって始めの課題は画像を表示すること、とする。
  (゚д゚ )
  (| y |)

といっても、画像を用意するのマンドクセということにもなるだろうし、こっちでサイズも指定したいのでこちらで用意した。
     (゚Д゚ ) ttp://with2ch.net/cgi-bin/pict/image-box/img20050207195011.png
     (| y |\/
自分でbmpに変換して使うように。 ワレナガラチュウクサイコトヲシテシマッタ

ソースが書けたらそのままここに書くこと。
    ( ゚д゚ )
  m9| y |)

昨日言ったpicload命令を使うわけだが、実際に使えるかの課題だ。
全くわからなければヒントをだす
609生徒。:05/02/07 20:29:07 ID:IH8buJZy
画像の名前はjiki.bmpに変更しました。

picload "jiki.bmp"
stop
610生徒。:05/02/07 20:37:12 ID:IH8buJZy
p2,p3要素は必要なさそうだったので省きました。
611生徒。:05/02/07 20:39:07 ID:IH8buJZy
連レスすいません、>>610はp1,p2,p3 でした
612名前は開発中のものです。:05/02/07 20:43:56 ID:fa2JI3Nu
おぉ、優秀だ。ちゃんとそれで画像が表示されることは確認したな。
  (゚д゚ )
  (| y |)

では次の段階に入る。
HSPには使える画面が31個ある。その画面はそれぞれウィンドウ、枠無しウィンドウ、バッファのどれかに設定できる。
ただし、初めから表示されている画面は0番目の画面であり、ウィンドウ以外の設定は指定できない。
screen bgscr buffer
この3つの命令についてヘルプを読んで、簡単なレポートをまとめよ。
     ( ゚д゚ )
  m9| y |) 次の課題だ。
613生徒。:05/02/07 21:08:09 ID:IH8buJZy
screen ウィンドウIDを初期化して使用できる状態にする。初期化する画面サイズ、画面モードのほか、ウィンドウの大きさと、実際画面に表示される大きさを指定できる。

bgsrc ウィンドウIDを初期化して使用できる状態にする。枠なしウィンドウ。初期化する画面サイズ、画面モードのほか、ウィンドウの大きさと座標を指定できる。

buffer ウィンドウIDを初期化して使用できる状態にする。メモリ上につくられる仮想ウィンドウ。画面サイズ、画面モードは指定できるが仮想ウィンドウなのでbgsrcやscreen命令のような特殊な要素はない。
614生徒。:05/02/07 21:10:17 ID:IH8buJZy
ウィンドウID0は普通のウィンドウ。
bgsrc や buffer を使うときはウィンドウID2〜31のどれかを使う

こんな感じです。
615生徒。:05/02/07 21:16:05 ID:IH8buJZy
>なお、screenで初期化されたウインドゥIDをbuffer命令で再初期化することはできません。
>buffer命令で画面を初期化した後はそのウインドゥIDが画面制御命令の描画先になります。

と書いてあったのですが、意味がよくわかりません。
616名前は開発中のものです。:05/02/07 21:21:43 ID:fa2JI3Nu
ふむふむ。優秀だ。というか、すでにHSP使える人?
そうでないのならgsel命令も併せて調べておくよう。簡単な命令だし。
1番ウィンドウはデバッグウィンドウだっけな。手を出さないのが正解だな。
  (゚д゚ )
  (| y |)

では、次の課題だ、優秀なのでだいぶ端折る事にする。
jiki.bmpをbufferとした2番ウィンドウに読み込ませ。gcopy命令で、真ん中の機体のみ0番ウィンドウに表示する。
なかなか難しいが、質問は受け付けるのでがんばれ。
617名前は開発中のものです。:05/02/07 21:37:29 ID:fa2JI3Nu
>>615
ふむ、課題を出す前にリロードするべきだったな。
既に表示されているscreenを隠すためにbufferに使って欲しくないんだろう。
隠すのが目的ならgsel ウィンドウID,-1とすれば可能だしな。
おそらくC言語で画像の扱いを統一させるのが面倒だったんじゃないかと推測する。

>初期化したあとはそのウィンドウIDが
buffer 2とすれば、次の画像操作命令(picload,line.psetなど)の描画先は2番のウィンドウになる、ということだ。
つまり、表示される画面(おそらく0番)には表示されない。
618生徒。:05/02/07 21:43:43 ID:IH8buJZy
buffer 1, 240, 240, 0
gsel 1
picload "jiki.bmp" ,0
gsel 0, 1
gcopy 1, 144, 0, 72, 64
stop

回答を書きました。
>>617の先生の言葉を参考にすると二行目の gsel 1 は不要ってことですね。
619生徒。:05/02/07 21:46:42 ID:IH8buJZy
buffer 1
picload "jiki.bmp" ,0
gsel 0
gcopy 1, 144, 0, 72, 64
stop

訂正です。
620名前は開発中のものです。:05/02/07 21:51:52 ID:fa2JI3Nu
よし、良いぞ。ただダメ出しをすると
・1番ウィンドウを使ってはいけない
・picloadの第二引数の0は要らない、他人が読むときに意味があるのかと思ってしまう
・gsel 0,1の1も不要。gsel 0でスマートに。
まぁ俺の文法を押し付けることも無いな、下二つは無視するよう
  (゚д゚ )
  (| y |)

では次の課題。そのソースに改変を加えて
・pos命令で画像の表示位置を適当な位置に変える
・gmode命令で、黒い部分を表示させなくする
621生徒。:05/02/07 22:02:01 ID:IH8buJZy
ご指摘ありがとうございます!
問題箇所を修正し、回答を書きました。

buffer 2
picload "jiki.bmp"
gsel 0
pos 270, 400
gmode 2
gcopy 2, 144, 0, 72, 64
stop
622名前は開発中のものです。:05/02/07 22:07:05 ID:fa2JI3Nu
よし、いいぞ、思ったとおりの回答をしてくれる。画像情報をちゃんと調べているあたりもいい感じだ。
次の課題は難しいぞ。
・pos命令のp1,p2をそれぞれx,yに置き換える
・描画命令をrepeat loop命令で囲い、awaitかwaitを入れる。
心してかかるように。
     ( ゚д゚ )
  m9| y |) 質問は受け付ける。
623生徒。:05/02/07 22:10:33 ID:IH8buJZy
( ´∀`)∩・pos命令のp1,p2をそれぞれx,yに置き換える

先生、課題文の意味がよく理解できません。
これはどういうことですか?
624生徒。:05/02/07 22:15:17 ID:IH8buJZy
すいません、よく考えたらわかりました!
625名前は開発中のものです。:05/02/07 22:16:23 ID:fa2JI3Nu
んー
課題の出し方が悪かったな。つまりは簡単なことだ、昨日の初めのときに

mes "どうですか"



a="どうですか"
mes a

が同じ、というのと同じ要領でやるんだ。
変数を受け入れられるかがプログラマになれるかどうかの重要な一歩だ。
626生徒。:05/02/07 22:17:25 ID:IH8buJZy
すれ違いすいませんm(__)m
回答を書きました。

buffer 2
picload "jiki.bmp"
gsel 0
x=270
y=400
pos x, y
gmode 2
repeat
gcopy 2, 144, 0, 72, 64
wait
loop
stop
627名前は開発中のものです。:05/02/07 22:29:13 ID:fa2JI3Nu
ふむふむ。よくやっている。
buffer 2
picload "jiki.bmp"
gsel 0
x=270
y=400
ここ←──┐
pos x, y   │
gmode 2   │
repeat ──┘
gcopy 2, 144, 0, 72, 64
wait
loop

後々のためにここに移動させておいてくれ。
君が間違っていたわけじゃない、先生が出した課題に対する君の回答は完璧だ。
  (゚д゚ )
  (| y |)

ではつぎに
・ループ中にx++という処理を加え、次にy--という処理も試して結果を見る。
・背景をcolor命令とboxf命令を使って黒に塗りつぶす。
     ( ゚д゚ )
  m9| y |) がんばれよ、質問は受け付ける。
628生徒。:05/02/07 22:35:33 ID:IH8buJZy
なるほど、xとyの加算と減算の処理をくりかえすためにrepeat命令を
上に持ってきたほうがいいわけですね。さっそく回答を書きました。
自機が動いて感激です!

color 0,0,0
boxf 0,0,640,480
buffer 2
picload "jiki.bmp"
gsel 0
x=270
y=400
repeat
x++
y--
pos x, y
gmode 2
gcopy 2, 144, 0, 72, 64
wait
loop
stop
629名前は開発中のものです。:05/02/07 22:39:54 ID:fa2JI3Nu
うーん、ここいらで
waitはawait 32ぐらいに置き換えておくべきかもしれん。
あと、colorとboxf命令はrepeat loopの中に入れておくと真価が出てくることだろう。
  (゚д゚ )
  (| y |)

次はそろそろキーボードに沿って動かすつもりだ。
630生徒。:05/02/07 22:45:31 ID:IH8buJZy
自機がスムーズに動くようになりました。
awaitについてはよくわからないのでとりあえずまず調べてみます。
時間が迫っているので今日はこの辺で失礼します。
どうもありがとうございました!
よろしければまた明日お願いします。では・・・
631名前は開発中のものです。:05/02/07 22:47:27 ID:fa2JI3Nu
じゃあまた。
  (゚д゚ )
  (| y |)
awaitは、waitの1/10の細かさ、と考えれば良いだけだ。
632生徒 ◆XvC2oeEZWs :05/02/07 22:48:36 ID:IH8buJZy
>>631
ありがとうございます。

それから、一応トリップを付けておきます。ではまた。
633名前は開発中のものです。:05/02/07 23:35:01 ID:fa2JI3Nu
ふむ…乙。
ところで、漏れ太郎は来ないのか。
634生徒 ◆XvC2oeEZWs :05/02/08 19:22:40 ID:Ia77eF0l
先生、いますか。
今日の課題はなんでしょう?
635名前は開発中のものです。:05/02/08 19:51:06 ID:FrRpshsA
おー、来たか。
んじゃ、今回は難しいぞ。
  (゚д゚ )
  (| y |)
だが、ひとつ聞いておくことがある、x,y座標について理解しているか?
理解しているならそれで良い、理解していなければ教える。
それと、stick命令とif命令について予習しておいてくれ。
   ( ゚д゚)
  (| y |)
636生徒 ◆XvC2oeEZWs :05/02/08 19:58:34 ID:Ia77eF0l
いえ、理解していません。
stick命令とif命令ですね、わかりました。予習しておきます。
637名前は開発中のものです。:05/02/08 20:20:34 ID:FrRpshsA
ふむ。ならば昨日の自機の位置は試行錯誤の賜物か。
教えるといっても大したことじゃない、横がxで縦がyと覚えれば良いだけでな。
他の言語では多少変えれるが、HSPでは一番左上がx=0 :y=0だ。そこから、右に1ドット進むとx=1 :y=0。
そこからさらに下に進めばx=1 :y=1となる、上ならyがマイナスになるわけだ。
  (゚д゚ )
  (| y |)
まぁ1ドットぐらいじゃ見た目にほとんどわからんけどな。

 横(x)  ( ゚Д゚) 縦(y)
   \/| y |\/

この二つの数値によって

   ( ゚д゚)二次元
   (\/\/
と、二次元空間のどの場所も表現できるわけだ。どれぐらいの位置になるかは
…本当にたいしたことにならなかった、ごめんな、ダメな先生で。

今日は必死に動かすぞ。キーボードに対応できるようにする。
先生からの手土産。まずはこれぐらいを目指すんだ。
     (゚Д゚ ) ttp://www.hossy.flnet.org/s-bbs/wingmulti.cgi?bbsname=upbbs&mode=down&no=137&oyano=114&fileno=1
     (| y |\/
一応こっちでウィルスチェックしてるが、exeを起動するのも怖い話だろうから無理して開かなくていいぞ。
638生徒 ◆XvC2oeEZWs :05/02/08 20:54:20 ID:Ia77eF0l
詳しい説明、どうもありがとうございます!

先生からの手土産ですが、内部エラー(13)が発生して正常に起動できませんでした・・・
こちらの環境のせいでしょうか?
639生徒 ◆XvC2oeEZWs :05/02/08 20:56:47 ID:Ia77eF0l
すいません、解決しました。
jiki.bmpと同じフォルダに入れたら無事起動できました。
640名前は開発中のものです。:05/02/08 21:25:45 ID:FrRpshsA
ん、あ。しまった、言ってなかったな。以後気をつける。
  (゚д゚ )
  (| y |)

では本題に入る。
pos x,yと書いてあるから、x,yという場所に自機が表示されるのはわかってるな。
つまり、x,yの値をキーボードにあわせて足し引きすれば、自機がキーボードにあわせて移動する、という理屈はわかるか?
そこでキーボードの状態を調べるstick命令が役に立つわけだ。
  ( ゚д゚)
  (| y |)
わ、わかるかな、わからなかったら遠慮せずに質問しなさい、せっかくのマンツーマンだしな。
641生徒 ◆XvC2oeEZWs :05/02/08 21:35:42 ID:Ia77eF0l
頑張ってここまでやってみました。
キーボードで動かすところまではできましたが、画面がちらちらしてしまいます。
長くなったのでソースファイルを上げました。
ttp://visualc.nobody.jp/archive/test.as
642生徒 ◆XvC2oeEZWs :05/02/08 21:38:05 ID:Ia77eF0l
・画面をちらつかないようにする方法
・キーを離したあと、自機がまっすぐ元に戻る時のアニメーションらしきものの表現方法
・キーを同時に押したとき自機画像がちらつくのを防ぐ方法
この3点が分かりませんでした。
643名前は開発中のものです。:05/02/08 22:03:29 ID:FrRpshsA
ふむふむ。感心な生徒だ。よく頑張った。
ソースを読んでポカーンとしてしまった。
  (゚д゚ )
  (| y |)
プログラムは、最小限の労力で最大の効果を発揮するように組むよう心がけると良いだろう。
短いソースなら、バグが出た後も読みやすいしな。

質問に答えるぞ、上から順にな。
   ( ゚д゚)
  (| y |)
・redraw命令を使う事でちらつきは回避できる。
redraw 2を実行し画面の描画を一時オフにしてからすべての画像処理を行い、redraw 1で一気に画面に表示する寸法だ。
・アニメーションは…コツが必要だ。こちらでは変数を使うことで回避している。追って解説する。
・一つ目の問題解決でおそらく解決することだろう。斜めに移動する場合それだけの回数自機を消して描画しているから発生している問題だ。
644名前は開発中のものです。:05/02/08 22:20:40 ID:FrRpshsA
アニメーションについてはだな。
・まず、gcopyの描画元のxの値を変数に置き換える。
・その変数の値を自機移動の時のようにキーボードに対応して変化するようにする。
・その変数の値が大きすぎたり小さすぎたりしないようにif命令で修正する。

こういう状態になっている。ソースを見せたほうが早いが、力をつけるため自分で考えさせる方針だ。
なかなか難しいぞ、変数をそのままは使えないからな。
ヒントはいくらでも出すし、ギブアップなら言ってくれればソースを見せよう。

それと、ifの移動判定の中はシンプルにしたほうが良いぞ。
645生徒 ◆XvC2oeEZWs :05/02/08 23:04:54 ID:Ia77eF0l
この問題は難しいっす;
考える時間をください。今日はここまでしか無理っぽいです。
また次来るときまでに(おそらく明日かな・・)分からなければ質問します。

今日もありがとうございました。では、また。
646名前は開発中のものです。:05/02/08 23:35:11 ID:kuuGxN49
おう。お疲れさん。
プログラムの技術を上げるには、悩むのが一番良いという先生の持論を押し付けてる形になってしまったな。
まったりとやっていくと良い。今週中には背景の星と自機弾までいけたら良いなと思っている。
   ( ゚д゚)
  (| y |)
647漏れ太郎:05/02/09 09:08:11 ID:1g/9LXp5
テスト。
648漏れ太郎:05/02/09 09:18:35 ID:1g/9LXp5
ヤターーーー先生!!アクセス規制になってますた!!(荒らしにIDがにてるとかで。
生徒。の出来具合はどうでしょうか?漏れは、全然TOTpicloadが、できませんでした(´Д⊂グスン画像ファイルがありません。ちゃんと保存はしています。
649生徒 ◆XvC2oeEZWs :05/02/09 19:30:36 ID:TCVomgy8
>>648
多分、画像をソースファイルと同じ階層に置けばできると思います。
お互い、頑張りましょう!

>先生
結局、わかりませんでした。。。
分かるところまでのソースを上げておいたのでご指摘よろしくお願いします。
ttp://visualc.nobody.jp/archive/test2.as
650名前は開発中のものです。:05/02/09 19:58:18 ID:E9aN7qSV
うんうん、生徒くんが漏れ太郎に教えてあげなさい。
人に教えることでさらに自分の理解も深まるからな。
  (゚д゚ )
  (| y |)

そのソースを読んだのだが、変数の応用に付いて理解すればあとの成長は早いことだと思う。
ifを「もし〜なら…したい」という命令だと考えてそのまま使ってしまうとややこしいことになってしまうんじゃないか。
   ( ゚д゚) ttp://www.hossy.flnet.org/s-bbs/wingmulti.cgi?bbsname=upbbs&mode=down&no=138&oyano=84&fileno=1
   (\/\/
先生のソースだ、人に見せられるほどのものでもないが頑張ってコメントをつけて読みやすくしたつもりなのでじっくり読んで欲しい。
ここで先生が新たに使っている命令は dim rnd gosub だが、背景の星を流す処理を無視すればgosubのみだ、基本的な命令なので覚えておこう。

できる限り同じような処理を書かないように気をつけ、合理的なコードを書くよう心がけると良いだろう。簡単なほどデバッグがしやすい。
また、if命令で無茶をするというのはプログラムを始めたばかりの人がよくやる手段で、それによってコツがつかめたという人も少なくないので、君の苦労も無駄じゃないぞ。先生も昔は変数を把握しきれず500行以上の読みにくいコードを書いていたものだ。
     ( ゚д゚ )
  m9| y |)わからないことは質問するよう。
651生徒 ◆XvC2oeEZWs :05/02/09 21:42:04 ID:TCVomgy8
質問です。
mx=key&4>>2-(key&1)

この行について、mxに代入しているというのは分かるのですが右辺の式の意味することが分かりません・・
652名前は開発中のものです。:05/02/09 22:04:57 ID:/m6rb1mT
ふむ…、そこに目を付けるとはなかなか感心だ。
無理に理解しなくても良いぞ。この場合。
if key&4 :mx=1
if key&1 :mx=-1
と同じ効果を出している。

key&4>>2は、keyの値に4が含まれていたら1と評価される。
key&1は、keyの値に1が含まれていたら、1と評価される。
この部分を良く考えれば、これで左右が検出できることがわかるはずだ、yの場合も一緒だ。

ビット演算という奴でプログラムをやっていくうちにいつか出くわすだろう。数値を2進数に直して考えるんだが…すまん、先生が教えるより検索したほうがずっとわかりやすそうだ。
   ( ゚д゚) ttp://www.kumei.ne.jp/c_lang/intro/no_40.htm
   (\/\/ こういうところで解説している。
まだ2進数がわからなければ無理することも無いと思う。
653生徒 ◆XvC2oeEZWs :05/02/09 22:11:57 ID:TCVomgy8
なるほど、わかりました。ありがとうございます。
今はまだ使いこなせそうにないのでとりあえずifの形でソース書いていきます('0')
654名前は開発中のものです。:05/02/09 22:35:30 ID:/m6rb1mT
漏れ太郎はどこまで行ったかな。

では次に背景の星について説明する。
ここでの背景としての価値は低いかもしれないがこれにはゲームに必要不可欠な「複数のオブジェクトを扱う」という技術が使われている。
dim命令は配列変数を用意する命令だ。
例えばdim a,32と書けば変数がa.0 a.1 a.2 a.3 a.4…a.31と、合計32個の変数が作られる。
  ( ゚д゚)a.0 a.1 a.2 a.3……a.31
  (\/\/ と、a.32が出現しないのに注意だ

.←の後の数字には変数が使用できる。
repeat loopの間ではcntという変数がHSP側から用意される、cntは「その処理がrepeat loopの何週目か」をあらわしている。
repeatのp1は、繰り返しの回数を表すぞ。repeat 32と書けば、32回処理が繰り返され、cntの値は0〜31へと増加する。
cntはcounter(カウンター)の略だと先生は踏んでいる。もし違っていたら誰か訂正してください…。

rnd はもっと簡単だ rnd a,32と書けば、aの変数に0〜31の32通りのうち一つがランダムに選ばれ代入される。
星の位置をバラバラに置くために使用している。
これまでの説明でわからないことがあれば聞きなさい、無ければそういってくれれば話を先に進める。
   ( ゚д゚)
  (| y |)
655生徒 ◆XvC2oeEZWs :05/02/09 22:43:09 ID:TCVomgy8
先生のソースがとても読みやすく勉強になりました。先生のソースを参考にしながら書いたものですが、
自機の移動、傾き、はみだし修正などほぼできあがりました。
変数をうまく利用してすっきりしたソースを書けるよう努力します。
ttp://visualc.nobody.jp/archive/test3.as
656生徒 ◆XvC2oeEZWs :05/02/09 22:45:39 ID:TCVomgy8
>>654
はい、理解しました( ´∀`)∩
657名前は開発中のものです。:05/02/09 23:39:23 ID:/m6rb1mT
んー、ん・・・、コピペ…じゃないよな。
理解しているなら手段は問わない。
  (゚д゚ )
  (| y |)

では、次は弾を発射するぞ
   ( ゚д゚) ttp://www.hossy.flnet.org/s-bbs/wingmulti.cgi?bbsname=upbbs&mode=down&no=139&oyano=84&fileno=1
   (\/\/
これが今回の手土産だ、展開してjiki.bmpと同じところにおいて起動すると良い。 Ctrlキーで発射な。
ソースファイルを付けている、が今度はコメントが少ないぞ、頑張ってこのソースを読むんだ。
ついでに、背景の星のソースも理解しておくと良い、弾の発射よりは簡潔なはず。

     ( ゚д゚ )
  m9| y |)前回同様、質問は受け付ける。
658名前は開発中のものです。:05/02/09 23:47:47 ID:/m6rb1mT
おっと、continueという命令を新しく使ってるので覚えておくように。
dim shotf,shotmax //これは、ショットが存在するかどうかを表す変数だ(有る=1 無い=0)
dim shotx,shotmax :dim shoty,shotmax //ショット画像の位置を表している
dim shotmx,shotmax:dim shotmy,shotmax //ショットの移動量を表している、ここの値を変えることで横や斜めに飛ばすことも可能だ。
659漏れ太郎:05/02/10 11:40:11 ID:aaesb0mH
風邪気味です(||´Д`)o=3=3=3 ゴホゴホ

まぁそんなことはおいといて、ソースファイルってどこですか?HSPを起動するやつですか??そこにおいたけどできません(´Д⊂グス
660名前は開発中のものです。:05/02/10 19:36:34 ID:7iIosiBj
ソースファイルってのは、命令を書いたファイルだ、拡張子はas。
どこ…と言われてもスクリプトエディタで保存するものだから…。
   ( ゚д゚)
  (| y |)

デスクトップにでもフォルダを作り、そこにソースファイルを保存して、そこに同じく画像も置けばおそらく正常に動作するはずだ。
661漏れ太郎:05/02/10 19:59:43 ID:aaesb0mH
で・・・・できた〜〜(´Д⊂グスン
662漏れ太郎:05/02/10 20:01:19 ID:aaesb0mH
次々自習して、おいつくぞ〜〜!!(多分無理・・・。でも頑張る
663名前は開発中のものです。:05/02/10 20:20:50 ID:7iIosiBj
     ( ゚д゚ )
  m9| y |)わからないことがあれば遠慮せず聞くように。
664名前は開発中のものです。:05/02/11 00:09:44 ID:vRB36wuq
先生やさしいな!
665漏れ太郎:05/02/11 00:34:02 ID:RZJwfUL8
いや、まったく。
666漏れ太郎:05/02/11 18:44:28 ID:RZJwfUL8
いや、まったく違うといういみじゃなくて、いや、まったくそのとおりっていみです。一様・・・・。
667国語の先生:05/02/11 18:56:07 ID:DKpo/0kM
     ( ゚д゚ ) <「一様」ではなく「一応」だ!気をつけろ!
  m9| y |)
668漏れ太郎:05/02/11 19:16:41 ID:RZJwfUL8
>>665は、いや、まったく違うといういみじゃなくて、いや、まったくそのとおりっていみです。一様・・・・。
669漏れ太郎:05/02/11 19:17:53 ID:RZJwfUL8
( ゚д゚)ハッ!二重レスしてしまった・・・。しかも時間差!!超(m´・ω・`)m ゴメン…
670漏れ太郎:05/02/11 19:18:45 ID:RZJwfUL8
( ゚д゚)ハッ!字間違えてた!
671名前は開発中のものです。:05/02/11 19:45:54 ID:rf8KT1Ty
漏れ太郎くん、まずは落ち着くよう。先生も>>667の先生もちょっとやそっとじゃ気にも留めないぞ。
いちよう、じゃなく、いちおう、な。話し言葉と混同しがちな単語だ。
  (゚д゚;)
  (| y |)

ま、まぁチキンな先生はこんなスレが一度に6も伸びているのを見てびびっていたわけだが…
   (;゚д゚)
  (| y |)

まず、漏れ太郎くんはこれまでの解説を理解してもらおうと思う。何かわからない部分はあるかな、先生は何度でもわかるまで教えるぞ。
生徒くんは、複数のオブジェクトの扱い方を把握するまで待つつもりだ、ゲームに一番重要なところなんでここだけは外せなかったんだが…まだ早かった…かなぁ?>スレのみんな
   ( ゚д゚)
  (| y |)

先生としては途中で挫折されるのも悲しいので、この二人がゲームを作れるようになるまで付き合うつもりだ。

     ( ゚д゚ )
  m9| y |)わからないk(ry
672漏れ太郎:05/02/11 22:58:07 ID:RZJwfUL8
'`ィ (゚д゚)/先生k(ryの意味が分かりません!!(まだ2CH暦2ヶ月くらい
まぁ、そんなことは置いといて、>>616の2番ウィンドウとは、どういうことでしょうか?
673名前は開発中のものです。:05/02/11 23:07:57 ID:/3yL5LMT
(略
の略だ。
  (゚д゚ )
  (| y |)

HSPでは使える画面が31個あるんだ。それぞれに別々の用途を割り振れるし、当然使わないこともできる。
buffer 2と書けば、2番目の画面を仮想画面とできるし
screen 2と書けば、2番目の画面をウィンドウとできる
この二つは同時にはできないが。

この2とか3とかには深い意味は無く、プログラマで適当に決めてもかまわない、変数名のようなものだ。ただし自分で混乱するなよ。
   ( ゚д゚)
  (| y |)

ピンとこなければこのプログラムを実行して見ると良い

title "0番"
screen 2 :title "2番"
screen 3 :title "3番"
screen 4 :title "4番"
screen 5 :title "5番"
stop

titleという命令は、ウィンドウの上の名前部分の文字を変更する命令だ。

ひょっとして先生は君の質問の意図が汲みきれていないかもしれない。その場合は言ってくれ。
674漏れ太郎:05/02/12 00:08:36 ID:DkHGmzY9
'`ィ (゚д゚)/先生!使える画面31個とありますが、数字によって、特徴があるのではなくて、ただの区切る番号みたいなものなんですか?
675漏れ太郎:05/02/12 00:11:57 ID:DkHGmzY9
先生!なんでかしらないけど、俺のIDちょこちょこかわってますが、全部俺です!(一応
>>667先生!修正しました!!(多分もういないと思うけど・・。
676名前は開発中のものです。:05/02/12 06:33:06 ID:uOkIwLfr
良スレsage
生徒も漏れ太郎も超がんばれ期待sage
677名前は開発中のものです。:05/02/12 12:36:11 ID:rTobld5h
そう、そのとおりだ漏れ太郎くん。
画面の番号に深い意味は無いぞ、気をつけなきゃいけないのは2つだ。
0番:screen以外にできない、screenの横幅最低値は100ぐらいだったと思う。
1番:HSP側の都合で使用不可、デバッグウィンドウなんだっけな。
大きいのを組むときは
#define mypicture 2
  ・
  ・
  ・
buffer mypicture :picload "jiki.bmp" //結局 buffer 2 :picload "jiki.bmp"と等価

のようにしておけば、どの番号がどの用途の画面か混乱しない事だろう。
あと、ID気にするならトリップを付けると良いだろう。
678名前は開発中のものです。:05/02/12 17:23:58 ID:0Kxn8DaF
このスレの雰囲気、素敵です
がんばってくれ!!
679名前は開発中のものです。:05/02/12 20:46:09 ID:5DFgcz2o
>>678
あ、ありがとう。
    (*゚д゚)
   (| y |)

ところで、最近生徒くんは忙しいのかな。
          (゚д゚ )ノミ
         (| y |
680名前は開発中のものです。:05/02/12 20:47:54 ID:5DFgcz2o
しまった、ID変わってる。>>766は私だぞ。
        (゚д゚lll)
        (| y |)

トリップ検討しようかなぁ…
     (д゚ )
     | y |) ,,,,,,,,,,
681名前は開発中のものです。:05/02/12 20:56:48 ID:5DFgcz2o
うわぁ、>>677のミスだし…。
漏れ太郎じゃないけど、先生もまずは落ち着こう…。
        (・Д・)
        (| y |ノ
682生徒 ◆XvC2oeEZWs :05/02/12 21:22:20 ID:Mv6iFdo/
先生のソースを見ながら勉強しています。
自分にはまだ難しいですが頑張って理解します。
先生もトリップ付けてもいいのでは?
683名前は開発中のものです。:05/02/12 22:32:05 ID:5DFgcz2o
うむ。感心感心。先生もうれしいぞ。
        (-д- )
        (| y |)

行番号で指定してくれればそこを分解して解説するぞー。
       ヽ(゚∀゚)ノ
          ) ),,
        ,,( (
         | y |
684漏れ太郎:05/02/15 19:04:42 ID:yEKGZsvf
ん〜説明できないけど、わかりません。
685生徒 ◆XvC2oeEZWs :05/02/15 21:14:23 ID:9vGz4Fw+
実はテスト期間中なのでしばらく休みます。
必ず戻ってきますので・・・待ってあげてください。
6861:05/02/15 22:37:22 ID:wXFw9pvi
1です。
今更顔を出せたもんではないですが、ケジメをつけるために
書き込ませていただきます。

極めて私的な理由でここに顔を出していませんでした。
今更ですがお詫びします。

人に師匠を頼めるほど自分の心根はまともじゃなかったようです…。

重ね重ね申し訳ありません。
最後に、私を育ててくれた師匠方、ありがとうございました。

それでは。
687名前は開発中のものです。:05/02/15 22:57:31 ID:qcwLY6Gz
>>684
・#defineとは

#define ○○ ××
と書いておけばソース中の○○がコンパイル時にすべて××に置き換えられる命令なのだ。
本来ならプログラム中に数字をそのまま使うのは好ましくないことなんだ。(マジックナンバーって言うんだっけな
         (*゚д゚)
        (| y |)

だから、理想では#defineを使用して、数字ではなく文字をソース中に使い、ソースを読みやすくするのだ。
本来なら、自機の位置すらも#defineで書いておくのが好ましいのだが、面倒なので省略した。
        (-д- )
        (| y |)

C言語などを学ぶときにも応用できる知識なので将来を考えれば覚えておきたい命令だ。
C言語のソース中での"NULL"はすべてコンパイル時に"0"に置き換えられていると考えて正しい。
こっちについてはまだ覚えなくて良いぞ。
     ( ゚д゚ )
  m9| y |)
688名前は開発中のものです。:05/02/15 22:58:08 ID:qcwLY6Gz
・bufferについて
画面番号は、裏画面の通し番号だ。実際は違うんだが、bufferはただの表示されないウィンドウだと考えて問題ない。
ゲーム中の画像は、まずは表示されないウィンドウにすべて描いておき、必要になり次第ゲーム画面にそちらからコピーしてくる、という手法を使う。
その"コピーしてくる"ときに通し番号が必要なのだ。
  (゚д゚ )
  (| y |)

ゲームを作るときは、2番を自機画像にして3番を敵画像にして31番を背景にして…と前もって決めて置かなくてはならない。
番号についてプログラマの君が混乱することだけは絶対にダメだ。
どの番号をどの用途に回すかは君が好きに決めると良い。
     ( ゚д゚ )
  m9| y |)
689名前は開発中のものです。:05/02/15 22:59:25 ID:qcwLY6Gz

・トリップとは
生徒くんの名前の◆XvC2oeEZWsの部分だ。
生徒君が名前を書くときに「生徒#********」と書くと、#以下の部分が暗号化されて特有の文字(XvC2oeEZWsなど)に化ける、という寸法だ。
これによって、********の部分を知らない人は生徒の名前を偽って名乗ることができなくなる→偽者防止ができる、というわけだ。
        (゚д゚ )
     旦\/| y |)

詳しいことは検索すればいくらでも出てくると思うので探して欲しい。
ちなみに、先生がトリップをつけない理由は、君たちに教えてくれるのなら私の偽者が出ても構わない、と思ってのことだ。

いつでも生徒&教師募集しているぞ。続ける気力のある人間は迷わず来てほしい。
          (゚д゚ )ノミ
         (| y |

>>686
へこたれず頑張れ。ゲームが大好きな先生はゲームを作りたいという人間を歓迎するぞ。
          ( ゚∀゚)
         (| y |)
690名前は開発中のものです。:05/02/15 23:06:11 ID:qcwLY6Gz
>>685
ん。先生も明日テストだ。こんなことしてる場合じゃないかもな。
                       ドーン!
            ,,...-:':::":~~ ,,..  .~~""''':::..,,,
        て  :::::,         :..::::::::  ,
l[( ・д・);三||]  ~"''-::..,,,. ;;;;;,,,...:::--''''"~
 .|\/\/       ノ( y(

配列変数+繰り返し処理 で多数のオブジェクトを制御する、というのは
シューティングに限らず、アクションやRPG、はたまたパズルまで広く通用し、なおかつHSP以外でも役に立つ考え方だ。

ぶっちゃけ、この壁さえ乗り越えられれば遊べるゲームが作れると踏んでいる。
がんばれよ。この壁を突破したら次は敵キャラの処理に入るが、そちらでもこの方法を使う。
          ( ゚∀゚)
         (| y |)

まずはテスト頑張れ。
691名前は開発中のものです。:05/02/15 23:14:25 ID:ZkF3YdYJ
1さん、サイトの置き土産見ました。
完全に投げ出したと思っていたのですが正直驚
きましたよ。

ここまで出来るならいっそ育成ゲームクリアを
目指してください。
692名前は開発中のものです。:05/02/15 23:43:00 ID:HfXXhT1b
>>1
すごいな。
ここまで出来れば、今後わからないことが出てきても、調べる手段を確立していることだろう。
ある意味クリアなのかもしれない。。。
693名前は開発中のものです。:05/02/15 23:46:43 ID:HfXXhT1b
のわ、あげてしまった。。。スマソ。。。orz
694名前は開発中のものです。:05/02/16 00:13:17 ID:kd6FkhxA
いや、むしろ1の旅立ちをageて見送る方向で。

1、よくやった、つらくなったら戻ってこいよ!
答えられる範囲で教えてやるから。

弾避けゲーム、結構楽しかった。
695名前は開発中のものです。:05/02/16 00:27:17 ID:bWw6cW3w
じゃあスタッフロールといくか

もちろん最後は 1 で
6967:05/02/16 02:40:49 ID:Jkn6C0lS
>>1
お疲れ様でした。
そして、1 さんの Release がいつかどこかで見られることを祈ってます。
これからもゲーム作りを楽しんでくださいね。

私はサンプルソースが完成したらアップすると書いておきながら最後にフェードアウトしてしまいました。
アップされた作品を見て、私も負けてられません。
1 さんは良き弟子でした。でも、これからはライバルです。

最後に、課題を出したり、提出された方々のソースを見るのは楽しかったですよ。
私の課題に付き合ってくださった方々、そして 1 さん、本当にありがとうございました。

>>新しい生徒さんと先生さん
いきなりのエンディングムードでごめんなさい。
1 さんのケジメに応えたくて、書き込んでしまいました。

ここに生徒と先生がいる限りこのゲームは続きますよね。
697漏れ太郎 ◆SQ2Wyjdi7M :05/02/16 18:44:35 ID:0YzobeqW
テスト。
698漏れ太郎 ◆SQ2Wyjdi7M :05/02/16 18:48:34 ID:0YzobeqW
○番ウィンドウとはどういうことでしょうか?IDでしょうか?
699名前は開発中のものです。:05/02/17 00:57:12 ID:fxXvuyA6
>>698
buffer N や screen N,640,480
で初期化したモノを N 番ウィンドウと読んでるのだと横レス
700名前は開発中のものです。:05/02/17 01:09:36 ID:niYnN38j
>>699
横レスありがとうです。

そう、HSPヘルプ内ではウィンドウIDと書かれていたな。先生は勝手に脳内変換していたようだ、すまない。
         (*゚д゚)
        (| y |)
701名前は開発中のものです。:05/02/17 21:11:02 ID:mINR4TTv
またぶった切ってしまってごめんなさい。

1さん、お疲れ様でした。
ポインタ関連のとき少し相談に乗っただけだけど、あのときみ
せてくれたやる気が私にもやる気を出させてくれました。

私もReleaseまってますよ。
702名前は開発中のものです。:05/02/18 22:57:25 ID:HVTq5O/G
先生、いまからHSPをやるならver2.6系とver3.0系どちらがいいんでしょうか?
703名前は開発中のものです。:05/02/18 23:24:46 ID:bukZrsDN
2.6系をお勧めする。
なぜなら、3.0への移住が楽な上に、現状では安定しているから。
プログラムの初歩の段階でバグに鉢合わせしたとき、いくら悩んでもわからず、真の原因が「β版の不具合」なんてのじゃ萎えると思う。
  (゚д゚ )
  (| y |)
704名前は開発中のものです。:05/02/19 00:53:20 ID:udc611AJ
ありがとうございます!
2.6では関数が使えないと聞いたのですが、大丈夫でしょうか?
705名前は開発中のものです。:05/02/19 01:50:08 ID:MpRbL8Rc
関数…?
モジュール機能が弱い(再帰が使えない)という話は聞いたが、基本的なゲームを作る部分には2.6で不自由しなかった。
   ( ゚д゚)
  (| y |)

関数が使えない、としても、おそらく使えたところで初めから使いこなすのは厳しいと思う。
  (゚д゚ )
  (| y |)
706漏れ太郎 ◆SQ2Wyjdi7M :05/02/19 10:45:52 ID:WPCQoGRT
3.0を使ってた漏れ。・・・・・・・・・・
乗り換えた方がよいのでしょうか???
707名前は開発中のものです。:05/02/19 15:58:39 ID:udc611AJ
ところで、先生が使っているのは何ですか?
708名前は開発中のものです。:05/02/20 00:46:40 ID:JEk67dol
先生は2.6。いずれ3.0が完成したらそちらに乗り換えるつもりだ。
  (゚д゚ )
  (| y |)

>>706
わざわざ乗り換えるほどでもない。「どうしても謎エラーが出る」などの状況になってから考えたほうが賢明だ。
   ( ゚д゚)
  (| y |)

言い忘れたが、C経験者なら3.0をお勧めするぞ。
     ( ゚д゚ )
  m9| y |)
709名前は開発中のものです。:05/02/21 20:02:44 ID:0scRK8sY
やっぱり漏れ太郎と生徒は一ヶ月続かなかったな。

負け犬プゲラッチョ
才能の欠片も無い消防や厨房がゲームつくろうったって無理なんだよヴォケ
710漏れ太郎 ◆SQ2Wyjdi7M :05/02/21 20:06:33 ID:tPgdO2iQ
続いてるしww(´゚c_,゚` ) プッ
711名前は開発中のものです。:05/02/21 20:57:39 ID:39MjkwM7
>709
才能は持って生まれるもんじゃない。
とマジレス。
712名前は開発中のものです。:05/02/21 23:53:10 ID:J9v209qD
>>709
反応遅ッ!
いまさらなに言ってんの?
713名前は開発中のものです。:05/02/21 23:56:14 ID:J9v209qD
ところで、俺がゲーム作るって言ったら何人が信用してくれるかな。
714名前は開発中のものです。:05/02/22 00:31:04 ID:tEDCNBiX
お前の技術と、目指す高さによるだろうな。
715生徒 ◆XvC2oeEZWs :05/02/22 17:42:47 ID:cSf+VMZY
今日やっとテスト終わったんでまたhsp頑張りますよ。
716名前は開発中のものです。:05/02/23 12:56:11 ID:21Adfto+
ガンガレ
717名前は開発中のものです。:05/02/23 19:41:39 ID:JauBdqpY
おかえり生徒くん。
  (゚д゚ )
  (| y |)

先生はちょっと、出した課題が難しすぎたんじゃないかと心配になってな。
現在の課題はちょっと置いておいて、簡単な課題を出そうと思う。
         (゚д゚ )
     宿題\/| y |)

100の大きさの配列変数varを作成し、中身をすべて1で埋めよ。
         ( ゚д゚) /
         (| y |
718名前は開発中のものです。:05/02/24 21:55:26 ID:46iSO6yb
生徒君がいくら待っても来ないので俺が答える。

dim var, 100
repeat 100 : var.cnt = 1 : loop
719名前は開発中のものです。:05/02/24 22:13:30 ID:Wduc/3Yj
正解。
最小限かつ読みやすい良いコードだ、他の生徒の良い手本を示してくれた。ありがとう。
   ( ゚д゚)
  (| y |)

         (;゚д゚)
        (| y |)"ゴソゴソ

次の宿題だ。

128の大きさの配列変数tmpを作成し、中身に偶数を小さい順に代入せよ。
          (゚д゚ )ノ
         (| y |
720生徒:05/02/24 22:54:12 ID:7troqkrF
トリップないですが一応生徒です。

>>718 すいません、どうもありがとう・

次の宿題はこんな感じですか?

dim tmp, 128
n=2
repeat 64
tmp.cnt = n+2
loop
721生徒:05/02/24 22:56:13 ID:7troqkrF
あ。違う、、、

dim tmp, 128
n=0
repeat 64
tmp.cnt = n+2
loop
722名前は開発中のものです。:05/02/24 23:15:36 ID:Wduc/3Yj
えーと、まずは落ち着いてみよう。
プログラムをするときには目標を見定めることが重要なんだ。
   ( ゚д゚)
  (| y |)

0から128ある配列変数に偶数を順番に入れていくわけだから
中身は0から256まで入るはずだ。

先生の問題の出し方が悪かったのだろうが、それだと
・tmpの64番目までにしか代入されない
・最大値がtmp.63に代入される128と少ない。
        (-д- )
        (| y |)

ただ、勘はなかなか良いぞ。ゆっくりと考えてみよう
   ( ゚д゚)
  (| y |)
723名前は開発中のものです。:05/02/24 23:56:50 ID:46iSO6yb
>>719
ありがとうございます。
これからも精進していこうと思います。
724生徒:05/02/24 23:59:38 ID:7troqkrF
何故かrepeat loopの結果が128にならなきゃいけないんだと勘違いしてました・・・

dim tmp, 128
n=0
repeat 128
tmp.cnt = n+2
loop
725名前は開発中のものです。:05/02/25 00:09:55 ID:1tywQTog
確認のためのプログラムも書いてみよう。

今回の課題の確認用プログラムなら、
0から128ある配列変数に偶数を順番に入れていく処理の後に、
配列0から20までの内容を表示するプログラムを書いてみるのだ。

本当は、配列0から128までを表示するのがいいのだろうが、そうすると
長すぎて画面に収まらないので、とりあえず20個ほど表示して
自分の入れようとしたものが入っているか、自分で確認だ。
726名前は開発中のものです。:05/02/25 00:14:37 ID:xaMji+6Y
うむ。良いぞ。その調子だ。
ちなみに先生のソースは
dim tmp,128
repeat 128 :tmp.cnt=cnt*2 :loop
          (゚д゚ )ノ
         (| y |
となる。

次の課題だ。
今回作った配列変数tmpの中で、奇数番目の値すべてに、1〜6までの乱数を加えよ
  (゚д゚ )
  (| y |)

新しく使う命令はrndだ。効率が良く、確実な処理を考えていこう。
     ( ゚д゚ )
  m9| y |)
727名前は開発中のものです。:05/02/25 00:19:41 ID:xaMji+6Y
>>725
書き込んでから気が付いた…すまん。
725先生が書かれた内容は、プログラミングとは切っても切れない関係であるデバッグの基本的な手法だ。
早期の段階で覚えておくのが良いだろう。適切な指南感謝する>>725師。
728名前は開発中のものです。:05/02/25 00:37:29 ID:1tywQTog
>>726
待て。待って、先生。
よい調子じゃないっすよ。724のコードじゃ、全部に2が入るっすよ。
tmp.cnt = n+2
の命令実行時には、nは常に0っすよ。
729名前は開発中のものです。:05/02/25 00:41:51 ID:xaMji+6Y
ぐぉっ!気付いてなかった。もうダメだ…orz
その意図があってデバッグの指南をしたんだな。

a+1がa+=1と等価で、なおかつ高速であるというHSPの仕様に甘えすぎて初歩的な見間違いをしてしまったようだ。以後気をつける。
…orz

重ね重ね感謝する>>725
730名前は開発中のものです。:05/02/25 00:50:56 ID:GnSTvh6X
漏れ太郎どこ行ったのかなぁ・・・・( ´-`)y─~
731生徒:05/02/25 22:21:06 ID:m0qRW+vF
>>725
確かに実行してみると全て2が代入されていました。
指摘どうもありがとうございます!

なぜそうなるかがよく分からなかったんですが
n+2の結果をnに代入しなおしていないから値が全て2になる、ってことですよね・・
732名前は開発中のものです。:05/02/25 22:26:42 ID:eknIQPys
まじめにやれ先生!
    (#・д・)⊃))Д´)・∵
        (| y |)

すまなかった。
        (゚д゚lll)
        (| y |)

なぜそうなるかはしっかりと考えるんだ。
ソースを脳内でシミュレートして実行することはプログラムをする上でかなり重要な手段だ。
   ( ゚д゚)
  (| y |)

それができたら>>726の課題に挑戦して欲しい。
733受験生  ◆3VUXqvbfSY :05/02/26 02:05:49 ID:HlT94j/M
・・・Cでの参加は認めれられますか?
734名前は開発中のものです。:05/02/26 15:17:08 ID:M5wbqe9F
>>733
ここの先生がCのスキルがどれだけあるか分からんが、
メジャーな言語だし誰か答えられるだろう。多分。

とりあえず、>>717とか>>719はできる?
735一星 ◆Cppn/.YI3. :05/02/26 18:31:07 ID:OLl8/jr9
なかなかいい流れだな。

>>733
いいよ。
736名前は開発中のものです。:05/02/26 19:01:14 ID:PsU2RR0+
これまで教えてきた内容までなら先生はCで作ったことがあるが
そのさきどこまで教えられるかわからなくて申し訳ない。
(;゚д゚)
(| y |)

他の先生方も答えてくれることに期待したい。すまん。
     (д゚ ;)
     | y |) ,,,,,,,,,,
737一星 ◆Cppn/.YI3. :05/02/26 19:06:44 ID:OLl8/jr9
退屈なんで、MSN Messengerをもってる生徒は、それで話さないか?
738一星 ◆Cppn/.YI3. :05/02/26 22:11:08 ID:OLl8/jr9
誰もいないな……。
739名前は開発中のものです。:05/02/26 22:32:49 ID:PsU2RR0+
  |
  | ゚д゚) そもそもここの生徒は漏れ太郎くんと生徒くんと受験生くんしかいないからな。
  と ノ
  | ノ
  |

それより、一星くんはゲームを作る気はあるのかい?
        (-д- )
        (| y |)
740一星 ◆Cppn/.YI3. :05/02/26 23:17:22 ID:OLl8/jr9
>>739
おお、あるよ。…って言うか、今作ってるよ。
741名前は開発中のものです。:05/02/26 23:49:25 ID:yvzAYBk3
何つくってんの?
742一星 ◆Cppn/.YI3. :05/02/26 23:51:53 ID:OLl8/jr9
>>741
シューティングゲーム。
まだ開発中だから見せられないけどね。
743名前は開発中のものです。:05/02/26 23:56:05 ID:yvzAYBk3
メッセンジャで意見交換しようぜ、というのはなかなか面白い
アイディアっぽいな。
捨てアドとってこようかな。。。
744名前は開発中のものです。:05/02/27 00:09:17 ID:XF3Z92Xp
意外と閲覧者いるのかな…。
  (゚д゚ )
  (| y |)

おそらく、次のステップで使うであろう素材を先出ししておく。
参加していなくてもここで密かに授業を聞いている人や、生徒のみんなのやる気を出そうと思ってな。
   ( ゚д゚)http://www.hossy.flnet.org/s-bbs/wingmulti.cgi?bbsname=upbbs&mode=down&no=140&oyano=84&fileno=1
   (\/\/
毎回微妙な出来でごめんな。
745一星 ◆Cppn/.YI3. :05/02/27 00:13:30 ID:AnimP1S7
>>744
おお、3D画像か。これ自分で作ったのか?
746名前は開発中のものです。:05/02/27 00:26:49 ID:oJF0NEnZ
おお、カッコイイじゃないか。敵画像。

ちなみに閲覧者は多くないと見る。というか、(゚д゚ )先生じゃない名無しの
書き込みは、ほぼ俺だし。
747名前は開発中のものです。:05/02/27 00:27:02 ID:XF3Z92Xp
ちゃんと先生が自分で作ったものだから安心しなさい。出来は保障しないが。
        (-д- )
        (| y |)

使用ツールはDOGA L-1だ。前回の自機画像はDOGA L-2で作った。
どちらも簡単なツールで先生が作ったもの程度なら初めて触ってから一日以内に作れるようになることだろう。
   ( ゚д゚)
  (| y |)
748一星 ◆Cppn/.YI3. :05/02/27 15:40:50 ID:PM6/Q9Re
誰かしゃべれよ…。
749名前は開発中のものです。:05/02/27 20:53:16 ID:oJF0NEnZ
すまん。だが、喋ることがないんだ。
……一星さん話題振って。自分の作ってるゲームの
近況とか付けたいシステムとか。
750名前は開発中のものです。:05/02/27 21:04:20 ID:MquXruBq
そうだな。
生徒くんも漏れ太郎くんも来ないし。
  (゚д゚ )
  (| y |)
751一星 ◆Cppn/.YI3. :05/02/27 21:05:10 ID:PM6/Q9Re
>>750
学校の勉強で忙しいのかな?
752一星 ◆Cppn/.YI3. :05/02/27 21:12:43 ID:PM6/Q9Re
>>1はどこへ行ったのだろう?
753名前は開発中のものです。:05/02/28 19:00:59 ID:s/vtWNpS
ここでjavaは教えてもらえますか?
754名前は開発中のものです。:05/02/28 20:06:22 ID:s/+ewCAa
教えてもいいけど。普通に解説サイトを見たほうがよいとは思うがな。
755名前は開発中のものです。:05/02/28 22:23:28 ID:DeR2Y1yQ
私もそう思う。そっちのほうが確実だし速い。
  (゚д゚ )
  (| y |)

ちなみに、先生のjavaは

「メインはキャンバスから派生して…」
          _, ._
        (;゚ Д゚) …?!
         (| y |)

「すべてイベントドリブンで・・・」
        _, ._
       (;゚ ∀゚) …!?
       (| y |)

「あらゆるプラットホームで仮想マシンが…」
                       ドーン!
            ,,...-:':::":~~ ,,..  .~~""''':::..,,,
        て  :::::,         :..::::::::  ,
l[( ・∀・);三||]  ~"''-::..,,,. ;;;;;,,,...:::--''''"~
 .|\/\/       ノ( y(


…という流れだったので教えられるレベルじゃないぞ。
756一星 ◆Cppn/.YI3. :05/02/28 22:39:16 ID:/4uge92V
>>755
ワロス
757一星 ◆Cppn/.YI3. :05/02/28 23:30:44 ID:/4uge92V
そういや>>520のアラウサもどうなったんだ。
758名前は開発中のものです。:05/03/01 01:07:08 ID:yN6yqKjC
Cもjavaも行けるけど、たまにしか見に来ないから教えられないな・・・
759753:05/03/01 01:57:19 ID:Sb43bM8Z
そうですか、残念です。ここの雰囲気好きで前から見てたんです、で「私も教えてもらいたい!!」と思ったんですが・・・仕方ないですよねぇ・・・
760名前は開発中のものです。:05/03/01 12:12:33 ID:2ePm7lB5
>>759
とりあえず解説サイトを追ってみて、わからないことがあったら
随時ここで聞けばいい。
761753:05/03/01 17:25:47 ID:Sb43bM8Z
ありがとうございます♪では疑問がわきましたらココで質問させていただきたいと思います。
762名前は開発中のものです。:05/03/01 20:30:15 ID:CvH/Iez/
それはそうと漏れ太郎も生徒もいねーな。逃げたか。
やっぱり小学s(ry

>>761
おう、ガンガレ。応援する。
763名前は開発中のものです。:05/03/01 20:50:01 ID:tHA6F92O
まあ、あれだ。教える方が教えられる方より楽しいからなあ。
そりゃ確固とした目的の無い生徒は消えていくさ。
764& ◆Wkmm45jlGo :05/03/01 22:38:32 ID:wvrkOZtT
>>752
見ているよ。
ゲームも作ってるよ
765一星 ◆Cppn/.YI3. :05/03/02 00:16:08 ID:JD4E2hL0
俺も何か新しいゲームを作ろうかと思ってるぜ。
766名前は開発中のものです。:05/03/02 00:16:52 ID:aIGzcSK+
アクションゲームですね?
767一星 ◆Cppn/.YI3. :05/03/02 00:17:25 ID:JD4E2hL0
企画を考えよう。
768saki:05/03/02 00:18:20 ID:aIGzcSK+
そうですね〜ていうか何人でやるんでしたっけ?
769一星 ◆Cppn/.YI3. :05/03/02 00:21:19 ID:JD4E2hL0
まあその辺は適当で。
770saki:05/03/02 00:21:49 ID:aIGzcSK+
ぁぃ
771名前は開発中のものです。:05/03/02 00:32:26 ID:Aql2y8mN
>>765
待った。いま作ってるというシューティングゲームはどうした。
772saki:05/03/02 00:33:07 ID:aIGzcSK+
何ですかそれは…。
おれらとは別かな?
773一星 ◆Cppn/.YI3. :05/03/02 00:34:21 ID:JD4E2hL0
>>771
そいつも作っているのだ。
774saki:05/03/02 00:35:20 ID:aIGzcSK+
ワカンネェ…
シューティングになったんですか?
775名前は開発中のものです。:05/03/02 00:36:33 ID:Aql2y8mN
いや742で、もともとシューティング作るって言ってたのよ。
776saki:05/03/02 00:44:08 ID:aIGzcSK+
あぁそか。
出来たらやらしてねw
777一星 ◆Cppn/.YI3. :05/03/02 00:55:20 ID:JD4E2hL0
>>saki
http://tool-ya.ddo.jp/2ch/trash-box/file/20050302004407471.exe
シューティングゲームだ。
778saki:05/03/02 01:05:07 ID:aIGzcSK+
風呂入るんで消えます。
また来ます。
779名前は開発中のものです。:05/03/02 01:06:07 ID:wKkCS3Kq
スレを私物化するなよ。
ウザいから、チャットはメッセンジャーでやってくれ。
780名前は開発中のものです。:05/03/02 01:09:36 ID:Aql2y8mN
パスかかってて開けないんだけど。
781名前は開発中のものです。:05/03/02 01:12:51 ID:Aql2y8mN
>>779
納得できる意見だ。私もそう思った。
が、別にチャット化して困るほどの価値があるスレでもないから
別に構わんのでは。
まあ正直、sage進行でやった方がよいとは思った。
782779:05/03/02 01:25:47 ID:wKkCS3Kq
>>781
いや、ここを利用したいっていう人は現に(>>733 >>753)いるんだから、
それだけで価値がある。後々の情報資産にもなる。

なので、修行スレとして、成果や質問を書き込むのに利用して欲しいと思った次第。
もうちょっと遠回しに書けばよかったと反省。ゴメンポ。
783一星 ◆Cppn/.YI3. :05/03/02 01:25:58 ID:JD4E2hL0
>>779
そりゃすまんかった…。
784名前は開発中のものです。:05/03/02 01:26:36 ID:Gs2vBXu2
去年の11月からスレを見ていますが、初めて書き込んでみるへへへ
785saki:05/03/02 18:05:22 ID:HfwcFRM9
人集まらないですねw
786saki:05/03/02 18:08:21 ID:HfwcFRM9
ところで、アクションゲームで決定ですか?>一星
787一星 ◆Cppn/.YI3. :05/03/02 18:35:35 ID:/VTbEfKV
>>786
そういうことはメッセンジャーで話そう。
788saki:05/03/02 18:37:27 ID:HfwcFRM9
ぁぃ。
ここでは募集ですねw
789名前は開発中のものです。:05/03/02 22:06:53 ID:2uuOLjZr
な、なんの募集なんだ。
         (*゚д゚)
        (| y |)

それはそうと漏れ太郎くんや生徒くん来ないなぁ…。
     (д゚ )
     | y |) ,,,,,,,,,,
790生徒:05/03/02 22:14:57 ID:sUy0h/eh
忙しくてPCつける時間があまりないのでhspとにらめっこする時間が・・・グフ。申し訳ない・・
791saki:05/03/02 22:16:31 ID:HfwcFRM9
おれらとゲーム作りませんか?
募集中〜
792名前は開発中のものです。:05/03/03 00:36:39 ID:z2gUpvD4
>>791
とりあえず、sageを覚えてくれ。
話はそれからだ。

あと、一星も同じだ。
793名前は開発中のものです。:05/03/03 01:17:45 ID:vvVO+Y3n
>>791
ゲーム製作のメンバー募集はスレ違いです。
ここには、あなたのチームのメンバーになりたい人はきません。
下のスレッドへ行ってください。

☆メンボスレ☆ Part2 美咲とメンボ
http://pc5.2ch.net/test/read.cgi/gamedev/1084691803/
794saki:05/03/03 09:09:42 ID:10w2LJqG
な?>一星
やっぱり言われると思ったよ。
ごめんなさい。
795名前は開発中のものです。:05/03/03 10:07:58 ID:n5cPv3TI
分かっててやったのか。
796saki:05/03/03 12:20:48 ID:10w2LJqG
ところでsageってのが全然分からないんですが…。
797名前は開発中のものです。:05/03/03 12:50:15 ID:3WyYzdSt
半年ROMれ
798saki:05/03/03 13:04:22 ID:10w2LJqG
了解。
799名前は開発中のものです。:05/03/03 13:18:00 ID:q6RKqZ4x
>>796
sage

http://info.2ch.net/guide/faq.html#C1
てか、ぐぐりゃいくらでも出てくるだろうに。
調べる能力はゲーム作るなら必須。
800漏れ太郎 ◆SQ2Wyjdi7M :05/03/03 20:05:06 ID:2/tPDk2D
ただいま、頭が混乱していますので(゜A。)
801名前は開発中のものです。:05/03/03 20:18:43 ID:O3dPnse6
病院池
802一星 ◆Cppn/.YI3. :05/03/03 20:41:19 ID:Y/cr54HC
>>794
「な?やっぱり」と言われても、俺は言われると思ったなんて一度も聞いていなかったぞ。
故意犯と思われると困るので言っておく。

>>792
sageる必要なんてないんじゃないか?一応>>799のページに目を通してみると、
「下がったまま内緒話をするのもまた一興。。。」と書いてあったが、
内緒話などしていないだろう。それとも、ここはやはり隔離スレということになるのだろうか?
803名前は開発中のものです。:05/03/03 21:07:08 ID:Xcv2GBR+
高橋友城を レイプしたい
804saki:05/03/03 21:31:55 ID:10w2LJqG
>一星
あれはその場しのぎの嘘だ。すまん。

高橋友城て誰?
805名前は開発中のものです。:05/03/03 22:55:08 ID:vvVO+Y3n
>>802
>>804
お前ら、頼むから空気が読めるようになるまでROMってくれ。
806一星 ◆Cppn/.YI3. :05/03/03 22:58:08 ID:Y/cr54HC
>>805
読んでますが。かってに決めつけないように。
807saki:05/03/03 23:10:55 ID:10w2LJqG
空気は読めるほうだと思いますが…。
ていうか書き込みほとんどないじゃん。
808名前は開発中のものです。:05/03/03 23:14:05 ID:sAkQpdzl
>>806
>>807
明らかに読めてないだろ…。勝手に読めてると思わないように。
809名前は開発中のものです。:05/03/03 23:17:01 ID:q6RKqZ4x
こいつらの空気に従ってんだろ
面白くないから、俺はもうこのスレ見ないだけだな
少し前まで、いい感じだったのに急につまらなくなったな
810一星 ◆Cppn/.YI3. :05/03/03 23:19:34 ID:Y/cr54HC
>>808
>>807と一緒にするなよ。そうするから俺が空気を読めていないように見えるわけだ。
まあ、確かに、俺が>>807を連れて来たのは問題だったかも知れないが…。
811saki:05/03/03 23:26:14 ID:10w2LJqG
(*゚д゚)
812名前は開発中のものです。:05/03/04 00:08:48 ID:kCjJscxc
軌道修正。
以後、学習以外に関する私語は厳禁だ。
ここは先生と生徒の学びの場だということを忘れるな。

今の膠着状態は、生徒たちの詰まっている点がわからなくて、進めないでいるのでは。
混乱中と言われても、実際どこどう説明していいかわからないからな。
>>717に対する回答が>>718
>>719に対する回答が>>726
なのは理解しているのか?わからないのなら、ここから質問してみるといい。
また、それ以前で詰まっているのであれば、その旨を伝えること。
ちなみに、今出ている課題は、>>726だ。
813名前は開発中のものです。:05/03/04 04:26:38 ID:+nr3XanP
>>726
こう?
for マクロ使ってみますた。repeatでもできるけどね。

dim tmp, 128
for i, 1, 128, 2 : rnd tmp.i, 6 : tmp.i++ : next
; repeat 128 / 2 : i = cnt * 2 + 1 : rnd tmp.i, 6 : tmp.i++ : loop

; 確認用
notesel buf
repeat 128 : noteadd "tmp." + cnt + "\t= " + tmp.cnt : loop
objmode 1 : mesbox buf, winx, winy
stop
814名前は開発中のものです。:05/03/04 04:37:06 ID:tHgnNHRJ
>>806,807
読めてねえよ。おまえら、こんなのほほんと話が出来るのは
たまたま、このスレがマタリな雰囲気だからってだけだぞ。
815saki:05/03/04 11:31:29 ID:OuL/L3Ck
すいません。黙ります。
816名前は開発中のものです。:05/03/04 11:45:16 ID:Sep4zO6v
> 学習以外に関する私語は厳禁だ。
> ここは先生と生徒の学びの場だということを忘れるな。
817名前は開発中のものです。:05/03/04 14:01:52 ID:ziqd1fvQ
>>813
完璧だ。
奇数という言葉から、カウンタの増分を操作できるforの使用を思いついたのはすばらしい能力だ。
HSPマクロに慣れていない先生は読むのに手間取ってしまったがな。
repeatで書かれた部分に関しては文句無しだ。
  (゚д゚ )
  (| y |)

その下の確認用の部分、noteaddの特性を生かした合理的な方法で先生は感動した。
先生が\tはタブであると知らなかったというのは内緒の話だ
(;゚д゚)
(| y |)

ともあれ、実力者であることは一目でわかった。素直に賞賛する。
         ( ゚д゚) /イエッサ!
         (| y |

>>800
どこに混乱しているのか言ってくれれば解説するぞ。
それすらわからなければ…メッセのアドレス晒しなさい。
        (-д- )
        (| y |)
818名前は開発中のものです。:05/03/04 14:08:05 ID:ziqd1fvQ

>>一星 saki
sageは、メールアドレス入力欄に半角でsageと入れることによってスレッドの高さを変えずに書き込みをする方法だ。
このスレッドが上がることは君たちには迷惑ではないかもしれないが
漏れ太郎くんや生徒くん、それに私にとってはただの晒しあげだ。
     ( ゚д゚)
     m9 |)

2chにはいろんな人がいる、そのことをしっかりと頭において2chを活動してもらいたい。
     (д゚ )
     | y |) ,,,,,,,,,,
819一星 ◆Cppn/.YI3. :05/03/04 19:16:05 ID:oETu6pKK
>>818
> >>一星 saki
> sageは、メールアドレス入力欄に半角でsageと入れることによってスレッドの高さを変えずに書き込みをする方法だ。
いや、sageくらい知っているよ……。
だからsakiと一緒にするなと言っているのに。わからない人達だ。
>>802でsageの必要性に疑問を呈しているのに、sageを覚えろと言われても、話が噛み合わない。
sageを覚えろと言う前に、なぜ必要なのかということを言うべきではなかったか?
age進行のスレも存在するし、俺は新しいレスが付いたスレが上がるのはごく自然だと思うわけだが、
察するに、幼稚な者達がその上がったスレを見て荒らしたりするわけだろう?
sageが必要であるという理由さえ説明してくれれば、すんなりとsageにして、解決したのだ。
えらそうに説教らしきことをしてくるが、その前に俺が書いたことをよく見てもらいたいものだな。
820名前は開発中のものです。:05/03/04 19:37:02 ID:tHgnNHRJ
>>819
なぜあんたは先生さんが作ってくれた雰囲気を、一気にギスギスさせる書き込みをする。
しばらく、名無しに戻って頭を冷やしてきたほうがよいぞ。
821名前は開発中のものです。:05/03/04 20:01:30 ID:ziqd1fvQ
>>819
で、晒しあげるな、といった先生の意思は伝わったのかな?
   ( ゚д゚)
  (| y |)

>>>802でsageの必要性に疑問を呈しているのに、sageを覚えろと言われても、話が噛み合わない。
sageを覚えろというのは>>792、必要性に疑問を投げかけているのは>>802だ。
過去の書き込みと話が噛み合わなくて当然じゃないか?

>察するに、幼稚な者達がその上がったスレを見て荒らしたりするわけだろう?
それだけじゃない。幼稚でなくても住人が増えることを嫌ってのsage進行なところもあれば、単に人に見られたくない、板に迷惑をかけたくないなど様々な理由がある。
sageの意義についてしっかり自習してきなさい。
        (-д- )
        (| y |)

>俺は新しいレスが付いたスレが上がるのはごく自然だと思うわけだが
もしここがage進行のスレなら問題ない。しかし、普通2chではむやみにあげられることを嫌う。
なぜsageが必要であるかに詳しい説明は要らない、これは2chでの礼儀だ。
そういう意味でも「半年ROMれ」というアドバイスは適切だと思う。
(;゚д゚)
(| y |)
822一星 ◆Cppn/.YI3. :05/03/04 20:03:42 ID:oETu6pKK
>>820
まちがったことを言っていると思ったから、反論したまでだ。
それによって雰囲気が多少悪くなってしまうのは、し方のないことじゃないか?
雰囲気を作ってくれたと言うが、それによって俺がまちがっていたということにして丸くおさめてしまうのはよくない。
そういうことなかれ主義の考えはよした方がいいぞ。
823名前は開発中のものです。:05/03/04 20:05:35 ID:ziqd1fvQ
ちなみに、sakiくんのほうが空気が読めている。
もし一星くんのほうが空気が読めている、と思うのならその部分を詳しく説明してみなさい。
   ( ゚д゚)
   (| ? |

>えらそうに説教らしきことをしてくるが、その前に俺が書いたことをよく見てもらいたいものだな。
先生は書き込みを全部見ているぞ。
君の書いたどのレスをよく見てもらいたいんだ?
        (-д- )
        (| y |)

長文を書いてしまうあたり先生もちょっと平静を欠いているな。頭冷やしてくるよ。
   ||
  ||
( / ⌒ヽ
 | |   |
 ∪ 亅|
  | | |
  ∪∪
   :
   :

 ‐ニ三ニ‐
824名前は開発中のものです。:05/03/04 20:07:31 ID:tHgnNHRJ
>>822
典型的な逆切れ荒しになってるな。叩かれるのも当然。
まあ、これも経験だから反泣きで必死に反論しろ。
825一星 ◆Cppn/.YI3. :05/03/04 20:09:35 ID:oETu6pKK
>>823
> 先生は書き込みを全部見ているぞ。
> 君の書いたどのレスをよく見てもらいたいんだ?
例えば、
> sageる必要なんてないんじゃないか?一応>>799のページに目を通してみると、
> 「下がったまま内緒話をするのもまた一興。。。」と書いてあったが、
> 内緒話などしていないだろう。それとも、ここはやはり隔離スレということになるのだろうか?
の部分だ。sageの必要性に疑問を呈しているわけだな。
これを読んでいたとして、じゃあなぜsageそのものの意味の説明をするのだ?

>>824
俺は冷静に対処している。かってに理性を失っているような言い方をしないでもらいたい。
826名前は開発中のものです。:05/03/04 20:18:08 ID:ziqd1fvQ
ああ、君はsakiくんと一星くんの同時にsageを教えた、の一点に関して怒っているだけか。
なんというか、リアルな小学生らしい。先生は久々に感動したぞ。
       ヽ(゚∀゚)ノ
          ) ),,
        ,,( (
         | y |

例えば、じゃなくて、それらしい書き込みはそれ一つだな。まさしく詭弁だ。
あれは面倒だったから同時に説明したまでだ。謝罪が必要か?
         (*゚д゚)
        (| y |)

君は知っていることをもう一度言われただけでキレて反論を続けるほど幼稚なのかな?
そんな小さな事を重く受け取って反論を続けることに悲しくはならないのかな?
        (-д- )
        (| y |)

それと、君のほうが空気が読めている、という弁論は無しか?
   ( ゚д゚)
  (| y |)
827一星 ◆Cppn/.YI3. :05/03/04 20:19:30 ID:4Wr4UvGv
例えば、>>779
> スレを私物化するなよ。
> ウザいから、チャットはメッセンジャーでやってくれ。
に対する俺の返答だ。
俺は、>>783
> >>779
> そりゃすまんかった…。
と、しっかりと謝罪している。ところが、sakiは、
> 785 名前: saki 投稿日: 05/03/02 18:05:22 ID:HfwcFRM9
> 人集まらないですねw
> 786 名前: saki 投稿日: 05/03/02 18:08:21 ID:HfwcFRM9
> ところで、アクションゲームで決定ですか?>一星
と、私物化するなと言われながらもまだこんな話をしている。
また、俺はそれに対して、
> >>786
> そういうことはメッセンジャーで話そう。
と、彼の心ない発言を食い止めようとしているわけだ。
しかし、彼はその後も、>>791で、
> おれらとゲーム作りませんか?
> 募集中〜
などと言っている。

以上で、俺がsakiよりも空気をよく読めているということがわかっていただけただろうか?
sakiを批判するような形になってしまったが、
> ちなみに、sakiくんのほうが空気が読めている。
> もし一星くんのほうが空気が読めている、と思うのならその部分を詳しく説明してみなさい。
と、2人を比べるような形で言われ、差がわかればいいわけなので、そうした。
828名前は開発中のものです。:05/03/04 20:29:38 ID:ziqd1fvQ
          _, ._
        (;゚ Д゚) …?!
         (| y |)

それは、空気が読めている、と言うのか?無駄なレスをしないようsakiに注意しているだけで、住人の皆さんへの配慮ではないな。

ここは、先生、漏れ太郎くん、生徒くんがゲーム作りの勉強をしているという流れだった。
そこに君が入ってきて空気を無視し、こちらと関係の無いことを話し続け、果てはsakiくんまで連れてきた。
そして、住人の皆さんに怒られたsakiくんは「これ以上発言しても墓穴を掘るだけだ」と空気を読み、ROMをし始めた。
対する君は、自分の株を下げ続けているという空気が読めず現在必死になって反論しているわけだ。
     (д゚ )
     | y |) ,,,,,,,,,,

あと、2chを利用するなら専用ブラウザを使ってくれ、暇があればUDにも参加してくれ
Mission UD:白血病等のがん患者を救え!191Ligands
http://etc3.2ch.net/test/read.cgi/entrance/1109502484/
         ( ゚д゚) /
         (| y |
829saki:05/03/04 20:29:48 ID:OuL/L3Ck
>そういうことはメッセンジャーで話そう。
それはおれら二人の喋りのことだろ。

それから、おれは初めに新しいレスでやった方が良いんじゃないか?
といったはずだが…。
830名前は開発中のものです。:05/03/04 20:31:20 ID:tHgnNHRJ
ええと、必死で過去ログをあさってなんとか自分が正しいことに
しようとしている姿は空気に沿っていると言えるのでしょうか?
831名前は開発中のものです。:05/03/04 20:34:08 ID:K3XzngOl
>>一星、saki
単純な話、君は何も提供してないんだよ。わかるか?ここは、不特定多数に発信してる事を理解しろ。
先生さんや生徒の人らが、いい感じで雰囲気作って、見てるものが見て良かったって思える雰囲気になったのに、アホが迷い込んで、ぎゃあぎゃあわめいてるんだよ。だれがおまえの書き込み見て、見てよかったと感じる?だから、みんな怒ってるんだよ。
事なかれ主義?アホか。おまえは、人がどう思うか何も考えずに自分の言いたいこといいちらかしてるだけ。
sakiとおまえのどっちが空気読めてるかとか、誰も興味ないんだよ。

とりあえず、先生さん、キレないで。。。
でも、なんかもう元の雰囲気には戻りそうも無いな。
832一星 ◆Cppn/.YI3. :05/03/04 20:36:14 ID:4Wr4UvGv
>>826
あなたはどうも人が怒っていることにしたいらしいな。
勘ちがいもほどほどにしてほしい。
わざとならば、悪質な個人攻撃だな。

>>828
> 無駄なレスをしないようsakiに注意しているだけで、住人の皆さんへの配慮ではないな。
もちろん、注意したのは住人への配慮だったわけだが?
それ以外に何があるのだろうな。

> そして、住人の皆さんに怒られたsakiくんは「これ以上発言しても墓穴を掘るだけだ」と空気を読み、ROMをし始めた。
> 対する君は、自分の株を下げ続けているという空気が読めず現在必死になって反論しているわけだ。
ふむ…。またかってに必死だということにしたいというのが伺えるな。
それは空気じゃなく、ただ単なる多人数による弾圧だ。
まちがっているものを放置しておいてはいけない、だから俺は反論しているのだ。
わかってくれる人はきっといるはずだ。
833一星 ◆Cppn/.YI3. :05/03/04 20:39:01 ID:4Wr4UvGv
>>830
> なんとか自分が正しいことにしようとしている
その見解が既にまちがっているよ。それが君達の過ちの原因ではないかな?
何度も言うようだが、俺はちゃんと理性的に発言している。
834名前は開発中のものです。:05/03/04 20:42:57 ID:sDkGJuy4
こんなに香ばしいスレ久しぶりに見た
835名前は開発中のものです。:05/03/04 20:43:27 ID:tHgnNHRJ
          _ , -―-、
       , 'ニニニ、::::(0::::::::::ヽ、
         ̄ ̄ヽ':::::::::::::::  ヾ      みてごらん一星 ◆Cppn/.YI3.を
            ):::  ....   \     あれが厨房だよ
           /    ::::::::::::::::::ヽ
           /      :::::::::::::::::|
          /       :::::::::::::::::|
          /        :::::::::::::::::::|
         /        ::::::::::::::::::::|
         |         :::::::::::::::::::::|
        . |         :::::::::::::::::::::|
   _ , ―-、|         /::::::::::::::/::::|
   \ヲ'⌒ヽ:|         /:::::::::::::::/::::::|
     ト`_ ノ::|        /:::::::::::::/::::::::|
    人;;;;;;;::::;:|        |:::::::::::::/::::::::/
   /γ  `:::::|       |::::::::::::/::::::::/
   / (  ヽ   :::|       |:::::::::/::::::::/   ふーん、なんだか
  {  }  )  ::|       |::::::::{::::::::/    頭悪そうだね、ぱぱ
   | /   }   ::|       .ヽ::::|:::::::/
   ) {  /   ::|       .ヽノ ::::/
   } |  (    :λ         :::|
  ( ヽ、 )    ノヽ        ::::|
   ヽ,   ~    〈  ト、_  |    ::::::ヽ、
   (     ,' ノ  |   |~7  ::::::::::::::`ヽ、
    ヽ,、,、,γ' ノ, -‐W~フ {  ト、:::::::::::::::::::ヽ、
   ∠____ト-┘z__,―' ̄Σ Z  ̄ヽ―-、_ノ
             '―z_,┴'~
836saki:05/03/04 20:46:26 ID:OuL/L3Ck
>一星
明らかなスレ違いということを理解せずに迷惑なカキコしたおれらが悪いよ。

本当にすいませんでした。
837名前は開発中のものです。:05/03/04 20:49:58 ID:ziqd1fvQ
ここまでスレッドにへばりついて反論を繰り返す姿はどう考えても必死で怒っている。
そうでなければこうも固執して自分の正当性を主張する理由が無い。
仮に、君が正しいと認められる事に何の意味があるのかな?君が満足するだけだな?
     ( ゚д゚ )
  m9| y |)



ん、あ、しまった。私としたことが。>>831さんありがとう。平静を取り戻そう
      <(゚д゚ )>
        | y |

これ以降先生はこの一星を無視する。住人の皆さんは気が向いたら適当に煽って遊んであげて欲しい。
荒らし・厨の詭弁に付き合うとろくなことが無いのは先生も今日、身をもって学習した。
          (゚д゚ )ノミ
         (| y |

気を取り直して次の課題だ。生徒くんや漏れ太郎くんが見てくれているかはわからないが…。
   ( ゚д゚)
   (| ? |

課題:64個の要素を持つ配列変数objx(中身はすべて0〜640の乱数)とobjy(0〜480の乱数)を作成し。
そのすべての場所にpset命令で点を打て。
         ( ゚д゚) /
         (| y |

今回は非常に難しいので、バシバシ質問して欲しい。
     ( ゚д゚)
     m9 |)
838名前は開発中のものです。:05/03/04 20:57:55 ID:tHgnNHRJ
先生さんは偉いなあ。
ちゃんとスレの方向性を元に戻そうと努力してるよ。

褒めるべきところは褒めて、やさしく問題点を解説してあげてるし
教える側としては、かくありたいと思える姿だ。
839一星 ◆Cppn/.YI3. :05/03/04 20:58:28 ID:4Wr4UvGv
> ここまでスレッドにへばりついて反論を繰り返す姿はどう考えても必死で怒っている。
> そうでなければこうも固執して自分の正当性を主張する理由が無い。
> 仮に、君が正しいと認められる事に何の意味があるのかな?君が満足するだけだな?
まあ、一般人は、必死で怒っている反論者としか討論を交わしたことがないのだろうな……。
責めてもしょうがないのかも知れないな。
俺のように、正しいことを証明することが非常に重要と考えている者に会ったことがなかった、
もしくは、見過ごしていたのだろう。非常に残念なことだ。
きりがないので、この辺で終わらせておこう。
840名前は開発中のものです。:05/03/04 21:10:44 ID:tHgnNHRJ
>>839
よしよし。いろいろ指摘したいことはまだあるが、ここで終わらせておこうと
判断するのはなかなか出来ないことだ。偉いぞ。
以下は、平常時進行に戻って書き込もうぜ。
841名前は開発中のものです。:05/03/04 21:47:13 ID:tSz+OiPU
先生がせっかく綺麗な幕引きをしようとしたのに>839で捨て台詞か。
馬鹿につける薬は無いとは、まさにこのことだな。
842名前は開発中のものです。:05/03/04 21:55:56 ID:/BnEvMjC
殺伐としたスレに救世主が! 
 .__ 
ヽ|・∀・|ノ ようかんマン 
 |__| 
  | | 



      ___ 
 . __ |・/ 
ヽ.ノ∀・|ノ 食べる?
 |__| 
  | | 
843名前は開発中のものです。:05/03/04 22:06:39 ID:ziqd1fvQ
ありがたくいただこう
     ( ゚〜゚)ムグムグ
     (| y |)

それはそうと前回出した課題が意味不明だな。
白いウィンドウの中に黒い点がランダムに64個打たれた物を作るのが今回の目標だが
わかりにくければこの課題の内容について詳しく言おうと思う。
遠慮せずに訊いて欲しい>漏れ太郎くん、生徒くん
         ( ゚д゚) /
         (| y |
844名前は開発中のものです。:05/03/04 22:09:41 ID:cEGDEORv
先生!0〜639,0〜479だと思うのですがそこにつっこみはなし?
845名前は開発中のものです。:05/03/04 22:16:15 ID:ziqd1fvQ
           。  。 
          / /       ポーン
         ( д )
         | y |)


また失念していたようだな…。
rndの引数に640を使えば0〜639になる、というだけで実際には0〜639と課題を出さなければならなかった…。
  (゚д゚ )
  (| y |)

うっかりの多い先生ですまない…。修正感謝する>>844
        (-д- )
        (| y |)
846名前は開発中のものです。:05/03/04 22:43:22 ID:+8nD2gHc
これでどうですか?
dim objx,64
dim objy,64
randomize

redraw 0
repeat 64
rnd objx.cnt,640
rnd objy.cnt,480
pset objx.cnt,objy.cnt
loop
redraw 1
stop

もしかして、いきなり参加はまずかったですか?
847名前は開発中のものです。:05/03/04 22:52:21 ID:tHgnNHRJ
うーむ、この場が掲示板だという事実から仕方ないこととは言え
一人が回答してしまうと、次の人が純粋に問題を見れなくなってしまうよな。

答えには特定の単語とか決めて、それを含めてやったりすればどうだろう。
答えを見たくなければ2ちゃんブラウザでNGワード登録すればよしということで。
848名前は開発中のものです。:05/03/04 23:18:28 ID:cEGDEORv
あっさりこなす846にはより高度な課題をこなしていただきたいと思う今日この頃

>>847
胴衣
あと問題見ただけで答えいきなり分かるようならスルーしる
出来る問題解いてもたいして経験値入らんから
849名前は開発中のものです。:05/03/05 00:44:55 ID:L01D5OKN
んじゃー少し高度な課題。

まず、以下を data.txt として保存する。
10,10
40,10
40,40
10,40
10,10

このテキストは、「x,y」を1つの座標として、それを改行で区切ったものである。
このファイルを読み込み、1行目の座標から2行目の座標、
2行目の座標から3行目の座標…… と、最後まで線分でつないで描画しなさい。
ただし、テキストから読み込んだ座標群を一旦、数値型配列に収め、
その配列を元に線分の描画を行うこと。

データ読み込み、解析、描画の複合問題。
850名前は開発中のものです。:05/03/05 01:34:13 ID:nRrub7vu
もうすぐ春休みだから、教える側はじっと待っていれば教わる側もやってくるさ。
851名前は開発中のものです。:05/03/05 03:06:06 ID:2+jhDRhC
>>842
こんなもんで。
全角スペースを使って無理やりインデントを入れてみた。コピペするときは注意。

sdim datas, 32000
bload "data.txt", datas
index=0

gosub *GetXY
repeat
 old_x = x : old_y = y
 gosub *GetXY
 if x = "" : break
 line old_x, old_y, x, y
loop
stop

*GetXY
 getstr x, datas,index,',' : int x : index += strsize
 getstr y, datas,index,',' : int y : index += strsize
return
852名前は開発中のものです。:05/03/05 05:13:10 ID:L01D5OKN
>>851
まず、ファイルの読み込み。
このスクリプトだと、固定サイズ(約32K)の領域を確保しているが、
こういう定数(マジックナンバ)を書くのはなるべく避けるとよい。
例えば、この場合ファイルのサイズが小さすぎる場合は無駄なメモリを使うし、
大きすぎる場合は領域のサイズを超えてしまう場合がある。
これを避ける方法は、例えば exist によって、あらかじめファイルサイズを調べて、その分だけ確保する等。

次に解析。
実は課題文には、解析と描画を明確に分ける為に「一旦、数値型配列に収めて」と書いたが、
このスクリプトは、解析と描画を同時に行っている。もちろん今回のような例ならば、これでもいい。
だが、実際にゲーム製作をする際には、通常は一旦ファイルのデータを解析して、
利用しやすいデータ形式の変数に入れてから使う(何度も使う為)ので、留意しておくこと。

このスクリプトでは、getstr を使う事で、カンマと改行が入り混じったファイルを
シンプルに解析している。また、解析部をサブルーチンにすることで、
可読性・再利用性を高めている。素晴らしい。
共通部分を見つけたら、積極的にサブルーチン・関数にするのはいい事である。

最後に描画。
line で行っているのはいいが、少し残念な所は、カレントポジションを利用していない点。
例えば、最初の gosub *GetXY と repat の間に、pos x, y と書き、
line old_x, old_y, x, y を、 line x, y と書き換える。
これだけで、old_x と old_y は必要なくなり、よりシンプルに書く事ができる。

総評。
サブルーチンを使ったり、getstr を上手く利用したりと、基礎の応用ができている。
細かい点で難があったが、問題なく動作するので誤差の範囲。
この調子でがんばってもらいたい。

人によって、答えが変わると思うので、引き続き、他の人の答えも募集中。
853名前は開発中のものです。:05/03/05 14:21:18 ID:2+jhDRhC
すまん、「一旦、数値型配列に収めて」をすっかり忘れていた。
854名前は開発中のものです。:05/03/05 19:53:40 ID:uFc2GQw+
先生の望んだ流れになってうれしさのあまり言葉も無いぞ
         (*゚д゚)
        (| y |)

>>846
良いプログラムだ。先生もまさかここまで簡潔にこの処理が書けるとは思わなかったぞ。
目標に対し、最小限の労力で接近する。プログラマとしての素質を十分に持ち合わせているようだ
        (-д- )
        (| y |)

だがそのプログラムではわざわざobjx,objyを配列にする意義は薄い。
変数の準備と描画を別の箇所に分けることによって、今後の拡張の幅が大きく広がることだろう。
  (゚д゚ )
  (| y |)

て、もう既に他の先生が教えていらっしゃるな。感謝する。
     (゚д゚*)>
     (| y |
855名前は開発中のものです。:05/03/05 19:54:07 ID:uFc2GQw+
>>846
いきなりの参加でもまったく問題ない。
だが、ここはゲーム作りの勉強を目的とした場所であって、先生の課題をこなすことが最終目標ではない。
学びに対する真摯な姿勢と確かなプログラミング能力をもって、君からも生徒くんへと積極的に教えてあげて欲しい。
   ( ゚д゚)
  (| y |)

ちなみに、今回のプログラムは一度配列変数に入れることによって、次の段階で縦方向に移動させるつもりだった。
先生のコードは
//変数の準備
dim objx,64 :dim objy,64
repeat 64 :rnd objx.cnt,640 :rnd objy.cnt,480 :loop
//描画
repeat 64
pset objx.cnt,objy.cnt
loop
stop
  (゚д゚ )
  (| y |)
となっている。
856名前は開発中のものです。:05/03/05 20:03:07 ID:2+jhDRhC
次の流れとしては
絵を表示→移動する絵→複数の移動する絵
というのがよさげかな?
857名前は開発中のものです。:05/03/05 21:39:20 ID:uFc2GQw+
うん、そうだな。
移動する絵、は上のほうでもう教えてしまって、現在複数のオブジェクトを動かすことを学習している。
  (゚д゚ )
  (| y |)

新しくこのスレに来た人のために、生徒君が達成したところまでの状態を貼っておこう
   ( ゚д゚)ttp://www.hossy.flnet.org/s-bbs/wingmulti.cgi?bbsname=upbbs&mode=down&no=141&oyano=114&fileno=1
   (\/\/

ソースファイルは私のもので、メインループ中でコメントアウトされているところがこれから教えていこうとしている部分だ。
ショット周りが一時しのぎで恥ずかしいぞ。
(;゚д゚)
(| y |)
858名前は開発中のものです。:05/03/05 21:57:58 ID:O3yTUuci
(;゚д゚)
(| y |)
↑マジウザスwwwwwwwwwwwwwwwwww


859名前は開発中のものです。:05/03/05 22:00:35 ID:O3yTUuci
(;゚ д
゚)
     (|  y | 
)
バラバラ死体↑
860名前は開発中のものです。:05/03/05 22:07:20 ID:O3yTUuci
(; ゚ 
   д
゚)
     (|  y | 
)

↑マジ尊敬wwwwwwwwww
861名前は開発中のものです。:05/03/05 22:11:59 ID:O3yTUuci
(; ゚ 
    д
           ゚ )  
   )   
 
|   
  y    | 
                  )
 
↑マジマヌケスwwwwwwwwwwwww
862名前は開発中のものです。:05/03/05 22:17:55 ID:O3yTUuci
(                 ;         ゚ 
                     д                  
           ゚ )  
                               )   
    
|   
                y     
                     | 
                    )
sage
 
863名前は開発中のものです。:05/03/05 22:49:47 ID:WgYqdTzs
何度も言うようだが、俺はちゃんと理性的に発言している。
864名前は開発中のものです。:05/03/05 23:11:17 ID:uFc2GQw+
         (*゚д゚)
        (| y |)
865名前は開発中のものです。:05/03/05 23:19:20 ID:S8PGHue6
頭がおかしいやつはほっとけ
866一星 ◆Cppn/.YI3. :05/03/06 00:10:59 ID:RIGR/K6c
新たな問題が発生したので書き込ませてもらうが、
>>858-862の、ここの講師を中傷する書き込みは俺のものではない。
まあ、万が一だが警察沙汰になったような時は、俺がやったわけではないので
IPでもなんでも調査してもらって結構だが、あんな幼稚なことをするものかと否定しても、
俺は今回の議論で、ただ自分を正当化しようとムキになって反論を続けるだけの厨房という
レッテルを貼られてしまっているので、違うと言っても信じてもらえはしまい。
再び言っておくが、俺ではない。ほかの者が、俺を陥れようとしたのだろう。
この議論で俺がさんざんに煽られ、まさにイタズラの恰好の餌食となっているからな。

>>863
何度も言うようだが、俺はちゃんと理性的に発言している。
867名前は開発中のものです。:05/03/06 00:21:32 ID:rh2H6eoH
先生なんで照れてるんですかw
でもさすが先生というだけあってしっかり動いてるな…
なんか触発されたんで横シューでも作るか
868名前は開発中のものです。:05/03/06 00:23:25 ID:9xypS2WK
>>867
なるほど!
先生が自機で、死んだらバラバラに飛んでいくんだな。
869シューティングゲーム:05/03/06 19:24:23 ID:o5eqxO7w
メッセンジャー使えなくなったwwうぇっwwwwww
870名前は開発中のものです。:05/03/06 22:48:42 ID:wHA7XZHx
先生、過去問まとめていい?
871名前は開発中のものです。:05/03/06 23:35:40 ID:FVVSn6/2
まとめてくれると助かる。
(;゚д゚)
(| y |)
872870:05/03/07 02:32:44 ID:0g5pKTk/
まとめてみた
ttp://nama.ifdef.jp/ore/

未整形。とりあえず課題と回答のみ。
まとめ方適当ですが後で修正します。
生徒君たちのソースが見れない、あるいは質問&応答で
課題がはっきりしていない部分は発展としてまとめました。
出来れば先生のソース等も載せたいのですがよろしいでしょうか?

独断と偏見で付け足したり削ったりるので、良いかどうかはわかりません。
問題があれば言ってもらえれば暇な時に直します。
とりあえず一応の形になるまでは作りますがそれ以降は無理しません。
他にやりたい方がいれば丸投げします。

以下とりあえずまとめてみての感想
生徒君たちに合わせてあって、流れが一定でないので
そのまま入門書的なものにするのは_
っていうかこれだけの箇所切り抜くだけでもだいぶ疲れたので今日は寝ますおやすみ
873名前は開発中のものです。:05/03/07 02:38:30 ID:0g5pKTk/
うわ文章長いごめん
874名前は開発中のものです。:05/03/07 03:20:53 ID:OvBzQGS0
>>872
GJ。
875ヤンキー:05/03/07 15:02:55 ID:npX/OuDk
VC++5.0持っているんだけど十分か?
VC#とVC++どっちがいいのよ?
なぁ?
876ヤンキー:05/03/07 15:09:39 ID:npX/OuDk
あげ。
VC#とVC++どっちが簡単なんだ?
VC#ってよぉ、プロンプトに文字表示するだけで行数多くねぇ?
877名前は開発中のものです。:05/03/07 16:31:16 ID:BzNXBeTq
>>872
GJ、まさかサイトまで用意してくれるとは思わなかった。まことに感謝する。
      <(゚д゚ )
        | y |)

よ、読み返してみると先生の教え方にまだまだ改善点がありそうだな…
(;゚д゚)
(| y |)

再アップロードだ。
先生のソース、画像は自由に使ってもらって構わない。改変配布商用なんでもござれだ、もし使えるならの話だが。
生徒君や漏れ太郎のソースは…一度公開されたものだからいいだろうと思って一緒にしておく。
後学のために役立てて貰えたらうれしい。もし意図的に消したものだったら謝る。
   ( ゚д゚)ttp://www.hossy.flnet.org/s-bbs/wingmulti.cgi?bbsname=upbbs&mode=down&no=142&oyano=114&fileno=1
   (\/\/

もし勉強のために「先生!こういう素材作れやオラァ」というのがあったら言ってくれれば作ろう。
     ( ゚д゚)
     m9 |)

先生も無理はしないが。
878名前は開発中のものです。:05/03/07 16:35:33 ID:BzNXBeTq
>>876
Cには詳しくは無いが、いろんなプログラマの話を聞くに
C++ :本格的なゲームを作るのに適している
C#  :そのゲーム製作に合わせたツールを簡単に作るのに適している
だそうだ。あくまで話を聞いたまでで私が実際に使ったわけではないので確かなことはいえない。
あまり役に立たなくてごめんな。
          (;゚д゚)
        (| y |)
879受験生  ◆3VUXqvbfSY :05/03/07 18:39:57 ID:qLLe43rW
C++ 速度重視
C# 作りやすさ重視
だと個人的には思いますね。確かに基本的なことをさせる時C#のほうが手間になる事がありますが、長く書いていくと、スッキリ出来るのはC#のほうだと思いますよ。
880870:05/03/07 22:49:28 ID:GR5o23SY
ttp://nama.ifdef.jp/ore/
サイト整形完了。
先生のサンプルや画像も置かせていただきました。
あと、生徒くんたちのサンプルも置かせていただいてますが、
もしここを見てて問題があるようなら言ってください。
削りますから。

にしても生徒くんたちが来ないとこのスレ動かない…。
881名前は開発中のものです。:05/03/07 23:05:28 ID:BzNXBeTq
>>880
おおお、綺麗にまとめられていて感謝感激。
品質が高くなるとさらに改良を求めたくなってくる先生の性分
・画像をpngにしてHPに貼り付けてくれるとソースが見やすくなると思う
・回答例を背景と同じ色にすれば勉強したい人にやりやすいと思うけど…正直これはどうだろう
無理はして欲しくない、もし暇なときに気が向いたらで良い、当然却下でも良い。現状ですごく感謝している
  (゚д゚ )
  (| y |)

や、偉そうでごめんな。本来は私がやるべきことだというのに。
         (*゚д゚)
        (| y |)

確かに、生徒君や漏れ太郎君来ないな…。
  |
  | ゚д゚)
  と ノ
  | ノ
  |
882870:05/03/07 23:29:26 ID:GR5o23SY
今日は暇なんで弄る余裕あります。
で、自機の画像をpngで表示しました。

>回答例を背景と同じ色にすれば
っていうのはHSPのエディタと同じ色という意味ですか?
883名前は開発中のものです。:05/03/08 00:21:04 ID:KyNIufc5
>>882
よくあるじゃん。文字を範囲選択しなければ見えないようにするやつ。
つまりは
<div style="background-color=blue;color=blue">hello</div>
ってことだ。
884882:05/03/08 00:25:04 ID:Je5ieIEb
>>883
ああ、なるほど。
要は回答を見えないようにってことですね。
了解でーす。
885名前は開発中のものです。:05/03/08 00:31:57 ID:KyNIufc5
ガンバレヨー
886一星 ◆Cppn/.YI3. :05/03/08 00:40:42 ID:vqsyA4x6
サンプルは、一番初め、自機が左に傾いているようだが、これはし様?
887名前は開発中のものです。:05/03/08 00:59:33 ID:Bt7ThG50
>>876

簡単(理解しやすい)かどうかと言うとC##
だが、ゲームを好きなように作るって言う意味ではC++
どっちにしろゲームを作ろうと思ったらどっちも難しいな。
888名前は開発中のものです。:05/03/08 01:29:38 ID:KyNIufc5
いや、俺的にはHSPでゲーム作る方が難しいと思うのだが。
正直自分で大量の変数管理できるほど、頭の回転よくないです。
グローバル変数はやめて〜。
889名前は開発中のものです。:05/03/08 02:20:42 ID:Bt7ThG50
でもC系は何をどうしたらいいかいきなりつまづく可能性はあるのかなぁとかさ。
グラフック系のライブラリとかも自力でなんとかせんとだめだし、探すにしろね。

HSPはゲームを作れるようにできてるから簡単なのかなと思ったんだが、プログラム慣れしてたら逆に面倒臭いのかね?
890名前は開発中のものです。:05/03/08 02:23:47 ID:/GlJmWmv
今コンソールでタイピングソフトを作ってるのですが、
やはりGUIでタイピングやシューティングのゲームを
作ってみたいと思っていたところこのスレを発見しました。
HSPで進んでいるようですが、C++での新規参加はOKですか?

GUI関係もそうですが、最近C++をはじめたのでクラスの設計など
ソースにいちゃもん付けていただけるとありがたいです。

Cについては「猫でもわかる〜」や「WisdomSoft」で書いてあることは
あらかたやりました。
891名前は開発中のものです。:05/03/08 02:31:04 ID:KTfe63z7
>>890
その場合新たな師を募ることになる希ガス
それでもいいならいいんじゃない?
言語は限ってないみたいだし
892名前は開発中のものです。:05/03/08 19:36:21 ID:hcDGSq/E
>>886
多分バグ
893名前は開発中のものです。:05/03/08 23:38:40 ID:Jy6xmT2B
>>886
m9(^Д^)プギャー
お前頭悪いな、さすが小学生
ビジュアル面を考えて狙ってやってるんだろ。直そうと思えば代入するだけで済むし

よっぽど先生の粗探しをしたくてしょうがないんだな。
894名前は開発中のものです。:05/03/09 00:42:06 ID:GJuq2swb
>>890
先生が現れるかどうか、分からないがとりあえず歓迎しよう。
895名前は開発中のものです。:05/03/09 01:10:02 ID:kAXcDYf8
>>890

先生やるほど時間ないから簡単な事くらいしか答え返せないけど、先生現れる事を見越して質問とか出してみたらどうだ?

今行き詰まってる事とかある?
896名前は開発中のものです。:05/03/09 21:05:18 ID:+RAH6E4+
>>890
先生と名乗れるほど実力はありませんが、先輩としてアドバイスしましょうか。
897名前は開発中のものです。:05/03/09 21:31:46 ID:Wt8J/79A
良い人キタ━━━━━━(゚∀゚)━━━━━━ !!
898名前は開発中のものです。:05/03/09 23:12:29 ID:GJuq2swb
先生、そろそろ新課題投下希望であります!
899890:05/03/10 02:10:33 ID:5ndxJFNa
>>894,895,896
ありがとうございますm(_ _)m

とりあえず今作っていたタイピングソフトをアップしてみます。
ttp://2ch.sakura.ne.jp/uploader2/src/up0018.zip
テスト用なのでワード順が毎回固定です。一応ローマ字自動認識です。

そろそろGUIに移行してみたいのですが、いまいち踏ん切りがつきません。
このままCUIで勉強するべきでしょうか?
GUIの勉強をしたほうがいいのでしょうか?
漠然とした質問ですいません。
900名前は開発中のものです。:05/03/10 12:45:02 ID:aPMi59f8
>>899
SetCurPosとprintfを合わせた関数を
Consoleクラスに作ったほうがいいのでは

ここまでできてたらGUIに作り変えるのは余裕かも
実際面倒なのはアニメーション…
901名前は開発中のものです。:05/03/10 13:09:09 ID:aPMi59f8
そういえばこれってAdapterパターンかな…
クラス設計ならデザインパターンとかいいかもな

知ったかぶってごめんなさい
902名前は開発中のものです。:05/03/10 19:49:02 ID:QtldUsL7
漏れ太郎くん生徒くん見てるか?
         ( ゚д゚)ノシ
         (| y |
903896:05/03/10 21:26:36 ID:2W6JaBHt
こんばんは、先輩++です。

>890氏が希望するいちゃもんを探すべく、ソースをチラチラと眺めてみました。
>900氏の言うとおりかな?と思います。

_getch、puts、printfなど標準入出力関数をConsoleのメンバに含めれば、
タイピングゲームロジックとユーザーインターフェースを分離できて
移植も簡単だと思いますよ。

ConsoleクラスをCreateWindow関連APIとDrawTextあたりで書き直せば
そのままWin32アプリになる。とか、これこそオブジェクト指向の醍醐味だと
勝手に考えています。
904先輩++:05/03/10 21:42:24 ID:2W6JaBHt
>890氏
”そろそろGUIに移行してみたい”との事ですが。

まずは、どんなGUIライブラリがあるか調べる事をオススメします。
そしてサンプルなどを試してみるといいでしょう。
使い心地をレビューしているサイトもあります。
そうやっているうちに、モチベーションも上がりますよ。


追記
>900氏
>>そういえばこれってAdapterパターンかな…
普通の所有関係にしか見えませんでした(汗
905名前は開発中のものです。:05/03/10 21:54:37 ID:aPMi59f8
>>904
その通りですorz

出直してきます…
906名前は開発中のものです。:05/03/10 22:07:16 ID:VHB+zXlD
【GoFのデザパタ23個言えるかな?】
ポケモン103匹(だっけ?)言えるかな?という歌が昔あったけど。
それのパロディで、デザインパターン23個言えるかな?という歌。もともと英語な名前なので
歌には成りにくい気がするが、そこは気合でカバーだ。
ちなみに、この歌はインタプリンタ・パターンで処理される。
907890:05/03/10 23:15:03 ID:5ndxJFNa
>タイピングゲームロジックとユーザーインターフェースを分離
なるほど。CUIとGUIで違うのは入出力なんだから、分けた方が確かに移行しやすいですね。
905師匠,先輩++師匠ありがとうございます。

デザインパターンも気になりますが、とりあえず
グラフィックスライブラリを探してみました。
wxWidgetsというのを見つけたので試してみようと思いますが、おすすめとかありますか?
908名前は開発中のものです。:05/03/11 13:03:17 ID:unMCfhwW
>>906
151匹
909名前は開発中のものです。:05/03/11 22:12:36 ID:LwK+QGh9
俺いきなりDirectXから入ったな・・・
C++とWINDOWSでゲーム作るならありなんだけどな。
先生が現れにくいだ罠
910先輩++:05/03/11 22:43:52 ID:AbU1dJLg
>>907
wxWidgetsは、クラス設計がしっかりしていて良いと思いますよ。
オープンソースだしサンプルも豊富なので、勉強になるでしょう。
そしてマルチプラットホームなので、より多くの人に触れてもらえます。

そして、合わせてSTLを勉強するのがいいかもしれません。
先日のサンプルでstringを使っていたようなので、予備知識はあるのかな?

オススメのグラフィックスライブラリですが、
890氏のセンスと方向性から考えると”SDL”です。
でも、まだちょっと早いかもしれませんね。
911890:05/03/12 07:13:43 ID:NGSHnYXS
>>先輩++師匠
STLは知らないです(^^;
stringクラスが便利そうだったので、それだけ使ってみました。

>>SDL
なるほど。そういうものがグラフィックスライブラリなんですね。
wxWidgetsなんかはGUIツールキット(?)というらしいですね

課題もないようなので、とりあえず↓みたいなのを作ろうと思います。
ttp://yakumo.ifdef.jp/

文字や画像の動かし方をまったく知らないので、頑張ります。
912890:05/03/12 10:08:53 ID:NGSHnYXS
wxWidgetsの環境整えるのに3時間もかかったorz
913先輩++:05/03/12 10:39:46 ID:YPDRX3sX
>>912
890氏おつかれさま。
demo/lifeをビルドして動かしてみてください。癒されますよ(笑)

>文字や画像の動かし方をまったく知らないので、頑張ります。
life.cppにヒントが隠されてますね。キーワードは"OnPaint"です。

#私はどうしても抽象的な表現になってしまうので、良く解らないときは指摘してくださいー。
914名前は開発中のものです。:05/03/12 14:02:42 ID:++yZn7qf
>>991
STLはC++標準ライブラリで、C++のテンプレート機能を使った言語機能拡張用の
ライブラリだと思えばよい。
C++単体では難しい文字列の扱いや、連想配列、ソート処理などの
定型アルゴリズムの提供などがその機能だ。
知らないかもしれないが、既に使ったことがあるかもしれないぞ。
例えば cout << "hello"; のcoutは、STL提供のクラスだし。

SDLは、グラフィックスだけではなく音声や、他のマルチメディアデータも扱える。
915890:05/03/12 18:36:23 ID:5+dcY9mk
コンストラクタについて質問があります。
以下はwxFrameクラスを継承したmyFrameクラスのコンストラクタです。
MyFrame::MyFrame()
 : wxFrame(param)
{
 ...
}

上を
MyFrame::MyFrame()
{
 wxFrame(param);
}
としてしまうと、正常に動かないんですけどこれはどういう動作をしているんでしょうか?
基底クラスのコンストラクタを呼んでいるような気もしますが。
916先輩++:05/03/12 20:02:34 ID:YPDRX3sX
>>915
MyFrame::MyFrame() : wxFrame(param)
{
 ...
}
これはparamを引数にして基本クラスのコンストラクタを呼んでいます。


MyFrame::MyFrame()
{
 wxFrame(param);
}
これは、           ↓※1
MyFrame::MyFrame() : wxFrame()
{
 wxFrame(param); ←※2
}
※1の部分が省略されている、と考えていいと思います。
つまり基本クラスにparamが渡っていません。
そして※2では、thisの指す自分の基本クラスとは別の、wxFrameのインスタンスを生成してます。
(しかも受け取る変数がないので、捨てられるー)

#メンバ関数にも同様に出来たと思ったけど、忘れました(笑)
917890:05/03/12 21:54:13 ID:89LPNz6E
>>先輩++師匠
なるほど。ありがとうございます。

とりあえず文字を動かすことができたのでアップしてみました。
http://yakumo.ifdef.jp/

ちらつきがひどいです(^^;
ダブルバッファリングのヒントをいただけるとありがたいです。
918名前は開発中のものです。:05/03/12 22:23:28 ID:wtToYsKl
もう一回訊いてみる

漏れ太郎くん、生徒くん見てるかい?
          (゚д゚ )ノミ
         (| y |
919先輩++:05/03/13 00:59:17 ID:U7rZXpXs
>>917
お疲れ様です。サンプル拝見しました。
えー残念ですがDLLが足りないようです(;´ω`)

配布するDLLの数・サイズを考えると、スタティックリンクの方がいいかもしれません。
試しにビルドしたのでUPします。かなり小さくなりますよ。
http://gamdev.org/up/img/2425.zip
↑VC++6.0スタティックリンク版

あと、text.cppで数箇所newしてるようですが、対応するdeleteが見つかりません。
スマートポインタであれば大丈夫かもしれませんが・・・
私もwxWidgetsを良く知らないので、確認してみてください。

>ちらつきがひどいです(^^;
>ダブルバッファリングのヒントをいただけるとありがたいです。

すでに自分でヒント発言しておりますが(;´ω`)
「ダブル バック バッファ GDI」この辺をキーワードに検索してみてください。
920890:05/03/13 01:23:24 ID:aR/cbc+l
>>先輩++師匠

>DLLが足りないようです
あれ?変ですね。wxWidgets入れてない別のマシンで試してみましたけど、
wx24_bcc.dllを同じフォルダに入れたら動きましたよ。

>対応するdeleteが見つかりません
完全に忘れてました(^^;

http://yakumo.ifdef.jp/
こんな感じかな?という微妙な具合で試してみました。
背景のちらつきはなくなりましたが、動く文字が微妙にちらついています。
なぜだろう・・・。
921生徒 ◆XvC2oeEZWs :05/03/13 01:52:12 ID:r4rYTgox
一応生きてます・・
922890:05/03/13 01:53:25 ID:aR/cbc+l
>スタティックリンク版
BorlandC++でリリースビルドしたあと、圧縮しても650kBでした。
でかいです(;;
923先輩++:05/03/13 02:06:12 ID:U7rZXpXs
>>920
私の環境だと
"CC3250MT.DLLが見つからなかったため・・・"で実行できないですねー( ´ω`)
原因究明中です。

>>922
DLLは3M近くになりますね。
単体を落としてテストするなら、上記の様な場合もあるし、
スタティックリンクの方が良いのかな?と思ったのでしたー。
924890:05/03/13 02:24:01 ID:aR/cbc+l
>CC3250MT.DLL
すいません。BorlandのランタイムDLLも必要だったんですねm(_ _)m
さっきのものとセットでアップしておきました。
925先輩++:05/03/13 08:33:34 ID:U7rZXpXs
>890氏
ダブルバッファリング版確認しました。
Borlandのランタイムだったんですね。

ちらつきも、気にならないレベルだと思います。

次はwordの本格実装とキー入力あたりでしょうか?

(1を聞いて10を知る890氏に追い越されそう。)
926先輩++:05/03/13 09:49:09 ID:U7rZXpXs
ちょっと気になってたwxWidgetsにおけるnewとdeleteについて、
資料を見つけたので貼りますね。
ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx16.htm

927890:05/03/13 11:06:13 ID:aR/cbc+l
おはようございます。

ttp://yakumo.ifdef.jp/
STLのリストを使ってWordクラスを管理してみました。
結構いい感じになってきました♪はじめからレベル20なのはチェックのためです。
打てる自信はありません(笑
928890:05/03/13 11:07:37 ID:aR/cbc+l
リストで一つ疑問。
今は下のようにして全てのワード要素にアクセスしているのですが
list<Word>::iterator p = wxGetApp().m_word.begin();
while(p != wxGetApp().m_word.end()){
 p->GetS(str);
 mdc.GetTextExtent(str,&width,&height);

 //文字がDEADLINEまで行ったとき
 if(p->Move(width,height)==FALSE){
  p = wxGetApp().m_word.erase(p);
  wxGetApp().m_status.ExpUp();
 }
 mdc.DrawText(str,p->GetX(),p->GetY());
 ++p;
}

はじめは
p = wxGetApp().m_word.erase(p); を
wxGetApp().m_word.erase(p); と書いていていて、
なんだかかくかくした動きになっていました。
ttp://yakumo.ifdef.jp/arc/04_2.zip

eraseで指定する「p番目の要素」をlistがはじめから数えていくのであれば、
要素を消してチェーンをつなぎ変えた後に同じ番号でアクセスしようとすれば
「p+1番目の要素」にアクセスできると考えたのですが、違うみたいですね。

エラーで落ちてくれれば、明らかに間違いなので分かった気にもなるんですが
微妙に遅くなるだけなので、余計に気になります。
929名前は開発中のものです。:05/03/13 11:36:12 ID:YFAtjP8c
listは双方向リストだよ
それに対してvectorは動的配列
930名前は開発中のものです。:05/03/13 13:20:40 ID:aKb9S26R
>>921
この時期は忙しいもんな。
時間ができて、なおかつ気が向いたらまとめサイトのttp://nama.ifdef.jp/ore/sensei.htmlの課題をこなして行って欲しい
  (゚д゚ )
  (| y |)

気が向いたらで構わない。
課題がわからないときにはここで勉強している人の邪魔にならないよう、メッセンジャのアドレス晒しなさい。
        (゚д゚ )
    メッセ\/| y |)


それはそうと、次スレ建てるのかな。
        (-д- )
        (| y |)
931890:05/03/13 21:21:24 ID:1p4RFzkw
ぱんぱかぱーん☆とりあえず一段落ついたのでアップ。
一応ゲームになってるのでやってみて感想いただけるとありがたいです。
ttp://yakumo.ifdef.jp/

ちょっとHTMLに力を入れているのは一緒にやる人を募っているから(汗

ようやくゲームっぽいものになって、ゲームレベルの設定にちょっと悩みました。
レベルアップで急に速くなっても焦るし、ずっと遅いままでも飽きるし。

難しいところですね。
次はタイトル画面を作成してみたいと思います。
932890:05/03/14 03:01:28 ID:+duNXoLo
勢いで「ぱんぱかぱーん」とか書いてる自分が恥ずかしい。

タイトル画面作成にあたって、現在のクラス設計を見直してみました。
今ウィンドウ関係で存在するクラスが
MyAppクラス
MyFrameクラス
MyCanvasクラス

MyAppクラスでMyFrameのインスタンスを作成してウィンドウ枠を作っています。
MyFrameはMyCanvasのインスタンスを作って、MyFrameにMyCanvasを貼り付けています。
(MyCanvasはwxWindowの派生クラスでwxFrameクラスの基底クラスもwxWindowクラス
なので、こういう考え方でいいのかちょっと自信がない)

そこで、今まで必要なメンバ(Statusクラスなど)をMyAppクラスで持っていたのですが
ゲーム自体はMyCanvasクラスで完結しているので、全部MyCanvasに持ってきました。

本題のタイトル画面はもう一つwxWindowを継承したTitleCanvasクラスを作って
MyFrameクラスから切り替えようと考えているんですが、
設計はこういう感じでいいのでしょうか?

毎回長文ですいません。

>>929
すいませんが、どういった意味合いでvectorを引き合いに出されているのか
いまいちつかめません。
933先輩++:05/03/14 07:39:01 ID:WaNF1Fa4
>>890
個人的意見ですが、

MyCanvasクラスは描画クラスで完結し、
MyAppまたは別のクラスでゲームロジックを実装するかな。

現在MyCanvas::Drawがゲームロジック+バックバッファ処理になっているのを

ProcGame() //キー入力によるゲーム処理
Update(bitmap); //バックバッファへ描画の更新
Flip(dc,bitmap); //バックバッファをDCに転送

に分ける

時間がないので、またゆっくりソース見たいと思います。
934漏れ太郎 ◆SQ2Wyjdi7M :05/03/16 18:38:49 ID:8Jv2NPFo
こっちもかろうじて・・・・
935名前は開発中のものです。:05/03/16 18:59:31 ID:yg0wzY6E
ぉ、見てるのか。
  |
  | ゚д゚)
  と ノ
  | ノ
  |

では課題を出すぞ、漏れ太郎くんも好きなところから始めて欲しい。

max=100
//準備
dim x,max :dim y,max
repeat max
rnd x.cnt,640 :rnd y.cnt,480
loop

//描画
repeat max
pset x.cnt,y.cnt
loop
stop

このソースの意図を汲みなさい。
        ( ゚д゚) /
        (| y |

実行しても良いし改変するのも良い。
わからない命令や用法があればここで訊きなさい。

大体で良い、大体でいいんだ。何が起こっているのかわかれば。
936生徒:05/03/16 23:02:33 ID:Wbdg++QN
>930
まとめサイトがあっただなんて!感謝です。
メッセはMSNとヤフーどっち派ですか?
937名前は開発中のものです。:05/03/16 23:37:47 ID:mIqR3sTc
呼び込み乙
938名前は開発中のものです。:05/03/16 23:49:42 ID:DLEtFMUR
>>936
MSN派。
私と会話する程度の用法なら捨てアドで全く差し支えない。
         (*゚д゚)
        (| y |)

まとめサイトを作ってくれた>>870=>>872さんには感謝の言葉も無い。
        (-д- )
        (| y |)

それはそうと、935さんが私に代わって課題を出してくれたようで感謝。
「理解しろ」というのは良い課題の出し方だと思う。これからは見習わせてもらおう。
       く(;゚д゚)
        | y|)
939生徒(java):05/03/17 02:55:00 ID:GbSQ6yaQ
以前javaの指導を希望した753です。
これからAA作成ソフトを作ろうと思っていますので、わからなくなったら聞きにきますので師匠どの(誰?)よろしくお願いいたします。
940名前は開発中のものです。:05/03/17 03:25:48 ID:dpGx08za
>>939
「殿」は目下に対して使う言葉。
941名前は開発中のものです。:05/03/17 15:24:13 ID:GbSQ6yaQ
>>940
申し訳ございません(・ω・` )
942名前は開発中のものです。:05/03/19 15:09:03 ID:1z58sX4g
動きがないね・・・
943生徒:05/03/20 01:05:31 ID:Dr+aazqG
春休みに入りました。時間に余裕ができるはずなので
>870さんのまとめサイトを活用しつつ
判らないことがあればここで質問させていただきます、よろしくお願いします
944名前は開発中のものです。:05/03/20 01:57:15 ID:9oFgyyOR
こちらこそ、よろしくお願いします。
945名前は開発中のものです。:05/03/20 10:47:27 ID:yg8HG3ey
>>943
どうかがんばってくれ。
  (゚д゚ )
  (| y |)

IDがなんだかかっこいいな。ドクター。
         (*゚д゚)
        (| y |)
946名前は開発中のものです。:2005/03/24(木) 21:32:14 ID:DQbzum5c
保守sage
     (д゚ )
     | y |) ,,,,,,,,,,
947名前は開発中のものです。:2005/03/24(木) 22:54:01 ID:dBKkS+10
それは自分が賢者という自惚れですか
948名前は開発中のものです。:2005/03/25(金) 23:39:18 ID:xgGdE0mv
あめゆじゆとてちてけんぢや
949名前は開発中のものです。:皇紀2665/04/01(金) 16:50:14 ID:NGKevVAO
なかなか進まんね…
950名前は開発中のものです。:皇紀2665/04/01(金) 17:06:36 ID:HPpJPuZx
そうだな…生徒くんにはがんばってほしいところだ。
   ( ゚д゚)
  (| y |)
951名前は開発中のものです。:皇紀2665/04/02(土) 02:46:39 ID:4n43i57i
あ、普通のブラウザからだと人大杉で書き込めなかった。。。
952名前は開発中のものです。:2005/04/07(木) 14:18:49 ID:Eed41nA+
保守
953名前は開発中のものです。:2005/04/07(木) 15:16:39 ID:Gn25ways
こんなスレがあったのか
僕も最近HSPを始めたんです参加していいですか?
954名前は開発中のものです。:2005/04/07(木) 15:33:17 ID:Eed41nA+
やりたいことがはっきりしてるならそれを言って先生を募ればいいと思う。
HSPでシューティングならとりあえずまとめサイトから?>>930
955名前は開発中のものです。:2005/04/07(木) 15:59:18 ID:Gn25ways
ゲムデブにあったテトリスのをやろうかなって考えてます。
956名前は開発中のものです。:2005/04/07(木) 16:25:19 ID:XKS6z519
段階的学習?このスレでやるのん?まあいいか。
>>955はHSPどの程度できるのー?
957名前は開発中のものです。:2005/04/07(木) 16:39:19 ID:Gn25ways
>>956
すいません。嫌ならやめときます。
段階的学習スレに活気がなかったので・・・
HSPは1週間前に始めたばかりなのでもぐらたたきを作ったくらいです。
958名前は開発中のものです。:2005/04/07(木) 16:46:09 ID:XKS6z519
いや、別に嫌なわけではなく。
スレ違いだとか言われるとめんどうだなぁとか思っただけだから別に良いよ。
助けになれるならここでやろう。

もぐらたたき作れるなら結構良い感じだとおもう。
Level1はHSPだから問題ないとして、Level2〜3ぐらいはおk?
959名前は開発中のものです。:2005/04/07(木) 17:18:29 ID:Gn25ways
3はよくわかんないけどできそうだと思う。
960958:2005/04/07(木) 17:23:08 ID:XKS6z519
じゃあとりあえずそれを。
わからないところがあれば出来る範囲で答えます。

…教えるほうが分からんとしゃれにならんのでとりあえずこっちもテトリス作ろう。
他の先生いればカモーン。
961名前は開発中のものです。:2005/04/07(木) 17:27:08 ID:Gn25ways
がんばります。どもです。
と言っても今から用事があるので明日になるかも知れないです。
962958:2005/04/07(木) 17:40:59 ID:XKS6z519
むしろゆっくりの方がこっちも気が楽でいいです (`・ω・´) b!
963名前は開発中のものです。:2005/04/07(木) 19:40:05 ID:GZ9ot05X
うちもちょうどテトリス作ってたのよね
ちと出来を見てくれまいか

http://www.uploda.org/file/uporg71687.zip.html

自分で言うのも何だが動きだけ見るとなかなかいい出来の希ガス
段階的学習が見れないので何かに挑戦してみるかな
964名前は開発中のものです。:2005/04/07(木) 20:07:09 ID:dRVAjJYW
>>963
最新のDirectX入れたけど動かないよー。
d3dx9d_24.dllとかでひっかかる。デバグ版とかだったりしない?

ゲムデブの本家は落ちてるっぽいけど、Wikiの方で段階的学習見れるよ。
テトリスとDQ風RPG以外は。
ttp://gamdev.gozaru.jp/w/00398_00000.html
965名前は開発中のものです。:2005/04/07(木) 21:25:29 ID:GZ9ot05X
なんかSDK入れないとだめっぽいですね…
よくわからんですがデバッグ版かもしれないです

ちともうちょっと改良してからまたうpしてみます
966名前は開発中のものです。:2005/04/07(木) 23:12:07 ID:bBcatSYw
次スレは980に任命する。
967名前は開発中のものです。:2005/04/07(木) 23:22:24 ID:nwNBfLg/
教えると言った人です
とりあえずテトリスの動きだけ作って見たのでうp
教えると言っといて作れないのはまずかろうとちょっぱやで(死語)作ってみますた
ソース汚すぎて他の人が読めたものではないので、必要なら整理してから公開します
テトリスの動きってこんなもんでいいよね(´・ω・`;)
次のブロック表示とか点数とかは今のところないよ

ttp://www.uploda.org/file/uporg71846.zip.html

>>965
楽しみにしてまーす
968名前は開発中のものです。:2005/04/08(金) 00:02:30 ID:KjZzuRbG
操作方法とか何も載せてなかった(´・ω・`)
左右は←→、落下は↓、回転はスペースとCtrlですよ、と。
969名前は開発中のものです。:2005/04/08(金) 01:55:08 ID:p949QS7Q
(´・ω・`)さて、一々後で確認するのも面倒なのでHSPでのテトリスについて>>961君に伝言ですよ、と。

とりあえず貴方のレベルが分からないので、分からないところに答えるというところから始めようと思います。
その際、このスレの流れを汲んで課題&回答で進めていくつもりです。
分からないところを解決できるよう誘導するつもりですのでご心配なく。

それで出来れば以下のコトを教えてください。
・他のプログラミング言語に触れたことがあるか
・HSPの配列は自由に扱えるか
・ラベルとgosubを使ったルーチンがわかっているか
・HSPのモジュールが扱えるか(これは使えなきゃべつにいいです)

自力でもぐらたたき作ったそうなので調べる力や構成力は僕なんかよりあるんじゃないかと踏んでます。
HSPの基礎の基礎からやる必要があるのかちょっと分からないです。
要望等あれば言ってください。

あと、僕からの希望。
テトリスできるまでやりましょう。
んでは、よろしくおねがいします。


…次スレか、早いもんだね(´・ω・`)
970名前は開発中のものです。:2005/04/08(金) 02:39:27 ID:yjx1wXIW
7行プログラミングスレで発表されたHSPテトリス。80桁×14行。
ただし、短くする為に外法をいくつも使っているので、真似してはいけません。
(といっても、解読すら難しいと思いますが…)

V=20:screen ,200,400:title "0":dim B,4:dim C,10,V:dim D,10,V:randomize:F=2:boxf
dim A,4,7:A=1,4,5,6,5,6,10,14,5,6,9,13,5,6,9,10,2,6,5,9,1,5,6,10,1,5,9,13:repeat
wait 1:if G=0{rnd N,7:memcpy B,A,16,,16*N:H=3:I=-4:J=0:G=1}J-F:if J<0{K=0:L=1
gosub Z:if M=0{N=0:repeat 4:O=B.cnt\4+H:P=B.cnt/4+I:if P<0{N=1:break}C.O.P=1
loop:if N{break}dim Q,V:R=0:repeat V:S=cnt:N=0:repeat 10:N+=C.cnt.S:loop:if N>9{
Q.cnt=1:R+:palcolor 255:boxf 0,cnt*V,200,cnt*V+18}loop:if R>0{wait 50:color:boxf
E+R*R:title ""+E:N=19:repeat V:S=19-cnt:if Q.S=0{memcpy C,C,40,N*40,S*40:N-}loop
memset C,,N*40}G=0}J=100}stick T,8,1:K=T&4!0+(T&1!0*-1):L=T&8!0:gosub Z:if T&16{
dim U,4:memcpy U,B,16:repeat 4:N=B.cnt\4:B.cnt=N*4+3-(B.cnt/4):loop:K=0:L=0
gosub Z:if M=0{memcpy B,U,16:gosub Z}}redraw 0:repeat V:S=cnt:repeat 10:K=cnt*V
palcolor D.cnt.S*9:L=S*V:boxf K,L,K+18,L+18:loop:loop:redraw:loop:dialog "over"
end:*Z:M=1:repeat 4:O=B.cnt\4+H+K:P=B.cnt/4+I+L:if (P>19)|(O<0)|(O>9):M=0:break
if P<0{continue}if C.O.P=1{M=0}loop:if M=0{return}memcpy D,C,10*V*4:H+K:I+L
repeat 4:O=B.cnt\4+H:P=B.cnt/4+I:if P>=0{D.O.P=1}loop:return
971名前は開発中のものです。:2005/04/08(金) 03:17:37 ID:4GIA4q63
>>967
回転についてなんですが
自分は4x4で7つのブロックを作り、そのまま90度回転させた方法でやってるんですが
967のテトリスの回転の仕方は違いますよね。
本来その回転が正しいと思うんですが、その回転を作る方法が思いつきません
配列であらかじめ作る、くらいしか思い浮かばないんですが…
よかったら教えてほしいです(´・ω・`)
972名前は開発中のものです。
>>971
残念ながら、お察しの通り配列にあらかじめパターンをいれちゃってますよ、と。

最初は普通に回転させてたんですけど、どうにも違和感があったので
いくつかフリゲのテトリスをやってみて動かしやすいものを採用してみました。
回転させるなら、それぞれのブロックのサイズに合わせて4x4,3x3,2x2等を使い分ければ同じような感じになると思いますけどめんどくさいですし(´・ω・`)
それに全部配列で保持しておくと、回転、移動、落下が可能かどうかのチェックで
同じ処理が使いまわし出来るのでちょっと便利かなと思ってみたり。
でもまあこの辺は人によって作り方変わっちゃうんでしょうけど。

>>970
はじめて見ますた。興味しんしんです(`・ω・´)
バラして解読してみよっと。