【WoofJS】ラスボスを倒せ
Play demo
サンプルコード
setBackdropURL("./docs/images/boss-backdrop.jpg")
setBackdropStyle("cover")
var ship = new Image({
url:"./docs/images/boss-ship.png",
width : 70,
height : 70,
x: 0,
y: minY +30
})
forever(() => {
if(keysDown.includes('UP')){
ship.y +=5;
}
if(keysDown.includes('DOWN')){
ship.y -=5;
}
if(keysDown.includes('RIGHT')){
ship.x +=5;
}
if(keysDown.includes('LEFT')){
ship.x -=5;
}
})
forever(() => {
if(ship.x > maxX){
ship.x = maxX
}
if(ship.x < minX){
ship.x = minX
}
if(ship.y > maxY){
ship.y = maxY
}
if(ship.y < minY){
ship.y = minY
}
})
var lasers =[]
forever(() => {
if(keysDown.includes('SPACE')){
var laser= new Image({
url: "./docs/images/boss-laser.png",
height: 50,
x: ship.x,
y: ship.y,
rotationStyle: "NO ROTATE"
})
laser.showing = false;
lasers.push(laser);
}
})
forever(() => {
lasers.forEach(laser => {
laser.y +=5;
laser.showing = true;
if (laser.y > maxY){
laser.showing = false;
}
if(laser.touching(boss)){
laser.setImageURL("./docs/images/explosion.png")
laser.width = 60
laser.height = 60
bossHealth -=1;
after(0.1,"second",()=>
laser.delete()
);
}
})
})
var boss = new Image({
url: "./docs/images/boss-boss.png",
width: 200,
height: 200,
x:0,
y:maxY - 120,
rotationStyle:"NO ROTATE"
})
forever(() => {
boss.move(1)
if(boss.x > maxX){
boss.angle = -180;
}
if(boss.x < minX){
boss.angle = 0;
}
})
var health = 20;
var bossHealth = new Text({
x: minX +50,
y: minY +10,
size: 30,
color: "white",
text:() => "HP:" + health
})
var bossHealth = 5000;
var bbossHealth = new Text({
x:minX +100,
y:maxY -30,
size: 30,
color: "white",
text: ()=> "BOSS:" + bossHealth
})
forever(() => {
if(ship.touching(boss)){
health -=15;
}
})
var bombs =[]
every(4, 'second', () => {
var bomb = new Image({
url: "./docs/images/boss-bomb.png",
width: 20,
height: 20,
x:boss.x,
y:boss.y
})
bombs.push(bomb);
})
forever(() => {
bombs.forEach(bomb => {
bomb.y -=5
if(bomb.y < minY){
bomb.delete();
}
if(bomb.touching(ship)){
health -=2;
bomb.delete();
}
})
})
var missiles =[]
every(4, 'second', () => {
var missile = new Image({
url: "./docs/images/platformer-enemy.png",
width: 20,
height: 20,
x:boss.x,
y:boss.y,
})
missile.pointTowards(ship.x,ship.y);
missiles.push(missile);
})
forever(() => {
missiles.forEach(missile => {
missile.move(5.5);
if(missile.y < minY){
missile.delete();
}
if(missile.touching(ship)){
health -=3;
missile.delete();
}
})
})
var shots =[]
every(1, 'second', () => {
var shot = new Image({
url: "./docs/images/candyland-mint.png",
width: 15,
height: 15,
x:boss.x,
y:boss.y
})
shots.push(shot)
})
forever(() => {
shots.forEach(shot => {
shot.y -=3;
if(shot.touching(ship)){
health -=1;
shot.delete();
}
})
})
var blaser = new Image({
url: "./docs/images/boss-blaser.png",
width: 60,
height: 500,
})
blaser.showing = false;
forever(() => {
blaser.x =boss.x;
blaser.y = boss.y -300;
})
var timer = 0;
every(1, 'second', () => {
timer = timer+1;
})
var warning = new Image({
url : "./docs/images/boss-warning.jpg",
width: 200,
height: 160,
x: 0,
y: 0,
})
warning.showing= false;
forever(() => {
if(timer == 7){
warning.showing =true;
}
if(timer == 10){
blaser.showing = true;
warning.showing = false;
after(3, 'second', () => {
blaser.showing =false;
timer =0;
})
}
if(blaser.touching(ship)){
health -=5;
}
})
var screenWipes =3;
var wipeText = new Text({
x: maxX -70,
y: minY +10,
size: 30,
color: "white",
text: ()=> "Bombs:" +screenWipes
})
onKeyDown(() => {
if(screenWipes > 0 && keysDown.includes('S')){
screenWipes -=1;
shots.forEach(shot => shot.delete())
missiles.forEach(missile => missile.delete())
bombs.forEach(bomb => bomb.delete())
blaser.showing = false;
timer =0
setBackdropColor("white")
after(0.2, 'second', () => {
setBackdropURL("./docs/images/boss-backdrop.jpg")
})
}
})
var gameOver = new Image({
url: "./docs/images/rr-gameover.png",
width : 300,
height: 270,
x: 0,
y: 0
})
gameOver.showing = false;
forever(() => {
if(health <= 0){
gameOver.showing = true;
freeze();
}
})
var youWin = new Image({
url: "./docs/images/platformer-you-win.png",
width: 110,
height: 110
})
youWin.showing = false;
forever(() => {
if(bossHealth <= 0){
youWin.showing = true;
boss.setImageURL("./docs/images/explosion.png")
freeze();
}
})
この記事が気に入ったらサポートをしてみませんか?