0
問題は、「Space」キーを押して新しいドロップを追加するたびに、すべてのドロップのスピードが上がり、ドロップコンストラクターのmovepi関数によってスピードが決まるということです。どんな助けもありがとう。ありがとう。 以下のコードスニペットは、スペースバーを押してテストすることができます。'ドロップ'スピードの増加を止めるには?
// Get Random //
function rand(min, max) {
"use strict";
return Math.floor((Math.random() * max) + min);
}
// Setup Canvas //
var canvas = document.querySelector("#make"),
ctx = canvas.getContext("2d");
// Create Drop //
function Drop(x, y) {
'use strict';
// Set X and Y Position //
this.x = x;
this.y = y;
// Show Drop //
this.showpi = function() {
ctx.fillStyle = 'red';
ctx.fillRect(x, y, 10, 10);
};
// Move Drop //
this.movepi = function() {
y = y - 3;
};
}
// Setup Canvas Size //
function setCanvasWidth() {
"use strict";
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = window.innerHeight;
}
// Paint Over Canvas For Animation Illusion //
function paintover() {
'use strict';
ctx.fillStyle = "rgba(0, 0, 0, 0.4)";
ctx.fillRect(0, 0, canvas.width, canvas.height);
window.requestAnimationFrame(paintover);
}
// Variables //
var dropi = [];
//var drop = new Drop(window.innerWidth/2, window.innerHeight);
// Get New Drops //
function drop() {
'use strict';
var newdrops = new Drop(window.innerWidth/2, window.innerHeight);
return newdrops;
}
// Draw //
function draw() {
'use strict';
var i;
for (i = 0; i < dropi.length; i = i + 1) {
dropi[i].showpi();
dropi[i].movepi();
}
window.requestAnimationFrame(draw);
}
// Listen For "SpaceBar" Key Press //
window.addEventListener('keydown', function pressed(x) {
\t 'use strict';
\t var code = x.keyCode;
//soundfile = new Audio('blop.wav');
\t if (code === 32) {
//soundfile.play();
dropi.push(new Drop(window.innerWidth/2, window.innerHeight));
draw();
}
});
// Run //
setCanvasWidth();
paintover();
canvas {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: -1;
}
<html>
<body>
<canvas id="make"></canvas>
</body>
</html>