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

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

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

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

Q&A

解決済

1回答

2245閲覧

processingでのボールの当たり判定

退会済みユーザー

退会済みユーザー

総合スコア0

Processing

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

0グッド

0クリップ

投稿2020/11/10 02:29

前提・実現したいこと

procesingでブロック崩しを作っており、現在ボールと打ち返すラケットの当たり判定を実装しようとしています。

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

跳ね返らない

該当のソースコード

processing

1 2 3 4Bar B; 5Ball b; 6 7void setup(){ 8 size(900,800); 9 b = new Ball(); 10 B = new Bar(); 11 12 13} 14 15void draw(){ 16 background(200,200,200); 17 b.show(); 18 B.show(); 19 b.update(); 20 if ((b.x> B.x && b.x< B.x + 90) &&( b.y <B.y && b.y>B.y + 30)){ 21 b.vx=-b.vx; 22 b.vy=-b.vy; 23 24} 25 26} 27 28class Ball{ 29 int x,y; 30 int vx,vy; 31 32Ball(){ 33 x=450; 34 y=760; 35 vx=5; 36 vy=-5; 37} 38 39void show(){ 40 ellipse(x,y,40,40); 41} 42 43void update(){ 44 x+=vx; 45 y+=vy; 46 if ( y<0){ 47 boundY(); 48 } 49 if ( x >width-40|| x<0){ 50 boundX(); 51 } 52} 53void boundX() { 54 vx = -vx; 55 } 56void boundY() { 57 vy = -vy; 58 } 59 60} 61class Bar{ 62 int x,y; 63Bar(){ 64 x=mouseX; 65 y=770; 66} 67 68void show(){ 69 rect(mouseX,y,90,30); 70} 71 72}

試したこと

if文を調節しても出来なかったためRectangleクラスを用いて重なりの判定にしようかと思ったのですが少し厳しかったため、なるべくクラスを増やさない方向で改善したいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

跳ね返らない

ということから↓が原因ということはわかりますよね?

Processing

1if ((b.x> B.x && b.x< B.x + 90) &&( b.y <B.y && b.y>B.y + 30))
  • 問題点1 Bar.xBar.yとも初期化された後一切変更されていない
    yは固定値なのでいいですが、xは変動するつもりでいるが変わっていないです。

  • 問題点2 条件b.y <B.y && b.y>B.y + 30
    Bar.yは固定値(770)なので、わかりやすく置き換えてみます。
    b.y < 770 && b.y > 800
    770未満かつ800より大きいball.yって?

  • 問題点3
    跳ね返ればすぐ気が付くでしょう。

投稿2020/11/10 09:15

編集2023/07/23 09:39
TN8001

総合スコア9396

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問