TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
【25周年】ロックRレクションを作ろう
iPhone用のゲーム作ってるやついる?
素人だけどゲーム作りたい
【3Dエンジン】Irrlicht初心者質問スレその4
そろそろ本格的にMMORPGつくってみようぜ!
サウンドノベル企画実質8〜鬼哭島殺人事件
【SRPG】理想的なダメージ計算
DXライブラリ 総合スレッド その18
【ウディタ】WOLF RPGエディター 其の67
OpenGL
Cでブロック崩しを作りたい
- 1 :03/12/08 〜 最終レス :2017/12/31
- おしえてください
- 2 :
- #が消えました
- 3 :
- なにも知らない香具師に赤の他人が手取り足取り教えてくれたら
さぞかし楽な世の中であろう。
- 4 :
- 7行で作れ!
- 5 :
- 貴様ら!ブロック崩し作るので見てください
http://pc.2ch.sc/tech/kako/1004/10048/1004855513.html
- 6 :
- ってか教えてくれってのよくあるが自分がどこまで知っててどこまでできるのかそれを言わないと
なにもわからないから教えようがないな
- 7 :
- >>6
心配するな。
ここは、>>1が立て逃げしたスレだ。
- 8 :
- まずはテキストベースで作れ。
話はそれからだ。
- 9 :
- えーーー
- 10 :
- 唐突にやってみたくなった。今日は一日ヒマだし挑戦してみるか…
- 11 :
- 表示位置を指定するには ansi.sys ってのが必要なんだそうだ
http://www.gaia.h.kyoto-u.ac.jp/users/izui/technotes/escape.html
上記サイトの情報を元にまとめてみた
// ansi.sys用の画面操作
#define BLACK 0
#define RED 1
#define GREEN 2
#define YELLOW 3
#define BLUE 4
#define MAGENTA 5
#define CYAN 6
#define WHITE 7
#define clearScreen() printf("\x1b[0m\x1b[2J")
#define setColor(f, b) printf("\x1b[0;1;3%d;4%dm", f, b)
#define setColorDark(f, b) printf("\x1b[0;3%d;4%dm", f, b)
#define setCursorPos(x, y) printf("\x1b[%d;%dH", y+1, x+1)
#define displayCursor(disp) printf("\x1b[>5%c", disp ? 'l':'h')
- 12 :
- 16ビットアプリで作るのか。
いや、止めやしないが。
- 13 :
- いやまておまいら。
「C」が言語のことだとは限らんぞ。
つまり、>>1が作りたいのは、こう↓だ。
CCCCCCCCCCCCCCCCCCCCCCCCC ←ブロック
CCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCC CCCCCCC
C ←ボール
/
CCCCC ←バー
- 14 :
- 速度の調整方法がわからない。やっつけで組んでみたがガタガタになる。
とりあえず後回しにしてロジックから組もう…
#define FPS 60
void wait()
{
static long waitTime = 0;
long count1, count2;
int second;
if(waitTime == 0)
{
second = time(NULL);
while(second == time(NULL));
second = time(NULL);
for(waitTime = 0; second == time(NULL); waitTime++)
{
for(count2 = 0; count2 < 0x10000; count2++);
}
waitTime /= FPS;
}
for(count1 = 0; count1 < waitTime; count1++)
{
second = time(NULL);
for(count2 = 0; count2 < 0x10000; count2++);
}
}
- 15 :
- キーバッファを確認してあれば読み取り、余れば読み飛ばし、
6で右移動、4で左移動… あれ?「キーが離されて止まる」
ことが認識できない!?
// キーボード入力
int getKey()
{
int result = 0;
while(kbhit())result = getch();
return result;
}
- 16 :
- // メイン
int main( int argc , char *argv[])
{
〜〜〜初期化〜〜〜
while(true)
{
key = getKey();
if(key == 0x1b)break;
〜〜〜各種処理〜〜〜
wait();
}
return 0;
}
- 17 :
- //変数の宣言
int px, py;// パドルの位置
int pu ;// パドルの進行方向
// 座標系:256単位 = 全角1キャラクタ
int bx, by;// ボールの位置
int bu, bv;// ボールの進行方向
int bs, bc;// ボールのスピードとウェイと用
int stock = 4;// ボールのストック
char block[14][27] = {0};// ブロックテーブル
int norma = 0;// 残りのブロック
- 18 :
- 連続投稿の制限あるんだな
int x, y, key;
displayCursor(0);
clearScreen();
setColor(WHITE, WHITE);
for(y=0; y<25; y++)
{
setCursorPos( 0, y); printf("■");
setCursorPos( 50, y); printf("■");
setCursorPos(y*2, 0); printf("■");
}
for(y=0; y<6; y++)for(x=0; x<12; x++)
{
setColor(RED+y, RED+y);
setCursorPos(x*4+2, y+3); printf("[##]");
block[x+1][y+3] = 1;
norma++;
}
px = 26-4; py = 22;
pu = 0;
bx = 26; by = 21;
bu = 1; bv = -1;
bs = 4; bc = 0;
- 19 :
- // ボール移動
bc++;
if(bc >= bs)
{
if(bx <= 2)bu = 1;
if(bx >= 49)bu = -1;
if(by <= 1)bv = 1;
setColor(WHITE, BLACK);
setCursorPos(bx, by); printf(" ");
if(block[(bx+2+bu)/4][by])
{
block[(bx+2+bu)/4][by] = 0;
norma--; bs = norma/18 + 1;
setColor(WHITE, BLACK);
setCursorPos((bx+2+bu)/4*4-2, by); printf(" ");
bu = -bu;
}else bx += bu;
if(block[(bx+2)/4][by+bv])
{
block[(bx+2)/4][by+bv] = 0;
norma--; bs = norma/18 + 1;
setColor(WHITE, BLACK);
setCursorPos((bx+2)/4*4-2, by+bv); printf(" ");
bv = -bv;
}else by += bv;
bc = 0;
}
setColor(YELLOW, GREEN);
setCursorPos(bx, by); printf("O");
- 20 :
- ブロックブロックー
- 21 :
- break( block );
- 22 :
- テトリスみたいに7行でつくれるんじゃねーの
- 23 :
- これでおしまい
// クリア判定
if(norma <= 0)
{
setColor(WHITE, RED);
setCursorPos(17, 12); printf("ALL CLEAR");
for(x=0; x<60; x++)wait();
break;
}
- 24 :
- このプログラムはWindows98で入力したが、WindowsXPではやはりまともに
うごかない。ansi.sys を適用させるため config.nt や command.com の
ショートカットをいじってみたが効果なし。どうやらWin32コンソール用に
コンパイルしたのがいけないらしい。
LSI C-86試食版を落としてきたのでこちらでコンパイルしようとしている。
これどうやって使うんだろ?
- 25 :
- コンパイルできないのは拡張子がcppになっていたからだった。
コメントに//が使えないとか、long型を使用すべき場所でint型を使って
いたとか、問題が多発。全体的に修正しよう。
- 26 :
- さっそくWindowsXPで実行。しかし描画落ちしまくりでまともに映らない。
command.comを実行しただけでも、キーのレスポンスがものすごく悪い。
全画面化するとキー入力を全く受け付けない。
どういうこと?だれかHELP!
cmd.exeは正常に動作している。
- 27 :
- 内部的には正常に動作しているっぽい。画面の更新が毎秒2〜3回しか
行われていないように見える。
- 28 :
- >>10
Win32のコンソールでやりたかったら、ここら辺を参考にしれ。
ttp://www.kumei.ne.jp/c_lang/intro/no_61.htm
- 29 :
- ゲ製作には珍しいC#スレかと思ったらなぜCばかり?
- 30 :
- >>29
>>1がアフォだから
- 31 :
- private void MainForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode == Keys.NumPad4)
{
Pad.X -= 4;
}
if(e.KeyCode == Keys.NumPad6)
{
Pad.X += 4;
}
e.Handled = true;
}
- 32 :
- >>28
API使っていいなら普通のウィンドウ出したほうが早いよ…
ANSIでやりたかったんだ。でもありがとう。
- 33 :
- private void MainForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
SolidBrush brushball = new SolidBrush(Color.Pink);
e.Graphics.FillEllipse(brushball, Ball);
SolidBrush brushpad = new SolidBrush(Color.Yellow);
e.Graphics.FillRectangle(brushpad, Pad);
}
- 34 :
- >>33
重そう
- 35 :
- せめて、bitbltくらい…
- 36 :
- 情報の少ないC#関連。だからage
- 37 :
- むずい
- 38 :
- (C#でブロック崩しを作るのは)難しい
- 39 :
- >>38
C#経験ないんだけど、Cと比較して難しいの?Javaみたいなモンじゃないの?
OO慣れていればBasicやったりCで実装するより簡単なような気も。
SharpDevelop入れてみるかな。
- 40 :
- スプライトない時点で今時のパソコン言語なんざ団栗の背比べ
- 41 :
- OOPLなり構造化が考えられた言語なりあれば
往年のPCのスプライト的な実装作るのって
そんなに手間かからんでしょ。
ドライバアクセスがこんなにラクなんだから。
- 42 :
- >>40
スプライトオヤジキタ━━━━━━(゚∀゚)━━━━━━!!!!
- 43 :
- スプライトを言語に掛けてるところがなんとも・・・w
- 44 :
- スプライト指向言語
- 45 :
- 2ゲトー!! ズザザザー
- 46 :
- まあテキスト画面が無いのはどうかと思う
- 47 :
- スプライターのいるスレはこちらですか?
- 48 :
- >>46
それはむしろエディット系コントロールとか作るときに不便
- 49 :
- 昔はハードウェアでコリジョン判定してたから速かった
スプライトまんせー
- 50 :
- 最近は文字書くのにいちいちグラフィックで描くのな
消すのも背景色で塗りつぶさなくちゃいけないし
FONTROM最強
- 51 :
- PC/ATも英語ならテキストモード持ってるYO!
- 52 :
- スプライトなどもはや時代遅れだ。
やはりPCGが最強。
- 53 :
- EGC は最凶
- 54 :
- >>13
あんた賢いな・・・
- 55 :
- ブリック崩しにオブジェクト指向は向かない
- 56 :
- クラス:キャラクタ
プロパティ:位置
メソッド:描画
メソッド:移動(全キャラクタへの参照)
メソッド:接触判定(キャラクタへの参照)
クラス:ブロック
プロパティ:ブロック種別
プロパティ:接触回数
クラス:玉
プロパティ:玉種別
クラス:パドル
プロパティ:パドル種別
意外といけそうですが。
- 57 :
- 玉の動きけっこうむずいんだよね。
ブロックの角に当たったとき、もときた方向に
もどるのはいいとして、ブロックがたくさん並んでいて
見た目平らな面のときは都合が悪い。せっかく穴に球が
入っていったのにすぐ戻ってきたりして。
あと、L字型に並んだブロックに対して三つ同時に
ブロックに当たったとき跳ね返る方向とか。
その辺まで考えないで作れられてるブロック崩しの
サンプルが以外と多い。
- 58 :
- ttp://ponk.jp/el/index.php?page=3
フリーのライブラリ使って結構手軽に作れる。
入門書一冊読んだ位でも十分理解できると思う。
- 59 :
- よーしManagedDirectX使っちゃうぞー
- 60 :
- >>57
玉は丸いので3つはあり得ません。
- 61 :
- 完成前に沈みそうなのであげ
- 62 :
- age
- 63 :
- M-DirectXでrogueもどきでもつくるか
3Dアルファベットの…
- 64 :
- WinRougeキタ━━━━━━(゚∀゚)━━━━━━ !!
- 65 :
- 採掘
- 66 :
- うーん
- 67 :
- >>13
わらた
- 68 :
- 文芸復興
- 69 :
- 上げんなチンカスゴミクズ
- 70 :
- >>33もう少し軽くならないかな・・・
- 71 :
- くくく・・・
無理だろう いくらansi.sys使って色変えても
お前は見てしまったんだ、悪魔のcursesを
お前はまた作りだすしかないんだヨ。
- 72 :
- >>63
どうせなら、日本語にしようぜ。
- 73 :
- ブロポンクローンを希望
- 74 :
- asm{
mov ax,13h
int 10h
}
- 75 :
- >>73
遊ぶだけならエミュでもいいんだろうけど
やっぱWinネイティブでプレイしたいな。誰か作らんものか。
- 76 :
- .NETフレームワークいれなならんの?
- 77 :
- age
- 78 :
- http://members3.jcom.home.ne.jp/tama-t/block.exe
>>56を参考にして作ってみた。
ボールの動きに何かおかしい
所とか無いかな?誰かやってみてくだされ
重いかもしれないがスマソ
Escで終了します
- 79 :
- てか2ヶ月前のスレかよこれ
- 80 :
- ,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,--―'''""`ヽ'  ̄`ヽ、
/ ヾ / ~`ヽ
/ ヽ;:/""""ヾ ミ ヽ
/ ;:;;:::''''"""" \ i
/ / ヽ ヾヽ
/ / / ;/ ヾ ヽ
/ ;:;:ヽ ,,,,;;::'''''ヽ ;:|
i / ,,,,;;::::::::::::::: ヽ ヽ
| | | " :::: /\ ヾ ヽ
| | ヾ | /\ ::::::. : | ;:|
| ;:| : ::::::: : .、 | :|
| ヽ ( ,--、 ,:"' | /|!
| ヽ ヾ |;:/
| | __,-'ニニニヽ /|
|| `、ヽ ヾニ二ン" /;:|
| ヽ \ /ノ
| i `ー-::、_ ,,..-'|ヽ
ヽ;:;:;:;: ;:人 `ー――'''''"~ / ヽ
\;:;:;:;:/ `ー-、 ,.-'" \ー-、
,.-'" :/ \ ,.-''" |
/ ! ~>、,.-''" |
,,..-‐'''"" ヾ ,.-''"――――-、 /
- 81 :
- おーいだれかCでブロック崩し
- 82 :
- おーいだれかCでブロック崩し
- 83 :
- >>81-82
>>13
- 84 :
- まだ作れんのか?
俺は昨日一日で作れたぞ
- 85 :
- C#で作ってみるか
- 86 :
- ちょっと作ってみたい。
今絵出す関数作るから待って〜。
- 87 :
- 跳ね返りがワカンネ
- 88 :
- 移動値にマイナス掛けろ
- 89 :
- とりあえず絵は出た。今入力関係作り中。
ブロック崩しを作りたい
ttp://gamdev.org/w/?%5B%5B%A5%D6%A5%ED%A5%C3%A5%AF%CA%F8%A4%B7%A4%F2%BA%EE%A4%EA%A4%BF%A4%A4%5D%5D
ここに丁寧な作例が。先は長いですね。
- 90 :
- 入力もなんとかできたので、ゲーム部分の製作に入る。
今ここ〜
ttp://gamdev.org/up/img/5196.png
早くもしんどくなってまいりました orz
- 91 :
- ttp://gamdev.org/up/img/5214.png
全然進んでないけど絵をうp
サイズを決定して描画テストしただけ
まだまだ動かない ∩(´Д`)∩
- 92 :
- ぶろっく多っ
- 93 :
- んー、ブロックとボールの判定がむずい orz
ボールがブロックにHit → ボールの座標をHitしたブロックの隣に → 角度を逆に
という流れなんだけど、
二番目のボールの座標調整が難しい・・
- 94 :
- http://gamdev.org/up/img/5273.png
http://gamdev.org/up/img/5274.zip
やっと意図どおり判定できたよ記念うp \(^o^)/
あとは隣接するブロックに同時に当たったときの処理をなんとかすれば、
最難関はクリアかな?
>>92
余裕があれば、アイテムとか出して一気に消せるゲーム性にしたいんだけど、
今どうしようか迷い中w
- 95 :
- 誰が今時ブロック崩しなんかするんだよw
- 96 :
- 確かに私も絶対やらないww
でも作る分には結構楽しいよー。
- 97 :
- 言語はC++だな?
ボールがカプセル化されてる!
- 98 :
- 当たっても消えないことがあるのは仕様か?
まあがんがれ。
- 99 :
- >>97
おお、なかなかするどい指摘!
だけどだけど、実際のプログラムがカプセル化とは名ばかりの
穴だらけのクラス群で動いてることまでは見抜けまい! ( ̄ー ̄)b
>>98
応援あり。消えないことがあるのは仕様ですw
- 100 :
- アイテムは出さなくていいから、
ぶろポンみたくブロックにいろいろ個性を出して欲しいな(要望)
100〜のスレッドの続きを読む
ストーリー制作・演出に関する注意スレ
アクションゲームツクールMV 5作目
FPSの作り方おーしえて
サルでもできるスロゲー開発
ツクールを使わずにRPGを作りたい
Unityで何かゲームを作りたいんだがね
【c#+DX】スピードシューティング(仮)プロジェクト
ロースペックでもがんばる
面白いゲーム作る
【68000】メガドライブ用ソフト開発 3本目【Z80】
--------------------
SDガンダム Gジェネレーションワールド part165
文具オタにありがちなこと
ゲーセンって死ぬの?
王を殴り殺そうとした阪神ファン、その他の悪行は?
☆☆BJW・大日本プロレス総合スレッド138☆☆
【原巨人】読売ジャイアンツ900
【SKY】 スカイコイン Skycoin 7枚目
【芸能】『新しい地図』3人の“地上波復帰”へフジテレビが水面下で猛プッシュ!
To LOVEる-とらぶる-のティアーユ・ルナティーク萌えスレ4
木村拓哉パック事故
今日あったことを3行で【園芸版】
☆ 大河ドラマ『信長のシェフ』 ★
精神を侵すAA Part3
ペルソナ3の伊織順平はお手上げ侍 10テレッテッテー
■小倉のレストラン・バー Cow Girls!■■
【ITギア】ITギアアクセス解析
【夕刊フジ】暴走する韓国 数々の裏切り行為や侮辱発言…日本人の堪忍袋の緒は切れた[8/6]
【星に】40代で無職 1018日目【願いを】☆彡 [ひまわり学級]
スミダファーストの会(笑)【首吊りチョンコ発狂】
【北朝鮮韓国総聯総連民団中国帰化】本日の不自然な名無し犯罪スレ3
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼