🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

1回答

1037閲覧

ゲーム制作中 間違いを教えて下さい

aiaiaiai

総合スコア4

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

1クリップ

投稿2019/12/30 11:07

編集2019/12/30 12:27
//プレイヤーの設定 int playerx=400; //プレイヤーのx座標 int playery=500; //プレイヤーのy座標 int playerw=60; //プレイヤーの幅 int playerh=30; //プレイヤーの高さ int maruw=30; //物体の幅 int maruh=30; //物体の高さ int[]maruy=new int[20];//物体のy座標は0~19までの20個の変数 int[]maruColor= new int[20];//物体の色設定 //int[]maruSpeed=new int[20]; int[]marutaiki=new int[20]; int score; float r; float g; float b; void setup() { // 初期設定 size(800, 600); //800×600サイズ noStroke(); // 線なし r=random(255); g=random(255); //ランダムに表示 b=random(255); for (int i=0; i<20; i++) { //繰り返す変数iは0~19まで変化する maruy[i]=40; //40を代入 maruColor[i]=int(random(2)); //maruSpeed[i]=int(random(2,6)); } } void draw() { background(0); //背景の色は黒 playersettei(); marusettei(); maruMove(); hitCheck(); } void playersettei() { //プレイヤーの表示 if (mousePressed) { //マウスを押すとプレイヤーのバーが表れる r=random(255); //マウスを押すたびにバーの色がランダムに変わる g=random(255); b=random(255); fill(r, g, b); rect(mouseX, playery, playerw, playerh, 5); } //if((playerx+playerw)>800){ // playerx =800; } void marusettei() { //物体の設定 for (int i=0; i<20; i++) { //赤い球体の物体を20個並べる繰り返しの処理 if (maruColor[i]==0) { // fill(0, 255, 255); } else { fill(255, 0, 255); } ellipse(i*40+20, maruy[i], maruw, maruh); } } void maruMove() { for (int i=0; i<20; i++) { if (marutaiki[i]>0) { marutaiki[i]--; } else { maruy[i]+=2; } maruy[i] +=2; if (maruy[i]>height) { maruy[i]=40; maruColor[i]=int(random(2)); //物体の色の配置がランダムで変わる marutaiki[i]=int(random(60, 240)); } } void hitCheck() { for (int i=0; i<20; i++) { marux=i*40; if (player.isCollision(maru[i])) { maru[i].dead(); if (player.getColor()==maru[i].getColor()) { score +=3; } else { score -=5; } } //スコア fill(255); textSize(20); text("SCORE", 10, 30); text(score, 100, 30); コード

前提・実現したいこと

初心者で分からないことだらけです。教えてください。
このゲームは上から20個のボールが降ってきます(水色&紫)。それを画面下のバーでキャッチします。バーの色はmousepressedごとに水色、紫に変化したいです。そのやり方が難しくてわかりません。今のコードのままだと実行できません、どうか直してください。
初心者なのでわかりやすくいちいちコードを書いています。なのでこのような様式で教えて欲しいです。いっぺんにまとめられてしまうと分かりません。。。。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

unexpected token:void
とでます

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ProcessingのIDEでは[CTRL]+Tを押すとコードの整形をしてくれます。そうすると、

Processing

1void maruMove() { 2 for (int i=0; i<20; i++) { 3 if (marutaiki[i]>0) { 4 marutaiki[i]--; 5 } else { 6 maruy[i]+=2; 7 } 8 maruy[i] +=2; 9 if (maruy[i]>height) { 10 maruy[i]=40; 11 maruColor[i]=int(random(2)); //物体の色の配置がランダムで変わる 12 marutaiki[i]=int(random(60, 240)); 13 } 14 } 15 void hitCheck() { 16 for (int i=0; i<20; i++) { 17 marux=i*40; 18 20; 19 if (player.isCollision(maru[i])) { 20 maru[i].dead(); 21 22 if (player.getColor()==maru[i].getColor()) { 23 score +=3; 24 } else { 25 score -=5; 26 } 27 28 //スコア 29 fill(255); 30 textSize(20); 31 text("SCORE", 10, 30); 32 text(score, 100, 30);

となっているのが目立ちます。maruMove()関数以降で{と}の対応がおかしくなっていて、最後の方はコピペミスでしょうか、}がごっそりなくなっているようです。
( これが主要因で、裸の実行文が最後にあるように見えましたが編集前のは今回のエラーとは関係ないようです。一応残しときますが。)


[編集前]
ProcessingにはActiveモードとStaticモードというのがあって、混在できません。

以前のQ&Aあるいは他所のQ&Aのほうがわかりやすいか。

投稿2019/12/30 11:12

編集2019/12/30 11:27
thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aiaiaiai

2019/12/30 11:14

ありがとうございます。 これをどう変えればいいのでしょうか。。
thkana

2019/12/30 11:18

回答から2分でリンク先読んで「ちゃんと」考えたのですか? 知恵袋はともかく、teratailでは回答者は「解答」供給マシンじゃないですよ。 (それだけじゃなかったので回答編集しますけど。)
thkana

2019/12/30 11:29

hitCheck()の頭の方とか、 marux=i*40; 20; なんて、なにか慌ててますか? 深呼吸しましょうよ。
aiaiaiai

2019/12/30 11:38

Ctrl Tで調整して,指摘してくださったところを直しました。 しかしながらやはりunexpected tokenのエラーはきえません
thkana

2019/12/30 11:40

それだけでは「まだどこか間違っているのでしょう」しか言えません。 質問を編集して、修正したソースを見せて下さい。
aiaiaiai

2019/12/30 11:47

修正しました。
thkana

2019/12/30 12:02

修正した投稿を確認してみて下さい。なんか変だと思います。
aiaiaiai

2019/12/30 12:12

何が変ですか。
thkana

2019/12/30 12:20

何ら問題なく見えていますか? だとしたらこちらのブラウザかなにかの問題かしら。 20:47の修正では、コードがコードブロックで囲まれていない状態で(コード自体は変わっていない様子) 21:11の修正で```のあとに改行なくコメントがついてコードが全く見えない状態になっています。 (teratail側の不具合で編集履歴は正しいのに表示が変なのがでることはあるみたいですが。編集し直すとよかったり)
aiaiaiai

2019/12/30 12:27

なるほどです。ありがとうございます 修正しました
thkana

2019/12/30 12:55

とりあえずコードは見えるようになりましたけど、最初とどこか変わっていますか? { でインデント(字下げ)して、 }で戻る(と言っていいのかな)ので、 {と}の対応があっていれば関数の終わりで}、あるいは次の関数の書き始めは左端に字下げなくあるはずなんですが。
thkana

2019/12/30 14:46

( 一応言っとくけど、質問に低評価入れたの私じゃないからね )
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問