この記事の例では、マウスに従ってボールを動かすjsの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 <!DOCTYPE html> <html> <ヘッド> <メタ文字セット="utf-8"> <タイトル></タイトル> <スタイル> キャンバス{ 境界線: 1px実線 #000; } </スタイル> </head> <本文> <キャンバスid="mycanvas" 幅="1500" 高さ="800"></キャンバス> <スクリプト> // キャンバスを作成します var canvas = document.getElementById('mycanvas'); var ctx = canvas.getContext('2d'); // ボールクラス関数 Ball(x, y) { this.x = x; y = y; // 初期半径 this.r = parseInt(Math.random() * 50) + 10; this.step = parseInt(Math.random() * 5) + 0.1; // ランダムな色を設定します this.color = getRandom(); // ランダムな方向を設定します this.dx = parseInt(Math.random() * 10) - 5; this.dy = parseInt(Math.random() * 10) - 5; // オブジェクトを配列に読み込みます ballArr.push(this); } // 配列からオブジェクトを削除します。Ball.prototype.remove = function() { (var i = 0; i < ballArr.length; i++) の場合 { もし(ballArr[i] == this){ ボールArr.splice(i, 1); } } } // データを更新する Ball.prototype.update = function() { // データを更新 this.x += this.dx; this.y += this.dy; this.r -= this.step; // 配列内のボールをクリアする if (this.r <= 0) { これを削除してください。 } // 境界を超えた場合、ボールは動き続けます if (this.x < 0) { 1500 を越える文字列は無視されます。 this.color = getRandom(); } そうでない場合(this.x > 1500){ 0 を返します。 this.color = getRandom(); } それ以外の場合 (this.y < 0) { y = 800; となります。 this.color = getRandom(); } そうでない場合(this.y > 800){ y = 0; this.color = getRandom(); } } // ボールをレンダリングする Ball.prototype.render = function() { ctx.beginPath(); ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2, false); ctx.fillStyle = this.color; ctx.fill(); } // キャンバス DOM2 イベント canvas.addEventListener("mousemove", function(event) { 新しいボール(event.offsetX、event.offsetY); }); var ballArr = []; // アニメーションのレンダリングと更新のためのタイマー setInterval(function() { // アニメーション ロジック // 画面をクリア - 更新 - レンダリング ctx.clearRect(0, 0, canvas.width, canvas.height); // ボールを更新してレンダリングします for (var i = 0; i < ballArr.length; i++) { ballArr[i].update(); もし(ballArr[i]) { ballArr[i].render(); } } }, 30); // ランダムカラー関数 getRandom() { var allType = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f"; var allTypeArr = allType.split(","); var color = "#"; // 色の文字列を連結する for (var i = 0; i < 6; i++) { var random = parseInt(Math.random() * allTypeArr.length); 色 += allTypeArr[ランダム]; } 色を返します。 } </スクリプト> </本文> </html> 効果 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: innodb_flush_method 値メソッド (例の説明)
>>: FileZilla_Server:425 データ接続を開けない問題を解決する方法
序文Vue(発音は /vjuː/、view に似ています)は、ユーザーインターフェイスを構築するため...
1. エラーの詳細一度、データベース全体のバックアップを手動で実行したときに、次のエラーが発生しまし...
この記事では、Ubuntu 18.04 に Redis と phpredis 拡張機能をインストール...
目次MySQL Load Dataの多様な用途1. LOAD の基本的な背景2. 基本パラメータをロ...
目次1. 関数シグネチャ2. 関数のオーバーロード2.1 オーバーロードされたシグネチャは呼び出し可...
インストールREADMEに従ってインストールしてくださいドキュメントには、exa は Rust で実...
この記事はmysqlデータベースです質問 1 表 1 のデータを表 2 にインポートします。表 1 ...
WeChat アプレットの軌跡再生では、主に線描画操作にポリラインを使用し、車の移動操作にマーカーを...
非常に珍しいパラメータ文字化けの問題に遭遇しました。まずページを見てみましょう写真に示すように、月次...
1. 何ですか マークアップ言語として、CSSは比較的シンプルな構文とユーザーに対する要件が低いが、...
基本概念絶対配置: 絶対配置に設定された要素ボックスはドキュメント フローから完全に削除され、その包...
目次1. Linuxのビット数を確認する2. JDKをダウンロードする3. JDKをインストールする...
この記事の例では、カルーセルカルーセルを実装するためのJSの具体的なコードを参考までに共有しています...
PHP7 がリリースされてからかなり時間が経ちますが、パフォーマンスが大幅に向上したことはよく知られ...
MySQL 5.5 の場合、文字セットが設定されていない場合、MySQL のデフォルトの文字セットは...