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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

1534閲覧

ボールを落下されてたあとのバウンドの軌道を変える方法が思いつきません。知ってる人おしえてください

yamabuki_satuki

総合スコア12

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

0クリップ

投稿2019/08/03 02:34

クリックするとボールが上から落ちていきます。落ちたあとのボールの軌道をランダムにしたいです。複数のボールを落とせるようにしたいです。

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

特になし

該当のソースコード

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <link rel="stylesheet" href="style.css"> 8 <title>ボールを床に落下させる</title> 9</head> 10<body> 11 <canvas id="canvas" width="600" height="500"> 12 ブラウザが対応していません。 13 </canvas> 14 <script src="gravity.js"></script> 15 16</body> 17</html> 18

javascript

1 window.addEventListener('click', draw, false); 2function draw(){ 3 var x = 300, y = 0; // ボールの初期値 4 var vy = 0; // y軸方向の初期値 5 var R = 20; // ボールの半径 6 var gravity = 3; // 重力 7 var FRICTION = 0.75; // 跳ね返り係数 8 9 // キャスバス上の図形を消す 10 var canvas = document.getElementById('canvas'); 11 var ctx = canvas.getContext('2d'); 12 13 function loop(){ 14 ctx.clearRect(0, 0, canvas.clientWidth, canvas.height); // キャンバスの上の図形をクリアにする 15 16 vy += gravity; // 重力による速度の変化 17 y += vy; // y座標を動かす 18 19 if(y > canvas.height-R) { // 地面に到達したら 20 vy *= -1 * FRICTION; // 速度を反転して減速 21 y = canvas.height-R; // 座標を画面に戻す 22 if(Math.abs(vy) < gravity) { // 速度がある程度小さくなったら強制的に0にする 23 vy = 0; 24 } 25 } 26 ctx.beginPath(); 27 ctx.fillStyle = 'green'; 28 ctx.arc(x, y, R, 0, Math.PI * 2.0, true); 29 ctx.fill(); 30 requestAnimationFrame(loop); 31 } 32 loop(); 33} 34 35

css

1* { 2 margin: 0px; 3 padding: 0px 4} 5 6#canvas{ 7 background: #000; 8} 9

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

editor: Visual Studio code
browser: Google Chrome

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

bochan2👍を押しています

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問