NIZIKA_DEV-001 #2

Merged
みてるぞ merged 6 commits from NIZIKA_DEV-001 into develop/main 2023-05-25 22:54:24 +09:00
Showing only changes of commit db3a530ccd - Show all commits
+34 -13
View File
@@ -77,7 +77,7 @@ let frame = 0;
let nizikaData = []; let nizikaData = [];
let kitaData = []; let kitaData = [];
const nizikaVel = 0.1; const nizikaVel = 5;
let runawayFlag = false; let runawayFlag = false;
let runawayFrame = 0; let runawayFrame = 0;
@@ -95,8 +95,8 @@ preprocess ()
{ {
this.removeEventListener ('click', f); this.removeEventListener ('click', f);
kitaData.push ({x: e.clientX - 214, kitaData.push ({x: e.clientX,
y: e.clientY - 120}); y: e.clientY});
runawayFlag = true; runawayFlag = true;
runawayFrame = frame; runawayFrame = frame;
@@ -121,8 +121,8 @@ reDraw ()
if (!(runawayFlag)) if (!(runawayFlag))
{ {
nizikaData.push ({x: Math.random () * canvasX - 150, nizikaData.push ({x: Math.random () * canvasX,
y: Math.random () * canvasY - 150}); y: Math.random () * canvasY});
} }
if (nizikaData.length > 100) if (nizikaData.length > 100)
@@ -131,23 +131,25 @@ reDraw ()
kitaData.forEach ( kitaData.forEach (
function (kita) function (kita)
{ {
ctx.drawImage (kitaList[frame % 40], kita.x, kita.y); ctx.drawImage (kitaList[frame % 40], kita.x - 214, kita.y - 120);
}); });
nizikaData.forEach ( nizikaData.forEach (
function (nizika) function (nizika)
{ {
ctx.drawImage (nizikaList[frame % 24], nizika.x, nizika.y); ctx.drawImage (nizikaList[frame % 24], nizika.x - 150, nizika.y - 150);
if (runawayFlag) if (runawayFlag)
{ {
const l = Math.sqrt (Math.pow (kitaData[0].x - nizika.x, 2) const l = Math.sqrt (Math.pow (((kitaData[0].x - 214)
+ Math.pow (kitaData[0].y - nizika.y, 2)); - (nizika.x - 150)), 2)
const t = Math.atan2 (kitaData[0].y - nizika.y, + Math.pow (((kitaData[0].y - 120)
kitaData[0].x - nizika.x); - (nizika.y - 150)), 2));
const t = Math.atan2 ((kitaData[0].y - 120) - (nizika.y - 150),
(kitaData[0].x - 214) - (nizika.x - 150));
nizika.x += nizikaVel * cos (t); nizika.x += nizikaVel * Math.cos (t);
nizika.y += nizikaVel * sin (t); nizika.y += nizikaVel * Math.sin (t);
} }
}); });
@@ -175,3 +177,22 @@ replaceColorWithTransparent (canvas)
context.putImageData (imageData, 0, 0); context.putImageData (imageData, 0, 0);
} }
function
changeAlpha (canvas, alpha)
{
const toCanvas = document.createElement('canvas');
const toCtx = toCanvas.getContext ('2d');
const ctx = canvas.getContext ('2d');
const imageData = ctx.getImageData (0, 0, canvas.width, canvas.height);
const pxs = imageData.data;
for (let i = 0; i < pxs.length; i += 4)
pxs[i + 3] = alpha;
toCtx.putImageData (imageData, 0, 0);
return toCanvas;
}