• ベストアンサー

こんにちは、現在ブロック崩しをつくろうと思い、以下のサイトのコードを参

こんにちは、現在ブロック崩しをつくろうと思い、以下のサイトのコードを参考にしています。 ttp://www.geocities.jp/gamerabbits/bo1_5_s.htm しかしながら、これではブロックを描写することができませんでした。ゲーム初期関数における、for関数に問題があるということはわかるのですが、実際にどのようなコードを書けばいいのかわかりません。 どなたかアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.4

>for文の記述はよくわかっています。 それでは、なぜ、文法に沿ったコードを書かないで、 コンパイルエラーに悩んでいらっしゃるのですか? さっきの回答で書いた、for文のAとBとCにあたる内容を よ~く吟味してくださいませ。

kenyoi
質問者

お礼

お時間取らせてすいません、もう一度良く考えてみます。どうもありがとうございました。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

>for(i=0 ; i (GAME_WND_WIDTH - BLOCK_WIDTH - (ball.width * 2))) ←292行目 for文の構文は for (A; B; C) { /* 何かの文 */ } であることを理解できていますか? くだんのfor文は、 上記Bが条件式の形をとっていない点と 上記Cが欠けている点とで問題ありです。

kenyoi
質問者

補足

for文の記述はよくわかっています。 つまりは、このfor文によって、ブロックを横においていき、画面端にきたら、一段下げてまた横に並べていきたいのです。 変数xにはブロックのx座標、yにはy座標を代入していきたいのです。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

>1>c:\users\user\documents\visual studio 2008\projects\block\block.cpp(292) : >error C2064: 1 引数を取り込む関数には評価されません。 >1>c:\users\user\documents\visual studio 2008\projects\block\block.cpp(292) : >error C2143: 構文エラー : ';' が ')' の前にありません。 block.cppの292行目を含む前後20~30行を見せてください。 なお、for「関数」ではなくてfor「文」です。

kenyoi
質問者

補足

for文でしたか、失礼しました。 int Paint_Blocks(HDC hdc) { int i; if(blocks == 0) return 0; // ブロックが画面に1つも残っていなければ戻る HDC hdc_all;// デバイスコンテキストハンドルの定義 hdc_all = CreateCompatibleDC(hdc);// デバイスコンテキストハンドルの作成 SelectObject(hdc_all, hb_all);// オブジェクトの選択 for(i=0 ; i< block_count ; i++) { if(blocks[i].enable == 0) continue; BitBlt(hdc, blocks[i].bounds.left, blocks[i].bounds.top, BLOCK_WIDTH, BLOCK_HEIGHT, hdc_all, 200, 200, SRCCOPY);// 転送 } DeleteDC(hdc_all);// デバイスコンテキストの開放 DeleteObject(hdc_all);// オブジェクトの開放 return 0; } //////////////////////////////////////////////////////////////// // ゲーム初期化関数 //////////////////////////////////////////////////////////////// int Init_Game() { int i; bar.width = 100; bar.height = 5; bar.location.x = 30; bar.location.y = 220; // ボール関連の初期化【ブロック関連の初期化より先に書くこと】 ball.width = 4; ball.height = 4; ball.move = 1; ball.location.x = 80; ball.location.y = 180; // ブロック関連 block_count = 56; // ブロックの数 // ブロックの数分メモリを確保する。 blocks = (blocks_info *)malloc(sizeof (blocks_info) * block_count); // 1番目のブロックのx座標 blocks[0].bounds.left = ball.width * 5; // 1番目のブロックのy座標【ボールの移動距離の倍数にすること】 blocks[0].bounds.top = ball.height * 8; for(i=0 ; i (GAME_WND_WIDTH - BLOCK_WIDTH - (ball.width * 2)))         ←292行目 { x = ball.width * 5; y += BLOCK_HEIGHT; } } return 0; } 上記のfor文です。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

> ブロックを描写することができませんでした。 > ゲーム初期関数における、for関数に問題がある これでは、回答のしようがありません。 実際にどういうコードを書いているのでしょうか? 描画できない状態とはどういう状態?エラーが出た? 開発環境・実行環境も書きましょう。

kenyoi
質問者

補足

回答ありがとうございます。 失礼しました、開発環境はvissual C++ 2008 express edition です。 一部抜粋して書きますと、 int Paint_Blocks(HDC hdc) { int i; if(blocks == 0) return 0; // ブロックが画面に1つも残っていなければ戻る HDC hdc_all; // デバイスコンテキストハンドルの定義 hdc_all = CreateCompatibleDC(hdc); // デバイスコンテキストハンドルの作成 SelectObject(hdc_all, hb_all); // オブジェクトの選択 for(i=0 ; i< block_count ; i++) { if(blocks[i].enable == 0) continue; BitBlt(hdc, blocks[i].bounds.left, blocks[i].bounds.top, BLOCK_WIDTH, BLOCK_HEIGHT, hdc_all, 200, 200, SRCCOPY);// 転送 } DeleteDC(hdc_all); // デバイスコンテキストの開放 DeleteObject(hdc_all); // オブジェクトの開放 return 0; } //////////////////////////////////////////////////////////////// // ゲーム初期化関数 //////////////////////////////////////////////////////////////// int Init_Game() { int i; bar.width = 100; bar.height = 5; bar.location.x = 30; bar.location.y = 220; // ボール関連の初期化【ブロック関連の初期化より先に書くこと】 ball.width = 4; ball.height = 4; ball.move = 1; ball.location.x = 80; ball.location.y = 180; // ブロック関連 block_count = 56; // ブロックの数 // ブロックの数分メモリを確保する。 blocks = (blocks_info *)malloc(sizeof (blocks_info) * block_count); // 1番目のブロックのx座標 blocks[0].bounds.left = ball.width * 5; // 1番目のブロックのy座標【ボールの移動距離の倍数にすること】 blocks[0].bounds.top = ball.height * 8; for(i=0 ; i (GAME_WND_WIDTH - BLOCK_WIDTH - (ball.width * 2))) { x = ball.width * 5; y += BLOCK_HEIGHT; } } return 0; } 質問にあるURLを見てくださるとよりよくわかると思います。 デバッグしてみると、 1>c:\users\user\documents\visual studio 2008\projects\block\block.cpp(292) : error C2064: 1 引数を取り込む関数には評価されません。 1>c:\users\user\documents\visual studio 2008\projects\block\block.cpp(292) : error C2143: 構文エラー : ';' が ')' の前にありません。 1 とでました。

関連するQ&A

  • ブロック崩しを作っているのですが…。

    ブロック崩しを作っているのですが ボールのあたり判定について困っています。 ソースコード→http://ameblo.jp/yuse1247/entry-11875651194.html ソースが汚いのでコメント入れてます。見にくくてすいません。 実行結果→http://ameblo.jp/yuse1247/entry-11875652132.html ※ここからはソースコードをみた前提で話します。 ボールがfield1 field2 field3に当たった時に跳ね返るようにしたいのですが どうすればいいでしょうか…。

  • wgetのコマンドでは不可能?

    はじめまして、こんにちは。 wgetでpdfをダウンロードしようと試しているのですが、上手くいかず困っている為質問させて頂きます。「ttp://www.***.jp」というサイトの中の「/yuho/」より下のディレクトリにあるpdfファイルをダウンロードしようとしています。 ttp://www.***.jp ↓ ttp://www.***.jp/list/s1000.htm (s1000はs2000,s3000,,,s9000まである) ↓ ttp://www.***.jp/code/1301.htm (1301は1000,1001,,,9999まである) ↓ ttp://www.***.jp/yuho/1301.htm (1301は1000,1001,,,9999まである) ↓ ttp://www.***.jp/mark/20141114/S1003FL5.htm (20141114とS1003FL5はそれぞれ変動、このページにpdfファイルへのリンクがある) 上記の様にリンクが繋がっていて、 ディレクトリ「list」「code」「yuho」「mark」を取得対象とすれば良いのだろうと考え、wgetで -I オプションでディレクトリを list/,code/,yuho/,mark/と指定してみたのですが、上手く働きませんでした。 これはやはり階層構造になっていない為でしょうか? 余計なページのpdfをダウンロードせず、ディレクトリ「yuho」以下の階層にあるpdfをダウンロードする場合はどのようなwgetのコードを書けば良いのでしょうか? wgetでは不可能なのでしょうか? Irvineというダウンローダーで ttp://www.***.jp/yuho/1301.htm の「1301」の部分を1000から9999にして、ダウンロードする拡張子をpdfに指定、階層を2にして実行しましたがこれも失敗でした。 現在も色々調べておりますが、知恵が足りず大変困っております。 こういった分野に造詣が深い方がいらっしゃいましたら、どうかご教授下さい。 宜しくお願い致します。

  • エレキギターで「ドレミファソラシド」

    こんにちは。 私はエレキギター超ド初心者です。 コード弾きに飽きてきたので 単音で何か簡単な曲を弾いて見たいと思い、 1 h ttp://www.geocities.jp/hide_chik/scale3.htm 2 h ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1214346827 上のサイト様を参考にさせて頂きました。 そこで疑問なのですが、 2番目のサイト様で 左手で押さえた弦だけを右手で引くのですか?それともすべての弦を引くのですか? の質問に対して ケースバイケース との回答がありましたが、 楽譜のどこを見れば右手の動きがわかるのでしょうか? それとも楽譜には書いていないのでしょうか・・・ ご存知の方、お願いします^^

  • このHPの保存ができない・・・

    初めまして。色々誤字があるかもしれませんが、 よろしくお願いします。 本題ですが、 インターネットのHPを保存するソフトを使って、 ttp://www.geocities.jp/qdobp_m/1023/male_fgt_index.htm このHPを保存しようとして、保存したのですが、 スクリプトがどうのこうのってなってしまって うまいこと完全に保存できません(´Д⊂グスン あるオンラインゲームの着せ替えHPなんですがうまく着せ替えできません・・・ 誰かうまく保存する仕方を知ってる方いたらアドバイスお願いします; ;

  • お寺で使われているお線香について解説している文献やサイトを教えて下さい

    昔からお香は焚いていたのですが、最近お寺で使われているお線香にはそのお寺オリジナルのものがあり、 またお寺でそのお線香を買うことが出来ると知って、お寺のお線香に興味を持ち始めました。 Googleで検索して以下のサイトは見つけたのですが、 ttp://www.geocities.jp/kayano_ohba/senko/senko.htm 他にもWebサイトや文献で紹介、解説しているものがあればご教示下さい。 よろしくお願いします。

  • 肉離れの予防のテーピング

    肉離れを2年前に起こして 再び激しい運動をするので 念のために肉離れの予防のテーピングをしよう っと思うのですが このサイトのテーピングの貼り方でも いいのでしょうか? 予防なので、これでいいの疑問です。 ちなみにテーピングに関しての知識はまったくといってないです。 h ttp://www.geocities.jp/tenipuri28/htdocs/taping.htm

  • Html cssに関する質問です。

    Html cssに関する質問です。 html cssに関する質問です。 http://akiba.geocities.jp/saori5552222/ Artisteerのトライアル版というので、ページを作ってみました。 画像の働きについて、教えてもらいたいのですが。 自分で調べれば何とかなるかとも思ったのですが、聞いてしまったほうが早いと思い、 質問させていただきました。 角を丸くするために添付した、画像が使われているのですが、どのように使われていますか? http://akiba.geocities.jp/saori5552222/images/Sheet-s.png 大きな外枠の四つの角を丸くするために使われているようです。http://akiba.geocities.jp/saori5552222/images/Sheet-v.png 周りの影をつけるときに使われているようです。 http://akiba.geocities.jp/saori5552222/images/Block-s.png これ内部の角を丸くするためにつかわれているようです。 これらの画像が、どのようにhtml、cssに組み込んでいるのでしょうか。

  • 勝手にログオフしてしまいます

    ttp://www.geocities.jp/emdmygvv/NicoPremiumSpoofor-20070620 ↑をDLして開こうとしたときから、症状が出始めました。 症状は、ログインしてもすぐに「ウインドウステーションがシャットダウン中であるためアプリケーションが初期化に失敗しました」と出て、ログオフしてしまうんです。 ゲストでは普通に入れて、普通にネットもできます。 セーフモードも大丈夫でした。 でも、どうやって直せばいいのかがよくわからないんです…。 よろしければ是非教えてください。

  • 特定のフィールドコードのみ変換

    Word2007および2010についての質問です。 下記参考サイトにあるように、 alt+F9:フィールドコードを一斉に変換 で、フィールドコードを一斉に変換できますが、 特定の一つのフィールドのみをフィールドコードに切り替え/数式に切り替え するようなことはできるでしょうか?できるとしたら方法を教えて下さい。 よろしくお願いします。 【参考】 http://micromagic.cocolog-nifty.com/text/2012/04/niftywebmail-dc.html?cid=71607869#comments http://www.geocities.jp/kumapoohnohitorigoto/Hitorigoto20025.htm

  • 【PC98x1/国民機】IREEN(A-Inn)

    ・IREEN(A-Inn) は、フリーウェアに今も至っていないのでしょうか。 ・Demon's Eye http://space.geocities.jp/dan2mame/demon/demon.htm はフリーウェアに至っているようですが。

専門家に質問してみよう