質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.54%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Processing

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

Q&A

解決済

1回答

1590閲覧

processing HPが勝手に減っていく

0pfrn

総合スコア8

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Processing

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

0グッド

0クリップ

投稿2021/11/14 06:47

編集2021/11/14 07:44

processingを使用してミニゲームをつくろうとしていましたが、
どこが間違っているのかわかりませんでした。
「プログラミングとゲームの杜」の緑を救えを参考にしました。

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

実行してゲームの画面が表示したあと、
マウスカーソルを動かして緑だけを拾い、赤に当たらないようにするときに
赤にあたっていないにもかかわらずHPが減ってしまいます。

Java

1int px=200; 2int py=350; 3int pw=40; 4int ph=20; 5int ow=30; 6int oh=30; 7int[] oy=new int[10]; 8int[] oColor=new int[10]; 9int[] oWait=new int[10]; 10int score; 11int hp; 12int gseq; 13int mcnt; 14 15void setup(){ 16 size(400,400); 17 noStroke(); 18 gameInit(); 19} 20void draw(){ 21 background(0); 22 if(gseq==0){ 23 gamePlay(); 24 }else if(gseq==1){ 25 gameOver(); 26 } 27} 28void playerDisp(){ 29 fill(255); 30 rect(px,py,pw,ph,5); 31} 32void playerMove(){ 33 px=mouseX; 34 if((px+pw)>width){ 35 px=width-pw; 36 } 37} 38void objDisp(){ 39 for(int i=0;i<10;i++){ 40 if(oColor[i]==0){ 41 fill(255,0,0); 42 }else{ 43 fill(0,255,0); 44 } 45 rect(i*40+5,oy[i],ow,oh,5); 46 } 47} 48void objMove(){ 49 for(int i=0;i<10;i++){ 50 if(oWait[i]>0){ 51 oWait[i]--; 52 }else{ 53 oy[i]+=2; 54 } 55 if(oy[i]>height){ 56 if(oColor[i]==1){ 57 hp--; 58 } 59 objInit(i); 60 } 61 } 62} 63void objInit(int no){ 64 oy[no]=40; 65 oColor[no]=int(random(2)); 66 oWait[no]=int(random(60,240)); 67} 68void hitCheck(){ 69 int ox; 70 for(int i=0;i<10;i++){ 71 ox=i*40+5; 72 if((px<(ox+ow))&&((px+pw)>ox) 73 &&(py<(oy[i]+oh))&&((py+ph)>oy[i])){ 74 if(oColor[i]==1){ 75 score+=10; 76 }else{ 77 hp--; 78 } 79 objInit(i); 80 } 81 } 82} 83void scoreDisp(){ 84 textSize(24); 85 fill(255); 86 text("score:"+score,10,25); 87 text("HP:"+hp,300,25); 88} 89void gamePlay(){ 90 objMove(); 91 objDisp(); 92 playerMove(); 93 playerDisp(); 94 hitCheck(); 95 scoreDisp(); 96 if(hp<1){ 97 gseq=1; 98 } 99} 100void gameOver(){ 101 objDisp(); 102 playerDisp(); 103 scoreDisp(); 104 textSize(50); 105 fill(255,255,0); 106 text("GAME OVER",60,200); 107 mcnt++; 108 if((mcnt%60)<40){ 109 textSize(20); 110 fill(255); 111 text("Click to retry!!",140,260); 112 } 113} 114void gameInit(){ 115 for(int i=0;i<10;i++){ 116 objInit(i); 117 } 118 score=0; 119 hp=10; 120 gseq=0; 121 mcnt=0; 122} 123void mousePressed(){ 124 if(gseq==1){ 125 gameInit(); 126 } 127}

当たり判定のソースコードはここだと思うので追加いたしました。
ご指摘ありがとうございます。

試したこと

ソースコードを全部見返し間違っているところはないかを探しましたが
見つかりませんでした。

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

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

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

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

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

cx20

2021/11/14 06:57

> 「プログラミングとゲームの杜」の緑を救えを参考にしました。 こちらのことでしょうか? ■ みどりを救えゲームを作ろう | プログラミングとゲームの杜 https://www.greenowl5.com/gprogram/processing/processing131.html > ソースコードを全部見返し間違っているところはないかを探しましたが > 見つかりませんでした。 ソースコードの提示をお願いします。
cx20

2021/11/14 07:16

> 当たり判定のソースコード そこはあってそうです。 判断が付かない為、ソースコード全部提示してもらえますか?
0pfrn

2021/11/14 07:44

ご指摘ありがとうございます。 追加いたしました。
cx20

2021/11/14 07:56

自分でもソースコード打ち込んでみましたが、特段、差異は無さそうでした。 差異としては "Click to retry!" が "Click to retry!!" になっていたくらいです。 たぶん、コードはあっているのではないでしょうか。 > 赤にあたっていないにもかかわらずHPが減ってしまいます。 緑を取りこぼすとHPが減るようなので、そのことでしょうか?
0pfrn

2021/11/14 08:26

ありがとうございます。
thkana

2021/11/14 09:38 編集

前の質問 https://teratail.com/questions/369248 は放置ですか? (あれ?cx20さんの回答へのコメントみると、そっちと間違えたか?) (質問者さんには関係のない単なる感想ですが...画像を見て手で打ち込め、なんてなんの苦行でしょうね...>参照先サイト いやまぁ、紙媒体しかなかった40年前のマイコン少年達は通った道ではありますが)
thkana

2021/11/14 08:34

「プログラミング言語」はプログラミング言語間の特徴比較だとかそういうことを話題にするためのタグでしょう。プログラミングの話題で何らかのプログラミング言語を使うのは当たり前なので、何らかの言語を使うからとタグ付けしていたらほぼすべての質問に「プログラミング言語」のタグがついてしまいタグの意味が無くなってしまいます。
cx20

2021/11/14 09:20

> 画像を見て手で打ち込め、なんてなんの苦行でしょうね 転載防止とかそういうところなんでしょうね。 まぁ、手で打ち込むのも学習の一環と思えば悪いくないかと思います。 「i」と「1」の打ち間違いとか、コピペだと気が付かないですからね。。
thkana

2021/11/14 09:41

いわゆる「写経」というやつですか。まぁ、間違えそうなところに気づく効果もゼロとは言いませんが、費用対効果比でいうとどうなんでしょうねぇ。
guest

回答1

0

ベストアンサー

どこが間違っているのかわかりませんでした。

見本と見比べてみましたが、特段違いはありませんでした。

■ みどりを救えゲームを作ろう | プログラミングとゲームの杜
https://www.greenowl5.com/gprogram/processing/processing131.html

赤にあたっていないにもかかわらずHPが減ってしまいます。

たぶん、そういうゲームかと・・
緑を救えないとHPが減る仕様のようです。。

投稿2021/11/14 07:58

編集2021/11/14 08:10
cx20

総合スコア4632

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

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

0pfrn

2021/11/14 08:27

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.54%

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

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

質問する

同じタグがついた質問を見る

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Processing

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