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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Processing

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

Q&A

解決済

2回答

5062閲覧

Processing dist関数 スコア表示

m.bfweiwf

総合スコア1

Processing

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

1グッド

0クリップ

投稿2021/07/21 20:02

編集2021/07/24 12:54

proceeingでゲームを作っているのですが、円と円が触れるとスコアが増え、そのスコアが表示されるようにしたいのですが、当たり判定にdist関数を使ったせいか円と円が触れた時だけでなく、円が下に落ちてしまったときにもスコアが増えてしまいます。何か改善点があれば教えてほしいです。

コード
int y = 300;
int ex, espeed, ey;
int score;

void initPos() {
ex = int(random(width));
espeed = int(random(1, 6));
ey = -10;
}

void setup() {
size(400, 400);
noStroke();
initPos();
score = 0;
}
void draw() {
background(255);
scoreDisp();
fill(255, 10, 255);
ellipse(mouseX, y, 70, 70);
if (dist(mouseX, y, ex, ey)<45 || ey-20 > height) {
score += 10;
initPos();
}
fill(10, 255, 10);
ellipse(ex, ey, 20, 20);
ey += espeed;
}
void scoreDisp(){
textSize(24);
fill(0);
text("score:"+score,10,25);
}

TN8001👍を押しています

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

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

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

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

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

thkana

2021/07/21 22:13

質問のプログラムの内容は把握できていますか?
guest

回答2

0

ベストアンサー

Processing

1if (dist(mouseX, y, ex, ey) < 45 || ey - 20 > height) {

dist(mouseX, y, ex, ey) < 45
ここが当たり判定ですよね?
円同士ですから、中心同士の距離が半径を足した分より近ければ接触しています。

ey - 20 > height
これは落下判定ですよね?下まで行ったら次の円を出すための。

当たり判定にdist関数を使ったせいか円と円が触れた時だけでなく、円が下に落ちてしまったときにもスコアが増えてしまいます。

if文がひとまとめ(当たり判定と落下判定)になっているのでこうなってしまうわけで、別々に分けましょう。

Processing

1if (dist(mouseX, y, ex, ey) < 45) { 2 3} 4if (ey - 20 > height) { 5 6}

投稿2021/07/24 13:10

TN8001

総合スコア9326

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

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

TN8001

2021/07/24 13:15

これなら落としてしまったらスコアが減るとかもできますね^^
m.bfweiwf

2021/07/24 13:25

ありがとうございます。うまくいきました。
guest

0

  1. 円と円が触れたという判定を行う
  2. スコアを増やす
  3. スコアを表示する

というステップになろうかと思いますが、あなたのわからないことというのはどれでしょうか

投稿2021/07/21 20:29

y_waiwai

総合スコア87774

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

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

m.bfweiwf

2021/07/21 20:42

返信ありがとうございます。 2と3なのですが、具体的にどのようにすればいいのかが分かりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問