Finished ocean & wave particles. Added animated screenshot.
This commit is contained in:
parent
f8f1c77ba2
commit
e03607b581
Binary file not shown.
After Width: | Height: | Size: 136 KiB |
|
@ -9,58 +9,66 @@ var pr_ocean = OS.P.Add("Ocean Particle", {
|
|||
|
||||
positionCheckStep: 30,
|
||||
positionCheckProgress: 30,
|
||||
doCheckPosition: false
|
||||
doCheckPosition: false,
|
||||
|
||||
moveTimer: 1 / OS.S.defaultStep,
|
||||
});
|
||||
|
||||
pr_ocean.BeforeDo = function () {
|
||||
this.positionCheckProgress++;
|
||||
if (this.positionCheckProgress >= this.positionCheckStep) {
|
||||
this.positionCheckProgress = 0;
|
||||
doCheckPosition = true;
|
||||
this.doCheckPosition = true;
|
||||
}
|
||||
}
|
||||
pr_ocean.Do = function () {
|
||||
// Move around randomly.
|
||||
this.moveTimer--;
|
||||
if (this.moveTimer <= 0) {
|
||||
this.x += Math.round(Math.randomRange(-1, 1)) * OS.S.pixelScale;
|
||||
this.y += Math.round(Math.randomRange(-1, 1)) * OS.S.pixelScale;
|
||||
this.moveTimer = 1 / OS.S.defaultStep;
|
||||
}
|
||||
}
|
||||
|
||||
pr_ocean.CheckPosition = function (checkX, checkY) {
|
||||
pr_ocean.CheckPosition = function (checkX, checkY, direction) {
|
||||
if (this.doCheckPosition) {
|
||||
// If it's completely off the screen, then update position.
|
||||
if ((Math.abs(this.x - checkX) > (OS.camera.width + this.xBound)) ||
|
||||
(Math.abs(this.y - checkY) > (OS.camera.height + this.yBound)))
|
||||
{
|
||||
switch (pr_ship.direction) {
|
||||
switch (direction) {
|
||||
case 0:
|
||||
this.x = G.player.x + (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = G.player.y + randomSmidge();
|
||||
this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = checkY + randomSmidge();
|
||||
break;
|
||||
case 45:
|
||||
this.x = G.player.x + (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = G.player.y - (OS.camera.height + this.yBound) + randomSmidge();
|
||||
this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge();
|
||||
break;
|
||||
case 90:
|
||||
this.x = G.player.x + randomSmidge();
|
||||
this.y = G.player.y - (OS.camera.height + this.yBound) + randomSmidge();
|
||||
this.x = checkX + randomSmidge();
|
||||
this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge();
|
||||
break;
|
||||
case 135:
|
||||
this.x = G.player.x - (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = G.player.y - (OS.camera.height + this.yBound) + randomSmidge();
|
||||
this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge();
|
||||
break;
|
||||
case 180:
|
||||
this.x = G.player.x - (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = G.player.y + randomSmidge();
|
||||
this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = checkY + randomSmidge();
|
||||
break;
|
||||
case 225:
|
||||
this.x = G.player.x - (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = G.player.y + (OS.camera.height + this.yBound) + randomSmidge();
|
||||
this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge();
|
||||
break;
|
||||
case 270:
|
||||
this.x = G.player.x + randomSmidge();
|
||||
this.y = G.player.y + (OS.camera.height + this.yBound) + randomSmidge();
|
||||
this.x = checkX + randomSmidge();
|
||||
this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge();
|
||||
break;
|
||||
case 315:
|
||||
this.x = G.player.x + (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = G.player.y + (OS.camera.height + this.yBound) + randomSmidge();
|
||||
this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge();
|
||||
this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge();
|
||||
break;
|
||||
default:
|
||||
console.log("No valid direction");
|
||||
|
|
|
@ -1 +1,19 @@
|
|||
var ani_wave = OS.A.Add("Wave", 64, 64, {columns: 10, speed: 1/10});
|
||||
|
||||
function wavePrefab() {}
|
||||
|
||||
var pr_wave = OS.P.Add("Wave Particle", {
|
||||
imageSrc: "images/wave_sheet.png",
|
||||
animations: [ani_wave],
|
||||
depth: -90, // Draw above ocean, below everything else.
|
||||
|
||||
lifeTimer: 100,
|
||||
});
|
||||
|
||||
pr_wave.Do = function () {
|
||||
// Move around randomly.
|
||||
this.lifeTimer--;
|
||||
if (this.lifeTimer <= 0) {
|
||||
this.Destroy();
|
||||
}
|
||||
}
|
|
@ -3,6 +3,10 @@ function oceanRoom () {
|
|||
OS.SetRoom(rm_Ocean);
|
||||
}
|
||||
|
||||
rm_Ocean.waveTimer = Math.round(Math.randomRange(30, 150));
|
||||
rm_Ocean.speedGaugeImg = new Image();
|
||||
rm_Ocean.speedGaugeImg.src = "images/speed_gauge_sheet.png";
|
||||
|
||||
rm_Ocean.DoFirst = function () {
|
||||
//Hide cursor when playing (only use if masking the cursor with another object)
|
||||
//OS.canvas.style.cursor = "none";
|
||||
|
@ -20,11 +24,21 @@ rm_Ocean.DoFirst = function () {
|
|||
}
|
||||
rm_Ocean.Do = function () {
|
||||
// Move G.oceanParticle around based on player's movement.
|
||||
G.oceanParticle.CheckPosition(G.player.x, G.player.y);
|
||||
G.oceanParticle.CheckPosition(G.player.x, G.player.y, G.player.direction);
|
||||
|
||||
this.waveTimer--;
|
||||
if (this.waveTimer <= 0) {
|
||||
var wave = this.AddObject(OS.P["Wave Particle"]);
|
||||
wave.x = G.player.x + (randomSmidge() * 4);
|
||||
wave.y = G.player.y + (randomSmidge() * 4);
|
||||
|
||||
this.waveTimer = Math.round(Math.randomRange(30, 150));
|
||||
}
|
||||
}
|
||||
|
||||
rm_Ocean.DrawAbove = function () {
|
||||
// Draw the speed indicator in Bottom Left corner.
|
||||
OS.context.drawImage(rm_Ocean.speedGaugeImg, G.player.currentSpeed * 32, 0, 32, 32, 16, OS.camera.height - 32 - 16, 32, 32);
|
||||
}
|
||||
|
||||
rm_Ocean.DoLast = function () {
|
||||
|
|
Loading…
Reference in New Issue