- 1 名前:名前は開発中のものです。 [02/02/22 06:26 ID:uNAVMvJb]
- 工業高校の友人がポケコンというミニPC?でゲーム作ってて
チョト羨ましかった記憶があります。 誰か1から一緒にC言語を勉強してくれる方いませんか?大募集です!
- 352 名前:名前は開発中のものです。 mailto:sage [03/10/17 02:21 ID:snZdciWf]
- スマン。
int計算で、停止位置がマス目の横幅で割り切れる位置にくるなら 誤差もなにも無いな。 リミットの判定ミスとかじゃない?
- 353 名前:名前は開発中のものです。 [03/10/17 02:46 ID:2vIgarCS]
- 一応できました
当たり判定を移動前ではなく、移動後につけて行き過ぎていれば戻し表示させるという感じにしました まだ少しバグがありますが、なんとかなりそうです 助かりました
- 354 名前:名前は開発中のものです。 [03/10/18 19:27 ID:F4XQjB9c]
- あああ 当たり判定のバグが消えない・・
誰かパックマンの当たり判定ソースうぷしてください・・・ もうだめぽ・・
- 355 名前:名前は開発中のものです。 mailto:sage [03/10/18 19:59 ID:BUZuRoP0]
- 何種類かうぷされてなかったっけ?
まずはおまいのバグだらけのソースをうぷしたほうが盛り上がると思われ
- 356 名前:350 mailto:sage [03/10/19 01:07 ID:hD6E588o]
- >354
当り判定だけ他人のソースを持ってきてもうまく出来るとは限らないよ。 盛り上がり云々はおいといても、まずは当り判定部分だけでもいいから ソース見せてみて。
- 357 名前:名前は開発中のものです。 [03/10/19 19:11 ID:5IP/gw8I]
- 当たり判定用プログラムです
ttp://briefcase.yahoo.co.jp/a_dg112 ここのpacman_hantei.txt 今の所確認できているバグ ・キャラクターの座標がマイナスになると方向転換不可能 これは直せそう ・曲がり角で、曲がりやすいようにキー判定ができる座標に余裕を持たせているので、 曲がったときに、軌道修正をしているせいでガタとゆれることがある ・キー入力が、実際のキーボードの反応と同じため、押しっぱなしにすると キーが入力できていない間ができる たとえば"."を押しっぱなしにすると(. . ........)このような感じ。 そのため、角を曲がれず通り過ぎてしまうことが多々ある などです。よろしくお願いします
- 358 名前:350 mailto:sage [03/10/20 00:39 ID:2SAYzdq9]
- まずは座標指定に浮動小数点を使うのと、四捨五入をやめれ。
>>352にも書いたけど、停止位置(判定位置)を横幅で割り切れる値にすること。 それで計算誤差は無くせるし、floatよりも高速。 普通に、キャラの大きさを8で割り切れる値にして、 int x, z ; mass_x = x >> 4 ; // キャラが16×16の場合。32×32の場合は、x >> 5ね。 mass_z = z >> 4 ; でいいのでは。。。 あと、zってのはyの間違い?
- 359 名前:350 mailto:sage [03/10/20 00:44 ID:2SAYzdq9]
- あーもしかして、3Dモデルで作ろうとしてる?
どちらにしても、2D計算に浮動小数点を使うのは非効率的。 どうしても表示に小数が必要なら、表示時に浮動小数点変換するべし。
- 360 名前:350 mailto:sage [03/10/20 00:57 ID:2SAYzdq9]
- あと、パックマンの場合、一度動き出したら、壁にぶつかるまで
止まらないんだから、移動中かどうかのフラグ一つあれば、 4方向に対してキーロック判定の変数は必要無い。 具体的には、 キー入力 ↓ 入力のあった方向にパックマン動き出す(移動中フラグON) ↓ 移動中フラグが立っている間、その方向に移動する。 その間にもキー入力を受けつけ、移動方向に障害物が無い場合、 移動方向を更新して、その方向に移動させる。 障害物がある場合は、何もしない。 ↓ 移動中、進行方向に壁があった場合は、移動フラグOFF。 の繰り返し。
- 361 名前:350 mailto:sage [03/10/20 01:08 ID:2SAYzdq9]
- ソースを眺めてて…
表示座標の原点が画面の中心に設定されてるのかな? block[20][20]の参照は、画面の左上に原点があることが前提だろうから、 原点の変換が必要なんだけど、強引に絶対値取ってヘンな計算してるね… 画面表示は所詮、結果表示なので、 >>359にも書いたけど、2D計算部(block[20][20]の当り判定)と、 表示部を分けるべし。
- 362 名前:350 mailto:sage [03/10/20 02:03 ID:2SAYzdq9]
- ttp://briefcase.yahoo.co.jp/gamedev350
コンパイルしてないけど、こんな感じということで参考までに。 移動中フラグは要らなかった。
- 363 名前:名前は開発中のものです。 [03/10/20 15:39 ID:fdR2sAeW]
- YGS2000で今から参加してもいいかな?
- 364 名前:もちろん mailto:sage [03/10/20 21:22 ID:S50xsFUJ]
- いいんじゃね?
- 365 名前:名前は開発中のものです。 [03/10/20 23:45 ID:Z8wayhFc]
- SAYzdq9さん、わざわざソースなども細かくコメントなど入れてアップしていただいて、ありがとうございました
ソースの通り、整数として(表示の時は小数に変換)計算しちゃんと角の曲がれる座標にとまるようにしましたが、 やはりキーボードの入力速度のせいか曲がれないときと、曲がれるときがあります キーを押しっぱなしにして0.5〜1秒後、曲がり角が来ると曲がれるといった感じです 一応前にも書いたんですが、キー入力を割り込みで処理しているので、入力速度が実際のタイプの速度と同じになっているようです 押しっぱなしにすると (。 。。。。。)最初の方で大きな間が空いてしまいそこで曲がれないことが多いようで、 最後の方も連続して入力されますが、わずかな間で入力を逃してしまうときもあるみたいでした C言語で標準で使える関数で、割り込み処理ではなくメインループでキーの状態を取得できるものは ないのでしょうか・・・・? あとなぜか、当たり判定でバグがあるらしく、当たり判定の対象をブロックにすると、判定も機能せず下キーしかきかなくなってしまいました 当たり判定の対象をまったく関係のない値にすると、左右上下に動けました(もちろん判定は機能しませんが) もしかしたら自分のプログラムに組み込んだせいかもしれません いろいろと自分の知らない命令や、あまり多用していなかったもので、有効に使われていたので とても参考になりました またプログラムの組み方が上手で、ソースがすごく見やすいですね やっぱり技術職の方なんでしょうか^^;
- 366 名前:名前は開発中のものです。 [03/10/21 00:54 ID:3sWuN8vv]
- とりあえず今日の成果
forgamedev.zombie.jp/uploader/up5/img/234.zip まだマップ表示だけであたり判定なし。 マップがTXTでいじれる。 配列外にアクセスしそうなので端のほうはいじらないほうが良いかも
- 367 名前:名前は開発中のものです。 [03/10/21 01:10 ID:P7tUjhRE]
- 当たり判定できました
SAYzdq9さんのプログラムを使わせていただいて、 キー判定の部分を、以下のように変えました キー入力があると、InDirという仮方向変数にUP、DOWN、LEFT、RIGHTがはいります メインループで、 if( 曲がれる位置にいるか? いるならばTRUE){ if( InDirの進む方向が壁かどうか? 壁以外ならばTRUE) { dir = keyIndir; //進行方向を変える } keyIndir = dir; //1マス進むごとに、入力した方向がリセットされる //リセットしなければ、keyIndirの値がずっと残ってしまう //移動している方向が壁ならば、ストップする if(今の進行方向の次のますは壁か? 壁ならばTRUE) { dir = DIR_STOP; } } //移動方向に値を加える mx += DIR_MOVING[dir].x; mz += DIR_MOVING[dir].y; 今までいろいろとありがとうございました SAYzdq9さんのソースを見て、効率のいいプログラムの書き方を 勉強させていただきます
- 368 名前:350 mailto:sage [03/10/21 02:33 ID:QZ/RrjeT]
- キー入力に関して、「C言語標準で」っていうと、
標準入出力という形で実装されてるgetch()とかしかないけど、 キー入力を待ってしまうから、そもそもリアルタイムゲームには使えない。 「。 。。。。」については、キーのオートリピートの情報を読んでいるからで、 リアルタイムにキー判定しようとしたら、キーを直接読むしかないよ。 というか、パックマンの場合、そんなにずっとキーを押しっぱなししなくても いいんじゃない?と思うけど。。。実際、青果物ではちゃんと動いているようだし。 >またプログラムの組み方が上手で、ソースがすごく見やすいですね 人に見せるソースってことでコメント書いたけど、普段は全然コメント書かないw
- 369 名前:350 mailto:sage [03/10/21 02:46 ID:QZ/RrjeT]
- あ、、、
>>366=363で、>>367とは別人か 番号でもなんでもいいから認識名よろ IDは毎日変わるから。
- 370 名前:366=やねげで開発中 mailto:sage [03/10/21 20:58 ID:L73neRcU]
- forgamedev.zombie.jp/uploader/up5/img/235.zip
Lv3+α マップいじりが思いのほか面白くて調子に乗ってみた。 動作とサイズが重いのが難か・・・ BCCもあるにはあるんですが、猫でも〜つかってWindowsSDK勉強中という段階です。 DirectXなんて夢のまた夢・・・
- 371 名前:350 mailto:sage [03/10/23 05:25 ID:E/6Hi+Ai]
- >>370
(・∀・)イイ!! BCCよりも、Winでまともにプログラム組みたいなら、少し高くても VC++6をオススメします。簡単に窓アプリが作れるよ。 その昔、BC++3.0使ってて、WinG動かすのに苦労して、 BC++4.0(4.5)の頃にGAME SDK動かすのに苦労して… BC++5.0までアップグレードしたけど、結局、VC++4に移行した。 今までの苦労は一体何だったのか。。。 やっぱりMSのSDKは、SMの言語で動かすのが一番楽だと思ったよ。
- 372 名前:名前は開発中のものです。 mailto:sage [03/10/23 23:16 ID:kDXf4UT3]
- Lv.4(?)
forgamedev.zombie.jp/uploader/up5/img/236.zip ドット実装。クリア表示でなくてドットが復活する。 ところで顔の向きがむちゃくちゃですよね。まあ見栄えがするからいいか。 ところで、真上から見た画面とするとパックマンて縦に割れてるのか?w >371 そういえばほこりかぶったVisualStudioがあるのを思い出しました。 MFCやって一週間で投げた記憶があります(藁
- 373 名前:350 mailto:sage [03/10/24 02:53 ID:woGk69BH]
- >>372
>ところで、真上から見た画面とするとパックマンて縦に割れてるのか?w まぁアレは記号ってことで…パックマニアでは解決してるねw >そういえばほこりかぶったVisualStudioがあるのを思い出しました。 >MFCやって一週間で投げた記憶があります(藁 MFCはリアルタイムゲームには不向き。 一応、DirectXにはMFCを使ったサンプルもあるけど、 基本は、メインを無限ループにして、Vで同期を取りつつ 最低限のウィンドゥメッセージだけを処理するようにする ってのが常套かと。 VC++を勧める理由は、Windows各SDKとの親和性の他に ある程度のスケルトンが入ってるから、それが便利かと。 余談だけど、BC++からVC++に移って苦労したのはテキスト処理だった。 ボーランドの日本語処理はかなり強力だったなぁ。。。 Lv.5ではいよいよモンスターが入るか?!楽しみにしております
- 374 名前:名前は開発中のものです。 mailto:sage [03/10/24 12:01 ID:Zx5tXqJv]
- うわぁネタスレかとおもったら良スレだぁ(´∀`)
レベル制チュートリアル(?)というのもオモシロイネー
- 375 名前:名前は開発中のものです。 mailto:sage [03/10/28 00:15 ID:QZz8MBbO]
- 安芸
- 376 名前:名前は開発中のものです。 [03/10/28 00:15 ID:QZz8MBbO]
- さげてたよ・・・もいっちょ安芸
- 377 名前:366 [03/11/06 19:54 ID:FOcYK31e]
- 間があいてしまった・・・が書き込みが無い。
Lv.5-1 敵キャラ。ランダム移動のみ 2chキャラを使おうと思ったけど16*16で表現できるのがこんなんしかなかった。 forgamedev.zombie.jp/uploader/up5/img/238.zip ウチの貧弱な環境だとドットが減るごとにFPSが上がってゆく・・・w
- 378 名前:名前は開発中のものです。 mailto:sage [03/11/06 20:49 ID:CR/nQXJI]
- (;´Д`)ハァハァ
- 379 名前:名前は開発中のものです。 [03/11/09 17:40 ID:OnqQ8HDW]
- HSPで参戦おk−?
- 380 名前:名前は開発中のものです。 [03/11/09 20:14 ID:nrkdpVJY]
- おいらもHSPで作っています。配列変数でマップ配置を覚えて目からうろこが落ちた状態。
でも、当たり判定がなかなかできない。概念はこのスレを見て理解。でも、実装できぬ。 困った困った。
- 381 名前:名前は開発中のものです。 [03/11/09 21:19 ID:dBNgC697]
- アッヒャッヒャ!ヽ(゚∀゚)ノ
- 382 名前: ◆TJaKTvqZPs [03/11/09 21:20 ID:dBNgC697]
- (,,゚Д゚) ガンガレ!
- 383 名前:名前は開発中のものです。 mailto:sage [03/11/21 20:57 ID:CCTSPdke]
- ゲーム作りたくて情報系の学部に入ったのですが
Cでテキストベースのマインスイーパーなんかを作る事くらいは出来るのですが 絵を扱う方法が教わって無いのでさっぱりわかりません 誰か簡単なのでよいので絵を使ったプログラムのソースを見せていただけ無いでしょうか
- 384 名前:名前は開発中のものです。 mailto:sage [03/11/22 00:35 ID:X/HOiPUH]
- 教わってなかったら出来ないのかよ?
大学は言ってるなら自分で勉強とかしないのか? ゲーム製作関係の本はいっぱいでてるだろ? 1冊くらい読んでみたか?
- 385 名前:名前は開発中のものです。 mailto:sage [03/11/22 01:31 ID:R43/Q0t9]
- >>383
各種ライブラリ紹介スレ pc2.2ch.net/test/read.cgi/gamedev/1008220559/
- 386 名前:366 [03/11/25 14:47 ID:C0soIf5L]
- Level 5-2
up.isp.2ch.net/up/e937e782b608.zip 自機追尾の敵を追加 最短距離じゃなく単純に自機の方向にまがる。 最短経路探索むずかしい。 アルゴリズム検索してみたけどいまいち実装できないな・・・
- 387 名前:名前は開発中のものです。 mailto:sage [03/11/29 23:37 ID:jqWr789I]
- 関連スレ?
パック○ンのアルゴリズムを解明するスレ pc2.2ch.net/test/read.cgi/gamedev/1013542688/
- 388 名前:名前は開発中のものです mailto:sage [03/12/05 16:59 ID:i+F9k6Qi]
- 目標を追う場合、分岐点において、
0:自分の来た方向を除き(モンスターは、一般的に逆戻りできないので)、進める方向を調べ、 1:目標地点との、x軸、y軸の差をとって、その差の大きいほうを縮めるように動けるなら、 その方向に進む。 2:もう一方の、差を縮められる方向に行けるなら、そっちに行く。 3: 1と2ができない時点で、目標に近づくことが不可能。 1と逆の方向に進めないようにして、「上」「下」「左」「右」など、通路に優先順位をつけておいて、 優先順位で進める方向を調べ、その方向に進む。 こんな感じでどう?
- 389 名前:388 mailto:sage [03/12/05 17:08 ID:i+F9k6Qi]
- わかりづらい文章で、ごめん。
それから、ピンキーは追いかけ方が、ちょっと特殊だと思う。
- 390 名前:名前は開発中のものです。 mailto:sage [04/03/12 08:49 ID:m4my9cdB]
- >>315に対しての>>316の反応にワラタ
おまいら何作ってるんだと
- 391 名前:名前は開発中のものです。 [04/03/12 11:10 ID:m4my9cdB]
- level1
gamdev.org/up/img/308.lzh Borland C++BuilderX使用 作成中にこの罠にハマッタ pc2.2ch.net/test/read.cgi/tech/1065260556/401 これlLINKのオプションを弄らないといけないのに ずっとBCC32のほう見ててかなり時間無駄にした
- 392 名前:391 mailto:sage [04/03/12 13:24 ID:m4my9cdB]
- >>333
画像使わせていただきました m(_ _)m level2 gamdev.org/up/img/309.lzh 実はゲームループを必死に勉強中 色々あって大変だけど 自分なりに煮詰まってきた
- 393 名前:名前は開発中のものです。 mailto:sage [04/03/13 10:16 ID:3Tp3Xbob]
- level3
gamdev.org/up/img/310.lzh 滅茶苦茶ムズかった 胃が痛くなってオナラの臭いが変わるほど衰弱したのは秘密だ キー入力を無視するタイミング、方向転換を許可するタイミングに注目して 黄色いあん畜生の挙動を研究しまくりifや変数を使いまくって完成 壁判定メモ.txtに研究成果は入れておいた あまりに難しくてパックマンが初心者向けとは思えなくなってきたけど どこか根本的なところでミスでもしてるんだろうか_| ̄|○
- 394 名前:名前は開発中のものです。 mailto:sage [04/03/13 15:18 ID:3Tp3Xbob]
- level4
gamdev.org/up/img/311.lzh 奇数番の課題が次の偶数番の課題に絡んでるのかな level3でやった所を少し変えるだけで済んだ 次は難しいというか掴みどころが無い課題ですね
- 395 名前:名前は開発中のものです。 mailto:sage [04/03/13 17:47 ID:Nid+tM1H]
- >>391->>394
ご苦労だった、と言いたいところだが・・・ バグ発見。右下のほうでパックマンを動かすと壁をすり抜ける。
- 396 名前:名前は開発中のものです。 mailto:sage [04/03/13 18:22 ID:3Tp3Xbob]
- >>395
フィードバックありがとうございます どうも方向キーをみだらに連打すると再現するようです 右と下に壁がある場合は右と下のカーソルキーを連打すると すり抜けることができる事を発見しました 自分が作ったソフトで裏技が発見されてちょっとうれしい……
- 397 名前:397 mailto:sage [04/03/13 18:57 ID:Lt3uj9Mq]
- 今から参加させてください。
VC++、プログラム歴1日です。 がんばります。
- 398 名前:395 mailto:sage [04/03/13 19:42 ID:izsRbcye]
- >>396
すまん。右下だけでなくさまざまなところですり抜けた。 しかしこれは裏技じゃないような・・・。 壁をすり抜けて画面外に出てしまってゲームを続行できなくなることがあるし。 それと、 >右と下に壁がある場合は右と下のカーソルキーを連打すると キーを連打しなくてもすり抜けますよ。普通に移動してて壁にぶつかったとたん 壁をすり抜ける、ということがおきる。 あとソースを見て壁すり抜けが発生する原因を調べたんだがわからなかった。 役立たずですまん・・・
- 399 名前:名前は開発中のものです。 mailto:sage [04/03/13 21:37 ID:QBQcBcGU]
- >みだらに連打すると
(*´Д`)ハァハァ
- 400 名前:凡_寸 ◆eU3/hitQL2 mailto:sage [04/03/13 21:42 ID:dZDZbuPG]
- わかった。曲がり角にさしかかる時に、壁側のキー押してるとどこでもすり抜けるな。
壁当たり判定の beforeDirection==direction 辺りを直せばいいと思うが、 結構むずかしいな。 しかしいいスレだな。俺もやってみよう。
- 401 名前:391 mailto:sage [04/03/14 08:00 ID:rHt70/Tr]
- gamdev.org/up/img/312.lzh
みだらな裏技を直しました 壁がある方向へ曲がろうとすると もともとの方向へ直進してました もともとの方向へ直進する前に もともとの方向へ直進する方向に 壁があるのかチェックするようにしました 自分で何言ってるのかわからなくなってきた_| ̄|○ beforeDirection==direction を確定する前にチェック入れたってことです 教えてくれた人たちありがとう >>397 がんがれー
- 402 名前:395 mailto:sage [04/03/14 09:22 ID:UbOuzn9y]
- >>401
プレイしてみたところ壁抜けが起きなくなってました。 修正ご苦労様です。 >>397 がんばれば>>401さんみたいにいろんなものが作れるようになるぞ がんがれ〜
- 403 名前:名前は開発中のものです。 mailto:sage [04/03/14 20:56 ID:rHt70/Tr]
- level5(途中まで)
gamdev.org/up/img/313.lzh 移動できない方向だけ禁止してあとはランダムで道を選んでいます 当たり判定は16ドット以内に近づいたら当たり 敵のクラスをVectorコンテナを使うことで管理しています 肝心の敵アルゴリズムがまだですが これだけで一生悩めそうなお題なので どこで切り上げるか検討中 level6でパックマンから逃げるアルゴリズムも考えないとダメなので おそらくこのあたりが正念場になりそう ポインタ、コンテナでちょっと手こずったけど 買いためていた本が役に立った たまには買った本読まないと……
- 404 名前:395 mailto:sage [04/03/14 21:04 ID:KoC3D+Y9]
- 起動したらSTLPMT45.dllがみつかりません、とでる。
なんでだろう?
- 405 名前:名前は開発中のものです。 mailto:sage [04/03/14 21:17 ID:fTOCRtNX]
- 俺も同じく
- 406 名前:395 mailto:sage [04/03/14 21:28 ID:KoC3D+Y9]
- 言い忘れてた。
>>403乙。 敵のアルゴリズムは一生悩めるお題だと思う。 とにかくゲームに必要なアルゴリズムができればいいかと。
- 407 名前:名前は開発中のものです。 mailto:sage [04/03/14 21:41 ID:rHt70/Tr]
- フィードバックありがとうございます
早速調べて動作させるのに必要なファイルをまとめました gamdev.org/up/img/314.lzh 検索してみるとスタティックリンクやらDLL HELLなど おもしろそうなネタがひっかかってきたので ちょっと勉強してみます
- 408 名前:395 mailto:sage [04/03/14 22:21 ID:KoC3D+Y9]
- 起動できたよ〜。
- 409 名前:395 mailto:sage [04/03/15 19:43 ID:P7rTFcv2]
- 313.lzhをやってて気になったんだけど、これって画像のカラーキーの設定をしてないの?
モンスターの画像の周りに黒いふち(でいいのかな?)が表示されてて気になるんだが。
- 410 名前:名前は開発中のものです。 [04/03/18 15:44 ID:ZV++S3v1]
- 保守
- 411 名前:名前は開発中のものです。 mailto:sage [04/03/19 11:12 ID:1F5zWenF]
-
∧∧ ミ _ ドスッ ( ,,)┌─┴┴─┐ /' つ Lv3 終了 │ 〜′ /´ └─┬┬─┘ ∪ ∪ ││ _ε3 ゛゛'゛'゛ gamdev.org/up/img/335.zip
- 412 名前:名前は開発中のものです。 mailto:sage [04/03/19 11:18 ID:5gge7Jk+]
- こんなものを作ってくれた香具師が居たので張っとく。
「パックマン」風ゲーム作らない? gamdev.org/w/?%5B%5B%A1%D6%A5%D1%A5%C3%A5%AF%A5%DE%A5%F3%A1%D7%C9%F7%A5%B2%A1%BC%A5%E0%BA%EE%A4%E9%A4%CA%A4%A4%A1%A9%5D%5D URLなげぇ…
- 413 名前:315 [04/03/19 15:28 ID:fIIuc+Yn]
- 大昔にLevel1〜4までをJavaで実装してソース付きで公開してました。
もしかして wiki にがしがし貼り付けちゃっていいのかな。
- 414 名前:315 mailto:sage [04/03/19 15:37 ID:fIIuc+Yn]
- wiki をどう使うのか、作った人の意図が見えないんですが、
もしも教育的に使えるページにしたいなら Level をさらに細分化するべきかと。 Level 1-1:単なる表示(drawImageの使い方) Level 1-2:単なる表示(drawImageの別の使い方) Level 1-3:パックマンっぽい画面にする Level 2-1:キー操作の単なる実装(キーを入力すると矢印が表示されるだけ) Level 2-2:キー入力でパックマン1ドット移動 Level 2-3:キー入力でパックマン移動しっぱなし Level 2-4:ダブルバッファリング Level 2-5:移動向きにあわせてパックマンの絵を変える 全て、ソースと実際に動くアプレット付きでLevel4 まで作ってやめちゃいました 要望があるなら続きをのんびりと作るけど
- 415 名前:名前は開発中のものです。 mailto:sage [04/03/19 15:56 ID:SVusZESJ]
- 粒度としてはあれくらいでちょうど良いんじゃない?
教科書じゃなくてあくまで「課題」だし。ここでの実績もあるし。 あんまり細かすぎるとやる人が引くかも(俺もそんなのやりたくない)。 段階的〜のページの方に書いてあることは蛇足でしょう(今のところ)。
- 416 名前:397 mailto:sage [04/03/19 21:24 ID:RhQrv5xn]
- やっとLV1ができた……
www.geocities.jp/climbmail/level1.zip C++勉強初めて1週間、まだDOSしかできません…… 怒らないで(´ε`)
- 417 名前:名前は開発中のものです。 mailto:sage [04/03/20 12:13 ID:Yqi1HOCy]
- ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` )< >>413-414 (>>315氏) 要望しますた /, / \ (ぃ9 | __i  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / /、 l__l / ∧_二,/_/ / / / \ 特にLevel5の敵の動きのアルゴリズムをおながいします 余裕があれば他の教材も細分化&解説してくれるとうれすぃ 教材一覧はこちら 段階的学習! gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D
- 418 名前:315 mailto:sage [04/03/20 13:13 ID:oS0UjnuQ]
- 315で晒したページと同内容のものが残ってました。
こんな感じの細分化&解説でよければ。 csx.jp/~pacman/ 細かすぎるかな >>415
- 419 名前:415 mailto:sage [04/03/20 13:36 ID:HjCApWI8]
- いや、チュートリアル的な解説付きなら話は別。
すごい良い感じだと思います。
- 420 名前:名前は開発中のものです。 mailto:sage [04/03/20 13:44 ID:5i1TLrP/]
- 本気でどうしようもなくなった時にヒントをもらえるのは非常にありがたいケド
懇切丁寧に教えてもらうと自分で調べたりできなくて逆にツマラン。 アルゴリズムや成果物もレジュメのトレースでみんな似たりよったりになってしまいそうだし。 あーでもねえこーでもねえと悩む過程の楽しさを味わう絶妙なバランスが 現在のこのスレのLv設定にはあるような気がするんだが。 さて、ぼちぼちLv4にとっかかるべえか。
- 421 名前:名前は開発中のものです。 mailto:sage [04/03/20 13:49 ID:HjCApWI8]
- たとえるなら、WikiにあるLv別課題が章末問題で
>>418のが参考書にのってる解説つきの回答編というところだろうか
- 422 名前:315 mailto:sage [04/03/20 13:58 ID:oS0UjnuQ]
- じゃあ wiki を弄るのは他の人に任せて
私はのんびりと解答編を作るとしますか。
- 423 名前:NAME OVER mailto:sage [04/03/20 22:29 ID:WUl6DonP]
- アク禁解除キターので参加します。とりあえずLV2。
gamdev.org/up/img/342.zip 言語はMIDP-1.0、ツールはWTK2.1にEclipseです。 Vアプリ作るために勉強中ですが、今回はMIDPオンリーで作ります。 EZへの移植も簡単だし。 誰かMIDP-1.0でpngからの一部取り出しと画像回転のやり方知ってる人、 教えてもらえませんか? MIDP-2.0だと実装してるみたいなんだけど、 1.0でのやり方がサパーリ。出来ないなら出来ないでいいんですが。
- 424 名前:391 mailto:sage [04/03/21 16:35 ID:dec56BSb]
- 初心者専用スレ「パックマン」風ゲーム作らない?Level5a
gamdev.org/up/img/343.lzh 前回までのおさらい ■DLLがないと動かないぞゴルァ ■カラーキーで色抜いてないのかよゴルァ ■AI未搭載なのかよゴルァ やっと解決した(たぶん)のでご報告します ■DLLがないと動かないぞゴルァ ビルドオプションエクスプローラ ↓ BCC32 ↓ オプション ↓ その他のオプションとパラメータ ↓ プロジェクトは動的RTLを使用します このチェックをはずすとDLLなしで動くようになりました
- 425 名前:391 mailto:sage [04/03/21 16:36 ID:dec56BSb]
- ■カラーキーで色抜いてないのかよゴルァ
www.sspzgr.net/software/vc/code/translate.htm こちらのページを参考に透過処理しました 検索中にMaskBltというキーワードがひっかかって 気になったのですが9x系不可ということでスルーしました ■AI未搭載なのかよゴルァ 分岐路に来るとパックマンがいる方向へ曲がるようにしました 多少のランダム性を与えています ■開発環境 Borland C++BuilderX Personal(無償版) EDGE(フリーソフト) ドット絵でぃた(フリーソフト) 以上
- 426 名前:名前は開発中のものです。 mailto:sage [04/03/21 16:41 ID:lBIVIhzW]
- >>423
MIDPって携帯? 実行環境ってどっかで落とせるんだっけ。 実機のみ?
- 427 名前:NAME OVER mailto:sage [04/03/21 17:03 ID:RpFij4Xt]
- 壁実装と壁判定つけたLV3
ttp://gamdev.org/up/img/344.zip キャラの大きさを16から8ドットに変更したのでちまいかも。 WTKのKToolbarでプロジェクト作成してるので、KToolbarでそのまま開けます。 >>426 ttp://www.atmarkit.co.jp/fjava/rensai/j2mewtk01/j2mewtk01.html J2SEとJ2ME Wireless Toolkitがあればエミュレーションできます。 URL先の情報は古いからバージョンがかなりずれてるけど。 実行するだけならJ2ME Wireless Toolkitだけでも大丈夫なのかな?
- 428 名前:NAME OVER mailto:sage [04/03/21 17:38 ID:RpFij4Xt]
- 連投申し訳ない。
gamdev.org/up/img/345.zip LV3のままですが、曲がる際、曲がる方向に壁があった場合直進を維持するように 変更しました。ついでに開始後何も押さないと果てしなく右に行くバグも直しました。
- 429 名前:名前は開発中のものです。 mailto:sage [04/03/21 22:09 ID:dec56BSb]
- 初心者専用スレ「パックマン」風ゲーム作らない?Level6
gamdev.org/up/img/347.lzh ■level6の課題に対して ・パワーエサを設置しました ・パワーエサを食べると敵が逃げるようにしました ・パワーエサを食べると敵を食べられるようにしました ・敵クラスにイジケカウンターをつけイジケ残り時間をカウントしました ・イジケ時間が120フレームを切ると点滅するようにしました ■その他の修正 ・パワーエサを食べていない状態で敵と接触すると死亡するようにしました ・敵の速度を調整しました ・クライアントウィンドウのサイズを調整 ・ウィンドウの最大化不可、リサイズ不可 ・パックマンがアニメーションする速度を調整しました ■感想 Levelが進むにしたがって以前のLevelでやるべきだった事に気づいたりして なかなか難しい。はじめからやり直したい箇所もあったり。
- 430 名前:391 mailto:sage [04/03/22 07:32 ID:A99v/wL8]
- Level7
gamdev.org/up/img/348.lzh ■巣箱に至る病 ・仮想マップに行くべき方向をあらかじめいれておきました >>203さんのアイデアをいただきました ありがとうございます >各分岐点に巣箱の方向を入れておけば簡単だよ ・巣箱の中でグルっとまわるのも同じ方法です ・新たに目玉フラグを敵クラスに作りました こんなことだったら敵の状態を表す変数を1つ作っておけばよかったよ_| ̄|○
- 431 名前:名前は開発中のものです。 [04/03/22 07:57 ID:3FCvupy3]
- >>340
(・∀・)イイ
- 432 名前:名前は開発中のものです。 mailto:sage [04/03/22 18:36 ID:A99v/wL8]
- level8
gamdev.org/up/img/351.lzh ■ワープトンネル ・仮想マップにワープする場所と移動が遅くなる場所を入れてます ・移動時に仮想マップをチェックして該当する場所へワープさせてます level9でフルーツの音・・・っていつのまにフルーツ実装されたんだろう >>431 ども
- 433 名前:432 mailto:sage [04/03/22 20:46 ID:A99v/wL8]
- ってよくみたら>>430じゃなくて>>340さんかよ
- 434 名前:名前は開発中のものです。 [04/03/23 18:06 ID:veFRzD4A]
- すいませんがJAVAアプレットでつくれますか?
- 435 名前:名前は開発中のものです。 mailto:sage [04/03/23 20:27 ID:PMWtRlHb]
- 作れるんじゃない?
- 436 名前:名前は開発中のものです。 mailto:sage [04/03/23 23:30 ID:7o1Wdq1y]
- >>434
っていうか >>418 で作ってるし
- 437 名前:名前は開発中のものです。 mailto:sage [04/03/24 12:26 ID:w8WO7vuF]
- えっとレスありがとうございます。
とりあえずJAVAで作ってみます
- 438 名前:名前は開発中のものです。 mailto:sage [04/03/24 22:31 ID:+umUyuZe]
- パックマンが作れない言語なんてないだろう
エスケープシーケンスが使えないWin2kはコンソールじゃ難しいだろうけど
- 439 名前:名前は開発中のものです。 [04/03/30 19:36 ID:W3eAlGrO]
- agr
- 440 名前:名前は開発中のものです。 mailto:sage [04/04/04 00:24 ID:SMHh2AYE]
- このスレが立ったころ始めた人はだいぶ成長していることでしょう。
ところで、自分も今からがんばってみたいと思います。 今猫でもで勉強しているんですが、何章ぐらいまでいけばパックマンのレベルになれるでしょうか?
- 441 名前:名前は開発中のものです。 mailto:sage [04/04/04 11:49 ID:GZOgZeIl]
- >>440
ウインドウを作って画像を読み込んで表示できれば。 あと画像を動かして貼り付ける方法とちらつきを抑えるやり方を覚えれば、 残りは計算で作れる。
- 442 名前:440 mailto:sage [04/04/04 17:52 ID:SMHh2AYE]
- さっそくのレスありがとうございます。
「33章キー入力を知る」ってとこまでいったら作り始めてみたいです。
- 443 名前:名前は開発中のものです。 mailto:sage [04/04/04 20:53 ID:7pfdzk9q]
- ゲーム用のとこ見たほうがいいのではないかな。
- 444 名前:440 [04/04/06 00:15 ID:Jak9fA5k]
- とりあえずパックマンを画面に表示させることはできました。
ここで行き詰ったので質問させてください。 パックマンの状態を表す構造体を作成しました。 プロシージャから呼ばれる画像表示用の自作関数でその内容を参照したいと思います。 メイン関数で構造体を準備し、プロシージャに渡せばいいと思うのですがプロシージャの引数の増やし方が分かりません。 グローバル変数を使用する以外の解決方法をご教授お願いします。 環境はVCです。
- 445 名前:名前は開発中のものです。 mailto:sage [04/04/06 10:58 ID:02AlyAOE]
- グローバル変数使えよ
- 446 名前:名前は開発中のものです。 mailto:sage [04/04/06 21:55 ID:W8katciX]
- >>444
…? 手で増やしたら? とかそういう答えでいいのかなあ。
- 447 名前:440 mailto:sage [04/04/07 00:39 ID:qvq9c8Tl]
- 通常はプロトタイプ宣言での引数、関数を呼び出している場所、関数自体
を変更して引数を増やすと思います。 今回はプログラム自体にプロシージャを呼び出す所がないので 2番目の「関数を呼び出している場所」が変更できなくてエラーが出てしまいます。 ひょっとしてプロシージャの引数は4つで固定なのかなぁと思いはじめました。
- 448 名前:名前は開発中のものです。 mailto:sage [04/04/07 08:41 ID:XPGkqoqv]
- 意味わからん。
関数に新しい引数を追加したい場合に、それを呼ぶ部分がないというならそこは特に修正する必要ないだろ。エラーも何もないはず。 #そもそもCならプロシージャって関数だろ? 何をもって区別している? 説明ができないのなら最低限のコードとエラーメッセージくらいは貼ってくれ。
- 449 名前:名前は開発中のものです。 [04/04/07 09:40 ID:OLcSXc4Q]
- 初期化をWM_CREATEでやればいいと思いよ
- 450 名前:名前は開発中のものです。 [04/04/07 18:43 ID:qvq9c8Tl]
- #include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM, int aaaaa); BOOL InitApp(HINSTANCE, LPCSTR); BOOL InitInstance(HINSTANCE, LPCSTR, int); int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,LPSTR lpsCmdLine, int nCmdShow) { MSG msg; char szClassName[] = "パックマン"; int aaaaa; if (!hPrevInst) { if (!InitApp(hCurInst, szClassName)) return FALSE; } if (!InitInstance(hCurInst, szClassName, nCmdShow)) { return FALSE; } while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp, int aaaaa){//以下略 //たとえばWinMainで宣言された[int aaaaa]をWndProcに渡したい場合上のようにすると //error C2440: '=' : 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long,int)' から // 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' に変換することはできません。と出ます。 //初心者なのでとんでもない勘違いをしているのかもしれませんがご指導の方よろしくおねがいします。
- 451 名前:名前は開発中のものです。 mailto:sage [04/04/07 19:15 ID:XPGkqoqv]
- 自作関数じゃなくてウィンドウプロシージャか。
その型はライブラリ側であらかじめ決められているから変更は無理。 (typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);) まあグローバル変数使っとけ
- 452 名前:440 mailto:sage [04/04/07 19:52 ID:qvq9c8Tl]
- >>451
さっそくのレスありがとうございます。言葉が少なくて分かりずらかったようですいません。 グローバル変数はあまり使うなと言われてたので悩んでしまいました。 がんばってパックマンを作り上げたいです。答えてくれた皆様本当にありがとうございました。
|

|