User prompt
Triple the size of the player shadow
User prompt
Remove the player shadow tint
User prompt
Render the shadow of the player to be under the player sprite
User prompt
Make the shadow of the player bigger
User prompt
Add a black circle underneath the player this and squashed vertically
User prompt
When the minion is moving right, flip the sprite horizontally
User prompt
When the player is moving left, flip the sprite horizontally
User prompt
On the tick update, move the minions
User prompt
When the minion is created, move towards the player when they are more than 300 units away
User prompt
Change the time that minionCreationVFX is scaled to be shorted
User prompt
Destroy the MinionCreationVFX after it's scaled to 1
User prompt
When minionCreationVFX is created, have it start at scale 0 and scale to 1 over time of 30 ticks
User prompt
Scale the minion object from 0 to 1 when created with a duration of 15 ticks
User prompt
Change the time that minionCreationVFX is scaled to be shorted
User prompt
Make the minionCreationVFX destroy immediately when scale is 1
User prompt
Set minionCreationVFX position to be the same as the minion when created.
User prompt
When minionCreationVFX is created, have it start at scale 0 and scale to 1 over time of 30 ticks
User prompt
make the pivot point of minionCreationVFX be at the bottom
User prompt
Create a special VFX for when the minion is created
User prompt
At the end of each tick, remove all destroyed deadbodies from the array
User prompt
Refactor the player move function to use an array of deadbodies
User prompt
Send the array of deadBodies to the player.move function
User prompt
Move all created deadbodies to be in an array
User prompt
Move the pivot point of the minion to the bottom
User prompt
When the minion is created, remove the deadbody
var timeNeededNearDeadBody = 1;
var MeterBar = Container.expand(function () {
var self = Container.call(this);
var meterBarBackgroundGraphics = self.createAsset('meterBarBackground', 'MeterBar Background Image', 0, 0.5);
var meterBarGraphics = self.createAsset('meterBar', 'MeterBar Graphics', 0, 0.5);
});
var DeadBody = Container.expand(function () {
var self = Container.call(this);
var deadBodyGraphics = self.createAsset('deadBody', 'Dead Body Graphics', .5, 1);
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.createAsset('player', 'Player Graphics', .5, 1);
self.meterBar = new MeterBar();
self.meterBar.scale.y = 0.2;
self.targetPosition = null;
self.speed = 8;
self.move = function (deadBody) {
if (self.targetPosition) {
var dx = self.targetPosition.x - self.x;
var dy = self.targetPosition.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < self.speed) {
self.x = self.targetPosition.x;
self.y = Math.min(self.targetPosition.y, 2732);
self.targetPosition = null;
} else {
self.x += dx / distance * self.speed;
self.y = Math.max(Math.min(self.y + dy / distance * self.speed, 2732), 1200);
}
}
var distanceToDeadBody = Math.sqrt(Math.pow(self.x - deadBody.x, 2) + Math.pow(self.y - deadBody.y, 2));
if (distanceToDeadBody < 200) {
if (!self.meterBar.parent) {
self.addChild(self.meterBar);
self.meterBar.y = -430;
self.meterBar.x = -100;
self.meterBar.scale.x = 0;
self.timeSpentNearDeadBody = 0;
self.startTick = null;
}
if (!self.startTick && !self.targetPosition) {
self.startTick = LK.ticks;
}
if (!self.targetPosition) {
self.timeSpentNearDeadBody += 1 / 60;
self.meterBar.scale.x = Math.min(2, self.timeSpentNearDeadBody / timeNeededNearDeadBody);
if (self.meterBar.scale.x >= 2) {
var newMinion = new Minion();
newMinion.x = deadBody.x;
newMinion.y = deadBody.y;
self.parent.minions.push(newMinion);
self.parent.addChild(newMinion);
self.removeChild(self.meterBar);
self.timeSpentNearDeadBody = 0;
self.meterBar.scale.x = 0;
deadBody.destroy();
}
}
} else if (self.meterBar.parent) {
self.meterBar.parent.removeChild(self.meterBar);
self.timeSpentNearDeadBody = 0;
}
};
});
var Minion = Container.expand(function () {
var self = Container.call(this);
var minionGraphics = self.createAsset('minion', 'Minion Graphics', .5, .5);
self.speed = 5;
self.move = function () {};
self.attack = function () {};
});
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.createAsset('enemy', 'Enemy Graphics', .5, .5);
self.move = function () {};
self.attack = function () {};
});
var HeroBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.createAsset('heroBullet', 'Hero Bullet Graphics', .5, .5);
self.speed = 10;
self.move = function () {};
});
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.createAsset('enemyBullet', 'Enemy Bullet Graphics', .5, .5);
self.speed = -10;
self.move = function () {};
});
var Background = Container.expand(function () {
var bgSelf = Container.call(this);
var backgroundGraphics = bgSelf.createAsset('background', 'Background Image', 0, 0);
bgSelf.addChild(backgroundGraphics);
});
var Game = Container.expand(function () {
var self = Container.call(this);
var ticksText = new Text2('0', {
size: 50,
fill: "#ffffff"
});
ticksText.anchor.set(0.5, 0);
LK.gui.topCenter.addChild(ticksText);
LK.on('tick', function () {
ticksText.setText(player.timeSpentNearDeadBody);
});
var background = self.addChild(new Background());
background.x = LK.stage.width / 2 - background.width / 2;
background.y = LK.stage.height - background.height;
var player = self.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 - 200;
var deadBody = self.addChild(new DeadBody());
deadBody.x = 2048 / 2;
deadBody.y = 1750;
self.minions = [];
var enemies = [];
var heroBullets = [];
var enemyBullets = [];
LK.on('tick', function () {
player.move(deadBody);
self.children.sort(function (a, b) {
return a.y - b.y;
});
});
LK.stage.on('down', function (obj) {
var pos = obj.event.getLocalPosition(self);
player.targetPosition = pos;
});
});
A pixel art sprite in a Super Nintendo, Super Castlevania style where it looks a little gothic/vampire hunter like Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A pixel art large background in a Super Nintendo, Super Castlevania style with an open world like cemetery, 3/4 viewpoint Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. A pixel art sprite in a Super Nintendo, Super Castlevania style that looks like a small pile of bones
Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. A pixel art sprite in a Super Nintendo, Super Castlevania style that looks like a skeleton zombie that is haunched over
Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. Pixel art in a SNES style that looks like something from castlevania. A ground explosion effect like something is coming out of the ground
Pixel art in SNES Castlevania style. Red goblin Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. Pixel art in SNES Castlevania style. Red goblin