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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1453閲覧

重力を考慮したボール java

1236

総合スコア19

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/07/22 06:35

前提・実現したいこと

重力を考慮してボールをバウンドさせたいです。

発生している問題

y座標を y=y+dy+5tt; で表していますが、tの値が大きくなるにつれ、tの二乗値が大きくなり動きが早すぎてしまいます。どのように表現したら良いでしょうか。

該当のソースコード

java

1 class Maru extends Shape{ 2 /*■■■ フィールド変数部 ■■■*/ 3 int r; // 半径 4 5 /*■■■ コンストラクタ部 ■■■*/ 6 Maru () { // 引数が無い場合のデフォルト値 7 r = 80; 8 x = y = 200; 9 dx = 6; 10 dy = 2; 11 } 12 Maru (int r, int x, int y, int dx, int dy){ // 引数がある場合 13 this.r = r; 14 this.x = x; 15 this.y = y; 16 this.dx = dx; 17 this.dy = dy; 18 } 19 20 /*■■■ メソッド部 ■■■*/ 21 void draw(Graphics g){ // 仮の画用紙 img の GC である img_gが引数 22 g.setColor(Color.white); // 色を設定 23 g.drawOval(x-r, y-r, 2*r, 2*r); // ○の描画 24 25 } 26 void update (int width, int height){ // オブジェクトのパラメータの更新 27 if(height-r > y && y > r){ 28 29 t+=1; //時間処理 30 } 31 if (x >= width-r){ 32 dx=dx*(-1)*2; // 右端に当たったときの処理 跳ね返り係数も追加 33 // g.setcolor(Color.white); 34 } 35 if (x <= r){ 36 dx=dx*(-1)/2; // 左端に当たったときの処理 37 // g.setcolor(Color.red); 38 } 39 if (y >= height-r){ 40 dy=dy*(-1)/2; // 下端に当たったときの処理 41 t = 0; 42 // g.setcolor(Color.blue); 43 } 44 if (y <= r){ 45 dy=dy*(-1)*2; // 上端に当たったときの処理 46 // g.setcolor(Color.green); 47 } 48 49 x=x+dx; // x 座標の更新 50 y=y+dy+5*t*t; // y 座標の更新,重力加速度 51 } 52} 53

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

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

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

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

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

guest

回答1

0

ベストアンサー

dx,dyはこの状況においては、各方向の速度成分です。
dyを時間で一定量変化させ、シンプルにyに加えればいいと思います。

java

1dy += 5; 2y += dy;

投稿2020/07/22 07:40

swordone

総合スコア20651

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

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

1236

2020/07/23 13:36

回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問