貴様ら!ブロック崩し作るので見てください
■ このスレッドは過去ログ倉庫に格納されています
0001ヒッキー@プログラミング
NGNG作りたくなりました。
Bitbltなど使う予定ですが、細かい技術がないので、
小出しにプログラムしようと思います。
(タマが動くだけとか、キーボードで自機を動かすだけとか)
オナーニスレだけどよろしくね。
0793デフォルトの名無しさん
NGNGそういう時は別の言語触ってみたら?
J++も入ってるんでしょ? 他にもDelphi6Personalとかも無料だし
0794789
NGNGおいおい何怒ってるんだよ。(笑)
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG>>1さぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ♥ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ♥ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ(以下略
0797デフォルトの名無しさん
NGNG| >>1 はどこ!! |
|_________|
∧∧ ||
( ゚д゚) ||
/ づΦ
0798デフォルトの名無しさん
NGNG勢いはもう \0 どうぜん…(w
0799デフォルトの名無しさん
NGNG(例) http://www.google.co.jp/search?q=%8F_%96%D1&hl=ja&lr=
0800デフォルトの名無しさん
NGNG0801ヒッキー@プログラミング ◆hky/PGis
NGNG0802デフォルトの名無しさん
NGNGプログラミングは (それほど) 初心者でもないが、ゲームプログラミングはド素人ってあたりで
どうよ? ひとつシューティングゲームでも書いてみたいなと思ってるんだが、観客いた方が気
合入るし。
0803デフォルトの名無しさん
NGNG俺は全然構わないと思うよ。
>>1もプログラミング多少できたみたいだし。
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNGCreateCompatibleBitmap
の引数のHDCに入れるものが間違ってるからだったような・・・
hWnd = 「メインウインドウのhWnd」;
hdc = GetDC(hWnd);
CreateCompatibleBitmap(hdc, width, height);
とhdcをウインドウのものにすればすればカラーになるはず
0806デフォルトの名無しさん
NGNG漏れも便乗させてもらってもいい?
0807802
NGNG良いんじゃない。
とりあえず DirectDraw7 で、16x16 タイル張りの背景をスクロールできるところまで行きました。
ちとコードを整理したら up します。
0808806
NGNGどうもありがとう。
漏れ業務ではPL/SQLしか経験なくてやばめだけど。
わたしはDirectDrawは使えないヘタレなので、DirectX系無しのVCで・・
背景のスクロールはWM_TIMERでX+=10;とかにして
BitBltの所の背景のX座標の位置を増やしてみました。
たぶんWM_TIMER使っているからだと思うけどゲームみたいな綺麗な
スクロールじゃないや。
それにInvalidateRectをWM_PAINTじゃなくてWM_TIMERの方に書かないと
だめだったし。無念。
0809806
NGNG一文しか私は使っていないんですが、UpdateWindow(hwnd);は
やっぱり普通は使うものなんですか?
自分のソースにInvalidateRectの次の行に書いたらKARNEL32.dllっていうのがエラー出します(涙
0810デフォルトの名無しさん
NGNGVBに帰る手もあると思う。
0811デフォルトの名無しさん
NGNGおそらくWM_PAINT に UpdateWindow 書いてねーか?
0812デフォルトの名無しさん
NGNGhttp://www2.sega.co.jp/sw/woody/
セガのブロック崩し。
おもろいよ。
0813デフォルトの名無しさん
NGNG漏れもちょっと参加してみます。
貴様ら!見てください
http://www.geocities.co.jp/SiliconValley-PaloAlto/4792/
プログラム歴は、昔BASICとCをかじった程度。ひと月程前にDelphiをダウソして勉強中。
0814デフォルトの名無しさん
NGNG色つけたら見てるだけで楽しくなりそう。
0815名無しへの扉
NGNGhttp://www.vector.co.jp/soft/win95/game/se174379.html
0816デフォルトの名無しさん
NGNGAPI板にも来てください
http://pc.2ch.net/test/read.cgi/tech/1006783012/l50
0817813
NGNGhttp://www.geocities.co.jp/SiliconValley-PaloAlto/4792/
画面を分割して、衝突判定を分けたんですが、
だんだんソースがゴチャゴチャしてきて見辛くなってきた。
あと、Ctrl+左マウスドラッグで画面をスクロールできるようになりました。
>>814
ぱくり元のゲームも見てるだけで飽きないとこが好きだったんですが、フルスクリーン専用だったので、
そのへんをなんとかしたいなってのも、作ってる動機のひとつです。完成したらスクリーンセーバにもしてみようかと思ってます。
今のとこ、どうやって作ったらいいのか全然わかりませんが。
見た目の寂しさは何とかしたいとこですが、一通りの機能が出来るまでは我慢しようとおもいます。
音の追加とかも。
0818デフォルトの名無しさん
NGNGぼーっとみちゃったよ。
0819デフォルトの名無しさん
NGNG0820ヒッキー@プログラミング ◆hky/PGis
NGNG今日またやり始めたので、よかったらおいでくださいませ(;´Д`)
0821813
NGNGhttp://www.geocities.co.jp/SiliconValley-PaloAlto/4792/
なんとなくソースファイルをメインフォーム、宣言、描画、物理計算部の4つに分割してみたんですが、
描画時の色がおかしくなってしまい困ってます。
//細胞カーソル描画
procedure DrawCellCursor(cell: PCell; Color: TColor);
begin
with Form1 do begin
if Cell = Nil then Exit;
Image1.Canvas.Pen.Color := Color;
Image1.Canvas.Pen.Width := 2;
Image1.Canvas.Brush.Style := bsClear;
Image1.Canvas.Ellipse(Cell.x - CellRadius - 4 - ViewLeft, Cell.y - CellRadius - 4 - ViewTop,
Cell.x + CellRadius + 4 - ViewLeft, Cell.y + CellRadius + 4 - ViewTop);
end;
end;
//============================================
上のようになっていて
DrawLifeCursor(LifeSelected, clBlue);
のように呼んでいるんですが何故かclBlueでなくclBtnFace(ウィンドウの色)で描画されてしまいます。
ソース分割前は正常だったんですが…。考えてみてもまったく原因が分からない。(;´д`)
お、>>1さんが、ひっそりと復活。息切れしないよう、程ほどに頑張ってね〜。
0822デフォルトの名無しさん
NGNG引数のColorではなくてForm1.Colorが描画されてるのかな。
名前がバッティングしないように引数を変えてみてはどうでしょうか。
0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNG0827ヒッキー@プログラミング ◆hky/PGis
NGNGhttp://www.geocities.co.jp/SiliconValley/2530/
WM_TIMERで処理するのをやめて、時間を計るようにしました
0828ヒッキー@プログラミング ◆hky/PGis
NGNG0829デフォルトの名無しさん
NGNGなんら問題はありません。
タリー
タリー タリー イヤーソ
(\_/) タリー
( ´Д)アハーン タリー タリー
/ つ (\_/) (\_/)ノ⌒ヽ、
(_(__つ⊂(´Д`⊂⌒`つ(´Д` )_人__) ))
0830デフォルトの名無しさん
NGNG今VBの方をDLしてみたんだけど、面白かったYO!
0831ヒッキー@プログラミング ◆hky/PGis
NGNGがーん(´ρ`)
>>830
ども、ありがとうございます!
これからもがんばって作っていきます
0832デフォルトの名無しさん
NGNG折れもC勉強しようかと思うんだけど、
コンパイラなどどれがいい?
便乗 保守 呼込 質問 揚
0833デフォルトの名無しさん
NGNG0834ヒッキ-@プログラミング ◆hky/PGis
NGNGどもー。
Cですかー。漏れはWindows派の人間なのでやっぱVCが
(・∀・)イイと思うんですが、もし挫折してしまったら
投資がモターイナイので、フリーのLSI-C試食版などどうでしょうか?
DOS環境に限られますが、勉強ならちょうど良いんではないかと。
構造体・配列・ファイル管理などができるようになってきたら、
gccかボーランドのコンパイラに移行すればまた無料でできます。
0836ヒッキ-@プログラミング ◆hky/PGis
NGNGインラインアセンブラのところでエラー出すんですが何ででしょう…。
あと、makeコマンドでコンパイル→リンクする時も
なぜかエラーが…。
設定の仕方がよくわかりません。タスケテ
0837デフォルトの名無しさん
NGNGとりあえずエラーメッセージを Copy & Paste しろ。
0838デフォルトの名無しさん
NGNG466で考えたことはずっと忘れないように。
> 結論としては、僕的にはコンピュータを内部まで知らなくても、1回ソースを
> 書いたら全ての環境で全く同じソースがコンパイルできるようになったら
> いいなと思います。
例えばJavaはすべてのプラットフォームに同じ土台(JavaVM)を用意することで
その上では同じコードを実行できる。
それもひとつの方法なんだけど、1がこれからもっと規模の大きいプログラムに取りかかるとき、
構造化やオブジェクト指向の考え方を知っておいて損はしないと思う。
ざっと1のVBのソース見た限りでは、プログラムが実行する処理を順番に書いてるだけだよね。
VC版ブロック崩しはブロック、パドルなんかを別ファイルに分けてるから、その辺考え始めてると思う。
確かにブロックやパドルは、それぞれひとまとまりだから分けることが出来る。
でもブロックもパドルもボールも同じ画面に描画される物体だよね。
それぞれ表示すべき座標があり、グラフィックがある。
ブロックに対しても、パドルに対しても、ボールに対しても「表示しろ」と命令すれば
しかるべき位置にしかるべき表示をしてくれるとすれば、理にかなってると思わない?
こういう考え方をすると、ブロック=パドル=ボールは共通の概念をもったものであると考えることもできる。
良くまとまらないけど、オブジェクト指向の考え方に踏み出すきっかけにならないかな…?
#俺も昔ゲーム作って、今の1と全く同じようなファイルの分け方してた(ワラ
0839デフォルトの名無しさん
NGNG今のVC版ブロック崩しではボールやパドルのソースファイルに
HDCやら何やらも一緒に入ってるよね。
で、例えばMoveしたときにHDCに対して絵を送ってやって表示を実現してる。
ボールを画面に表示するプログラムの手順としては間違ってるわけではないが、
ボールは表示されるべき場所(この場合はプログラムのWindowの中)の事まで
考慮すべきかどうか。
VBの時も、VCの時も、「ボール」の振る舞いは「移動する」「反射する」…で変わらない。
ブロック崩しのアルゴリズムも変わるわけじゃない。
変わったのは実装依存の部分。これはVBだったらBitBlt、VCだったらBltToBufとか使ったり。
他にはtimer使ったりイベントが呼び出されたり。
こういうとき一枚ラップ用の関数を定義して、例えば表示ならDraw()の中で
実装依存の関数BltToBufを呼び出したりすると、プログラムが読みやすくなる。
抽象化された概念(言葉)でラップして、実装は内側に閉じこめてしまうわけ。
このようにしておくと、例えば描画エンジンをDirectXに取り換えても書き換える部分はごくわずかで済む(のが理想)。
Drawの内側の実装部分を変えるだけだから。
実際うまく行くように切り分けるのは最初は難しいかもしれないけど、
この考える作業は結構楽しい。
でそれにハマりすぎて何時までも完成品が出来なかったりすることもあるけどな・・>俺。
そんなとき初心に帰ってゴリゴリ書くのもいいなとこのスレ見て思ったよ。
長レスすまそ。
0840ヒッキ-@プログラミング ◆hky/PGis
NGNGアセンブラのとこのエラーはこんな感じです…。
a.c: In function `vsync':
a.c:79: parse error before '{' token
で、中身はこんな感じです。
76:void vsync()
77:{
78: __asm
79: {
80: mov r0, 0x4000006
81: scanline_wait:
82: ldrh r1, [r0]
83: cmp r1, 160
84: bne scanline_wait
85: }
86:}
0841ヒッキ-@プログラミング ◆hky/PGis
NGNGMakeの時のエラーは、
D:\GBA\sample\proto_devkit\proto_devkit>make
gcc -g -O3 -mthumb-interwork -nostdlib -Wall -fverbose-asm -fpeephole -M main.c
> Makedepend.txt
make: /bin/sh.exe: Command not found
make: *** [Makedepend.txt] Error 127
こういうのです。
でも、sh.exeにはパス通ってると思うんですが…
っていうか、sh.exeに渡すファイルがないって言う事でしょうか…。
あ、友達からネトゲーのお誘いが…
>>838さんまた後でレスします
0842デフォルトの名無しさん
NGNG自信無いのでsage
0843デフォルトの名無しさん
NGNGgccのインラインアセンブラの書式じゃないから。
0844デフォルトの名無しさん
NGNGcygwinインストールした?
0845ヒッキ-@プログラミング ◆hky/PGis
NGNGうーん、一応PATHに足したつもりなんですが…
>>843
まじすか?がーん。
まずgccの使い方をもっと覚えた方がいいですよね…
>>844
cygintl.dll cygwin1.dll
っていうファイルは、zipに一緒に入ってたので
入れました。
0846844
NGNGDLLだけじゃなくて、cygwin上の開発環境入れたらかなり大量に入るはずなんだけど。
0847ヒッキ-@プログラミング ◆hky/PGis
NGNGcygwinってコンパイラとは別に用意しないといけないんでしょうか?
pathにはC:\devkitadv\binっていうのを足してます。
devkitadvっていうのがGBA用のgccみたいです。
0848デフォルトの名無しさん
NGNGちなみにmake.exeはそこにあるわけ?
0849ヒッキ-@プログラミング ◆hky/PGis
NGNG0850デフォルトの名無しさん
NGNGmount [ENTER]
mount -s [ENTER]
ってタイプするとなんて出て来る?
0851ヒッキ-@プログラミング ◆hky/PGis
NGNGmount: not found
$ mount -s
mount: not found
0852デフォルトの名無しさん
NGNGpwd [ENTER]
./mount [ENTER]
./mount -s [ENTER]
だとどうよ?
0853ヒッキ-@プログラミング ◆hky/PGis
NGNGで、cygwinのbashからmakeしたらうまく逝きました…。
>>852さんどうもありがとうゴザイマス。
0854デフォルトの名無しさん
NGNGまたプログラムやりたくなったよ。
頑張れー>>1
0855デフォルトの名無しさん
NGNGSHELL=sh
って書いたらたぶん解決してたと思う。
853で普通のcygwinとアドバンス開発環境が同居することになったようだけど、
無用な混乱が起こるような気がします。
PATHの設定とmountの状態でわけわからんくなる可能性がありますぜ。
0856ヒッキ-@プログラミング ◆hky/PGis
NGNGJavaってそういえばどこでも同じコードで動くんですよね。
でもシステム内部をいじるようなプログラムができないっぽい
ですね。やっぱこれからはWebベースのプログラムでないと
駄目なんでしょうか?C#もJavaっぽいし
Webのプログラムができなくてもいいから、いろんなシステム上で
動くコードが書けたら良いとおもうんですが…。
そういえばWindowsのコードって中間コードなんでしょうか?
それともx86系に依存したコードですか?……って調べてみます(わら
>ざっと1のVBのソース見た限りでは、プログラムが実行する処理を順番に書いてるだけだよね。
>VC版ブロック崩しはブロック、パドルなんかを別ファイルに分けてるから、その辺考え始めてると思う。
ファイルを、どこで線を引いて分けるかというのはとても
難しいですねー。とりあえず見た目に違うもので分けました…。
>ブロックに対しても、パドルに対しても、ボールに対しても「表示しろ」と命令すれば
>しかるべき位置にしかるべき表示をしてくれるとすれば、理にかなってると思わない?
そうですよね。
違うところは画像へのポインタと、座標だけですもんね。
>#俺も昔ゲーム作って、今の1と全く同じようなファイルの分け方してた(ワラ
安心しました(藁
やっぱそういう部分も考えないと良くなっていかないですねー。
今までは、ただ動けば(・∀・)イイという感じでプログラムしてました。
後で読めないソースや、再利用できないようなものを書くというのは
あまり良い事ではないですね。勉強になります。
>こういうとき一枚ラップ用の関数を定義して、例えば表示ならDraw()の中で
>実装依存の関数BltToBufを呼び出したりすると、プログラムが読みやすくなる。
この概念はすごい難しいです…。
いろいろ考えを巡らせてみましたが、中身の若干の変更で
他へ移植できるような書き方はなかなか思い付かないです…。
でも、うまくまとまってから作ったら、動きの把握しやすい
ソースになりそうですね。
後、少し疑問に思うことがあるのですが、ソース中の関数が、
WinAPIか自作の関数か分からなくなるときがあるので、
自作の関数に接頭文字を付けようと思いましたが、
全てに付けるにはあまりキレイじゃないし、読み分けするには
どうしようかと思っています。
もう一つ、staticな関数なんですが、他のファイルに公開する
関数と見分けるのがややこしいので、見やすくしたいと思うのですが、
どういう書き方が考えられるでしょうか。
僕的には、staticな関数は1段Tabしてから書いたらどうかと思っています。
そういう書き方は読みやすいですか?
(ソースの最後に、staticだけかためて書くというのも考えましたが、
機能別に書いていくと、ソースの途中に書いた方が良い場合もあったので…
もしかしてこっちの方が読みやすいでしょうか?)
最後に…レス忘れてました(;´Д`)すいません…
0857ヒッキ-@プログラミング ◆hky/PGis
NGNGおー、どもです!
プログラム、やっぱおもろいですよー。
がんばります!
>>855
がーん、まじですか?
後でインストしたcygwinにはパスが通っていないのか、
なぜかアドバンス開発環境のsh.exeからcygwinのコマンドが
実行できないんですよねー。うーん。
makeファイルからコンパイルするとき、イチイチcygwinから
cdで移動して、実行してました。
一回、SHELL=sh書いてみます。さんきうです!
0858デフォルトの名無しさん
NGNGWinAPI かどうかはそのうち覚えるから心配すんな。
でもまぁ自作関数にプレフィクスをつけるのは勧めとくよ。
少なくとも目立つ関数にはな。
関数の static 化はあんまり考えなくていーんじゃねーの。
そこまできっちり考えて作る必要なし。
0859デフォルトの名無しさん
NGNG> いろいろ考えを巡らせてみましたが、中身の若干の変更で
> 他へ移植できるような書き方はなかなか思い付かないです…。
Win32 only だが
表示 GDI, DirectX7
入力 User32.lib (Win32 標準), DirectInput8
サウンド mci, DirectAudio8
組み合わせ可能なコードとかなら手元にあるぞ。C++ だけど。
> WinAPI かどうかはそのうち覚えるから心配すんな。
俺は C++ で書いてるから、Win32 API にはグローバルスコープを示す :: を
つけるようにしてる。
0860838
NGNG一段落ついたらクラスの使い方を覚えるといいよ。
ファイル単位でデータをstaticにしたり関数をstaticにして
スコープを分ける代わりに、クラスを使うと、同じように
データと関数を1セットにまとめることができて、
publicとprivateのキーワードで外部公開するかしないかを選択できる。
>後、少し疑問に思うことがあるのですが、ソース中の関数が、
>WinAPIか自作の関数か分からなくなるときがあるので、
これはクラス(クラススコープ)の導入で解決する。
いま問題になるのは、Win32APIも自作の関数もグローバルなレベルにあるから。
クラスのメンバ関数はそのクラスに属するから、例えばパドルクラスを作れば
Paddle paddle;
paddle.Init();
というように、Init関数はパドルを初期化するんだぜ、ってのが明快になる。
同様に bar.Init() ってのがあっても混乱することはない。
今、PaddleInit() って関数名は、「パドルを初期化する」ものだから、
Paddleという接頭辞によってInitの対象を限定してることになる。
よって方向性は間違ってない。
関数をグローバルスコープにして接頭辞をつけて対処するのは誤り。
>関数の書き方
関数の実装はとりあえずヘッダに書いた順に並べてる。
ここは個人で見やすいようにしておけばいいと思う。
他のファイルから呼び出すときは、ヘッダファイルだけ見れば分かるから。
編集の時はVC++のクラスビューア(だっけ?)で関数名クリックすればジャンプするでしょ。
もしくはヘッダで関数名を右クリックして定義位置を表示。
あと、ソースの書き方は綺麗で好感が持てます。
0861デフォルトの名無しさん
NGNG> 関数をグローバルスコープにして接頭辞をつけて対処するのは誤り。
誤りってことはないやね。確かに C++ で書くなら接頭辞不要だけど、C の場合には
プリフィクスをつけるのは一般的。
Win32API なら wave*, mci* とか UNIX のカーネルなら pmap_*, arp_* など実例は
多数。
0862ヒッキ-@プログラミング ◆hky/PGis
NGNGSHELL=sh でうまく逝きました!
やたら苦労したので、やたら嬉しいです。どもども!
>>858
まだきっちり考えなければ把握できないほどの
規模でもなかったですね…。
よく出てくる関数は目立つ名前にしようかなーと思います。
>>859
GDI→DirectDrawは、だいたい予想つくんですが、
mci→DirectAudioっていうのは想像するのが難しいです…。
どこまで分解したらいいかとか、どういう機能があるかとかを
知らないといけませんね…。
グローバルスコープの::って、左に何か付けるんでしょうか?
右にはAPIの名前ですよね?
0863ヒッキ-@プログラミング ◆hky/PGis
NGNGクラス覚えたら、整理しやすくなりそうですね。
Javaの本ちょこっと読んだんですが、継承やら
多態やらムズカシそうなので理解しないうちに
置いてました…。
Paddle paddle;
paddle.Init();
こういう書き方はすごい見やすいですねー。
また疑問が湧いてきたんですが、パドルの実体を
作るのって、メインループのあるファイルの中で
いいんでしょうか?
>関数の実装はとりあえずヘッダに書いた順に並べてる。
ほおほ、やっぱヘッダの順番と中身の順番が違うかったら
ややこしいですよね。
やっぱ、関数の機能の説明などのコメントは、ヘッダの方に
入れた方がいいですか?
>もしくはヘッダで関数名を右クリックして定義位置を表示。
あ、そんな機能あるんですか!?(;´Д`)
>あと、ソースの書き方は綺麗で好感が持てます。
ありがとうございます。
実際、仕事に逝った時に役に立てるようにもっと
いろいろ書き方考えてみます。
>>861
時と場合によって使い分けるのがいいんですね。
何かに固執して、他の場所で臨機応変に対応できない
ようにならないように気をつけます。
0864デフォルトの名無しさん
NGNG> グローバルスコープの::って、左に何か付けるんでしょうか?
グローバルスコープにある識別子(変数や関数名、enum 値)にアクセスする場合
には、何もつけません。
::CoInitialize(NULL);
みたいに書けば OK。
C だと名前はグローバルスコープ以外には置けませんが、C++ だと namespace
やクラスに閉じ込めることが出来ます。
namespace Block
{
enum { PADDLE_PLAYER1, PADDLE_PLAYER2 };
}
たとえばこんな感じに書くと enum 値は Block 名前空間に属することになるので
Blcok::PADDLE_PLAYER1
と書いてアクセスできます。所属する名前空間が異なれば、同じ識別子があって
も衝突せずに併用できます。
あと、特定の名前空間の識別子を選択的、あるいはまとめて現在のスコープに
導入する方法 (using namespace) があるので、実際にはそれを使うことが多い。
0865838
NGNG誤り、は言い過ぎた。実例上げてくれたとおり。
自分で関数定義するとき、かつクラスや名前空間が使えるとき、
という条件のつもりで書いた。
>>863
>パドルの実体を作るのって、メインループのあるファイルの中で
>いいんでしょうか?
でいいよ。使うところで作る。
他にはゲーム進行を行うクラスを定義して、そのメンバとして
パドル、ボール、ブロックを持たせるやり方も考えられる。
>やっぱ、関数の機能の説明などのコメントは、ヘッダの方に
>入れた方がいいですか?
両方に同じ説明(短文)を書いてる。実装の方にはコードの修正日も。
上手い人の書き方を参考にして、自分がいいと思う書き方でやればいいと思うよ。
複数人で作業する環境だったら、コメントはこう書け、みたいな
規約が決まってるかもしれない。
0866デフォルトの名無しさん
NGNG> 実装の方にはコードの修正日も。
それはバージョン管理ツール入れて、バージョン管理ツールにお任せが良いと
思われ。
私はバージョン管理は CVS、コメントは doxygen で出力できるように Javadoc
形式で入れてる。
0867デフォルトの名無しさん
NGNG同時に三つのブロックに当たったときの動作どうする?
漏れのプログラムの場合、そのまま突き抜けるような
動作になっちまって・・
0868ヒッキ-@プログラミング ◆hky/PGis
NGNG>::CoInitialize(NULL);
>みたいに書けば OK。
ほおほ、そういう書き方があるんですねー。
ネームスペースっていうのは初めて聞きました…。
そんな便利な機能があったとは。
>あと、特定の名前空間の識別子を選択的、あるいはまとめて現在のスコープに
>導入する方法 (using namespace) があるので、実際にはそれを使うことが多い。
?なんか滅茶苦茶ムズカシいんですけど…(わら
using namespaceっていうのは手法のことでしょうか?
それともライブラリみたいなものですか?
>>865
>他にはゲーム進行を行うクラスを定義して、そのメンバとして
>パドル、ボール、ブロックを持たせるやり方も考えられる。
おお、そういう事も考えられるんですね。
なんか、目に見えるものばっかりをクラスに定義しようと
考えてました…。
クラスにクラスを持たせるっていう時は、継承させるんでしょうか?
それとも、実体をクラス内に持たせるという事ができるんでしょうか?
>両方に同じ説明(短文)を書いてる。実装の方にはコードの修正日も。
その方法なら修正時に、実装部かヘッダーか、
どちらを見られても対応できますね。
コードの修正日ってやっぱ必要なんでしょうか?
>上手い人の書き方を参考にして、自分がいいと思う書き方でやればいいと思うよ。
ですね。いろいろ見回って勉強します。
>複数人で作業する環境だったら、コメントはこう書け、みたいな
>規約が決まってるかもしれない。
複数人でやった事ないですけど、そういうルールって
結構重要っぽいですね。
>>866
バージョン管理ツールって、よく聞くんですが、
どういうソフトなんでしょうか?イメージできない…。
>>867
僕のやつも、2つほど一緒に当たると、突き抜けてしまいます(わら
ボールの近くのブロック全て検知して、同時に当たったときは、
進む方向に対してOR演算とかしたらうまく逝きそうな予感…
0869デフォルトの名無しさん
NGNG> ?なんか滅茶苦茶ムズカシいんですけど…(わら
「名前空間」とか使ってる単語が難しいだけで、別に実際に使うのは難しくないって。
namespace Paddle
{
using namespace Ball;
// こうすると namespace Ball の中にある名前を、修飾 Ball:: なしで
// 参照できる
using std::for_each;
// こうすると namespace std にある for_each だけを、修飾 std:: なしで
// 参照できる
}
こんな感じ。
0870ヒッキ-@プログラミング ◆hky/PGis
NGNGそういうのって、関数の引数に指定したりできるんですか?
function(namespace Paddle)みたいに…。
今のところ、enumのパワーアップ版みたいなイメージしてます。
あと、例えばBallには、数値を持たせることはできますか?
0871デフォルトの名無しさん
NGNGひまになったんでなんかゲーム作ろうと思って。
0872ヒッキ-@プログラミング ◆hky/PGis
NGNGういういー。
っていうか、ここは2chなので、漏れに人の考えを
制限する権利が無いんですよね。どぞご自由に。
0873デフォルトの名無しさん
NGNG>>868
クラスにする目安は、意味的、役割的にまとめる価値があるもの。
管理役として、マネージャっていう職があるのと同じ。
クラスを継承するか、所持するかは、例えば
トヨタ車とホンダ車など各社の車を表すのに「車」クラスを継承させる
車の「ハンドル」や「タイヤ」は車が所持する
と考えれば分かりやすいかな。
クラスにクラスを持たせるのはこんな感じ。
Class Paddle {}
Class Ball {}
Class Manager {
Paddle paddle;
Ball ball;
}
>コードの修正日
いつ書いたコードか分かるのは便利。
過去に書いたコードと比較して、スキルレベルの確認ができるから。
0874ヒッキ-@プログラミング ◆hky/PGis
NGNG>クラスにする目安は、意味的、役割的にまとめる価値があるもの。
>管理役として、マネージャっていう職があるのと同じ。
そういうとらえ方なんですねー。
なんか誤解してました…。
>トヨタ車とホンダ車など各社の車を表すのに「車」クラスを継承させる
>車の「ハンドル」や「タイヤ」は車が所持する
おおお、イメージばっちりです!
すごく分かりました。ありがとうございます。
>いつ書いたコードか分かるのは便利。
>過去に書いたコードと比較して、スキルレベルの確認ができるから。
ほおほ、たしかにそうですよね。
僕も修正日とか書くように心がけようと思います。
0875ヒッキ-@プログラミング ◆hky/PGis
NGNG最近、ブロック崩し作ってませんでした…。
GBAにはまりまくりです。
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGマウスや、ましてやキーボードなんかじゃまったく遊べない。
何か新機軸のアイデアでもあれば別だけど、、、
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNGそれだ!
マウスホイールならいっそ画面を90度回転させるとか。
自機の移動は縦で。
0885デフォルトの名無しさん
NGNGそれって昔のテニスじゃ・・・
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG自機の10倍くらいに
0888
NGNG0889ヒッキ-@プログラミング ◆hky/PGis
NGNGhttp://www.geocities.co.jp/SiliconValley/2530/car.lzh
GBAで連打するゲーム作ったんで、よろしければ
やってみて頂きたいなぁと。
まだ完成度低いですけど…。
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNGこれでできると思われ。
自分はできました(感動した)。
0892ヒッキ-@プログラミング ◆hky/PGis
NGNGがーn
>>891
お、どもです!
やっぱやってくれる人がいると、すごい嬉しいっす。
今、F-ZEROの地面みたいな画面はどうやって描くか
考え中です。回転の式をうまく使えばできるかなぁとか…
でも、あんなグリグリ動かしたら処理落ちしそうな気もするし…。
あと、回転した後の図形の、当たり判定っていったい
どうするんでしょう。当たり判定の位置を決めるにも、
毎フレーム回転させないといけないんでしょうか。
■ このスレッドは過去ログ倉庫に格納されています