add vehicle test
This commit is contained in:
@@ -194,6 +194,7 @@ function main() {
|
|||||||
setup(currentLevel.levelData) // ! Was brauche ich hier, damit das variabel alle Level laden kann?
|
setup(currentLevel.levelData) // ! Was brauche ich hier, damit das variabel alle Level laden kann?
|
||||||
|
|
||||||
//console.log('log monsters ', monsters)
|
//console.log('log monsters ', monsters)
|
||||||
|
console.log('log updateVehicle ', vehicles)
|
||||||
|
|
||||||
frame()
|
frame()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ function render(ctx, frame, dt, thiscurrentLevel) {
|
|||||||
renderMonsters(ctx, enemyAtlas, dt, frame)
|
renderMonsters(ctx, enemyAtlas, dt, frame)
|
||||||
renderTreasure(ctx, itemsAtlas, dt, frame)
|
renderTreasure(ctx, itemsAtlas, dt, frame)
|
||||||
renderPickups(ctx, itemsAtlas, dt, frame)
|
renderPickups(ctx, itemsAtlas, dt, frame)
|
||||||
|
renderVehicless(ctx, enemyAtlas, dt, frame)
|
||||||
renderForeground(ctx, thiscurrentLevel.foregroundAtlas, fgCells)
|
renderForeground(ctx, thiscurrentLevel.foregroundAtlas, fgCells)
|
||||||
renderLiquids(ctx, thiscurrentLevel.foregroundAtlas, fgCells)
|
renderLiquids(ctx, thiscurrentLevel.foregroundAtlas, fgCells)
|
||||||
|
|
||||||
@@ -202,6 +203,25 @@ function renderPlayer(ctx, spriteAtlas, dt, frame) {
|
|||||||
ctx.globalAlpha = 1
|
ctx.globalAlpha = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function renderVehicless(ctx, spriteAtlas, dt, frame) {
|
||||||
|
ctx.fillStyle = COLOR.BRICK
|
||||||
|
var n, max, vehicle
|
||||||
|
for (n = 0, max = vehicles.length; n < max; n++) {
|
||||||
|
vehicle = vehicles[n]
|
||||||
|
|
||||||
|
if (vehicle.sprites === undefined && !vehicle.dead)
|
||||||
|
ctx.fillRect(
|
||||||
|
vehicle.x + vehicle.dx * dt,
|
||||||
|
vehicle.y + vehicle.dy * dt,
|
||||||
|
32,
|
||||||
|
32
|
||||||
|
)
|
||||||
|
if (vehicle.sprites !== undefined && !vehicle.dead) {
|
||||||
|
//drawSprite(vehicle, spriteAtlas, dt, frame)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function renderHud(ctx, spriteAtlas, dt, frame) {
|
function renderHud(ctx, spriteAtlas, dt, frame) {
|
||||||
var n, max
|
var n, max
|
||||||
const hudScaling = scalingFactor / 2
|
const hudScaling = scalingFactor / 2
|
||||||
|
|||||||
@@ -38,6 +38,11 @@ function setup(map) {
|
|||||||
case 'player':
|
case 'player':
|
||||||
player = entity
|
player = entity
|
||||||
break
|
break
|
||||||
|
|
||||||
|
case 'vehicle':
|
||||||
|
vehicles.push(entity)
|
||||||
|
break
|
||||||
|
|
||||||
case 'monster':
|
case 'monster':
|
||||||
monsters.push(entity)
|
monsters.push(entity)
|
||||||
break
|
break
|
||||||
@@ -91,6 +96,8 @@ function setupEntity(obj, entityType, entityProperties, entityName) {
|
|||||||
? health
|
? health
|
||||||
: entityName == 'extralife'
|
: entityName == 'extralife'
|
||||||
? extralife
|
? extralife
|
||||||
|
: entityName == 'vehicle'
|
||||||
|
? vehicle
|
||||||
: entityName == 'door'
|
: entityName == 'door'
|
||||||
? null
|
? null
|
||||||
: null
|
: null
|
||||||
@@ -123,6 +130,7 @@ function setupEntity(obj, entityType, entityProperties, entityName) {
|
|||||||
entity.monster = entityType == 'monster'
|
entity.monster = entityType == 'monster'
|
||||||
entity.slimeMonster = entityType == 'slimeMonster'
|
entity.slimeMonster = entityType == 'slimeMonster'
|
||||||
entity.player = entityType == 'player'
|
entity.player = entityType == 'player'
|
||||||
|
entity.vehicle = entityType == 'vehicle'
|
||||||
entity.treasure = entityType == 'treasure'
|
entity.treasure = entityType == 'treasure'
|
||||||
entity.ammo = entityType == 'ammo'
|
entity.ammo = entityType == 'ammo'
|
||||||
entity.health = entityType == 'health'
|
entity.health = entityType == 'health'
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ function update(dt) {
|
|||||||
updatePlayer(dt)
|
updatePlayer(dt)
|
||||||
updateBullets(dt)
|
updateBullets(dt)
|
||||||
updateMonsters(dt)
|
updateMonsters(dt)
|
||||||
|
updateVehicles(dt)
|
||||||
checkTreasure()
|
checkTreasure()
|
||||||
checkPickups()
|
checkPickups()
|
||||||
checkLiquids()
|
checkLiquids()
|
||||||
@@ -20,6 +21,23 @@ function updatePlayer(dt) {
|
|||||||
updateEntity(player, dt)
|
updateEntity(player, dt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateVehicles(dt) {
|
||||||
|
var n, max
|
||||||
|
for (n = 0, max = vehicles.length; n < max; n++)
|
||||||
|
updateVehicle(vehicles[n], dt)
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateVehicle(vehicle, dt) {
|
||||||
|
updateEntity(vehicle, dt)
|
||||||
|
if (
|
||||||
|
overlap(player.x, player.y, TILE, TILE, vehicle.x, vehicle.y, TILE, TILE)
|
||||||
|
) {
|
||||||
|
if (player.dy > 0 && vehicle.y - player.y > TILE / 2)
|
||||||
|
// ! Wie mache ich hier den collision check? Achtung, die height und width des Vehicles ist immer noch 16x16
|
||||||
|
console.log('log collision vehicle!')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function updateMonsters(dt) {
|
function updateMonsters(dt) {
|
||||||
var n, max
|
var n, max
|
||||||
for (n = 0, max = monsters.length; n < max; n++)
|
for (n = 0, max = monsters.length; n < max; n++)
|
||||||
@@ -28,6 +46,7 @@ function updateMonsters(dt) {
|
|||||||
|
|
||||||
function updateMonster(monster, dt) {
|
function updateMonster(monster, dt) {
|
||||||
// monster.slimeMonster && console.log('log monster ', monster)
|
// monster.slimeMonster && console.log('log monster ', monster)
|
||||||
|
|
||||||
if (!monster.dead) {
|
if (!monster.dead) {
|
||||||
updateEntity(monster, dt)
|
updateEntity(monster, dt)
|
||||||
if (
|
if (
|
||||||
@@ -332,6 +351,8 @@ function collectTreasure(t) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateEntity(entity, dt) {
|
function updateEntity(entity, dt) {
|
||||||
|
entity.vehicle && console.log('log entity ', entity)
|
||||||
|
|
||||||
var wasleft = entity.dx < 0,
|
var wasleft = entity.dx < 0,
|
||||||
wasright = entity.dx > 0,
|
wasright = entity.dx > 0,
|
||||||
falling = entity.falling,
|
falling = entity.falling,
|
||||||
|
|||||||
@@ -230,6 +230,7 @@ let fps = 60,
|
|||||||
monsters = [],
|
monsters = [],
|
||||||
pickups = [],
|
pickups = [],
|
||||||
treasure = [],
|
treasure = [],
|
||||||
|
vehicles = [],
|
||||||
doors = [], // ! Hier sammel ich alle Door Objekte.
|
doors = [], // ! Hier sammel ich alle Door Objekte.
|
||||||
liquids = [], // ! Alle Bereich, die mit Wasser gefüllt sind.
|
liquids = [], // ! Alle Bereich, die mit Wasser gefüllt sind.
|
||||||
bullets = [],
|
bullets = [],
|
||||||
@@ -334,6 +335,19 @@ let theme = {
|
|||||||
level1: new music('./audio/music/8BitCave.wav', musicVolume),
|
level1: new music('./audio/music/8BitCave.wav', musicVolume),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let submarine = {
|
||||||
|
collected: 0,
|
||||||
|
killed: 0,
|
||||||
|
maxHitpoints: 5,
|
||||||
|
currentHitpoints: 3,
|
||||||
|
vul: true,
|
||||||
|
hurt: false,
|
||||||
|
interact: false,
|
||||||
|
shooting: false,
|
||||||
|
swimming: false,
|
||||||
|
diving: false,
|
||||||
|
}
|
||||||
|
|
||||||
let globalPlayer = {
|
let globalPlayer = {
|
||||||
collected: 0,
|
collected: 0,
|
||||||
killed: 0,
|
killed: 0,
|
||||||
|
|||||||
@@ -818,6 +818,17 @@ const level1 = {
|
|||||||
x: 176,
|
x: 176,
|
||||||
y: 351.375,
|
y: 351.375,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
class: 'vehicle',
|
||||||
|
height: 32,
|
||||||
|
id: 30,
|
||||||
|
name: 'vehicle',
|
||||||
|
rotation: 0,
|
||||||
|
visible: true,
|
||||||
|
width: 32,
|
||||||
|
x: 95,
|
||||||
|
y: 590,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
opacity: 1,
|
opacity: 1,
|
||||||
type: 'objectgroup',
|
type: 'objectgroup',
|
||||||
|
|||||||
@@ -36,6 +36,15 @@ let playerObject = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let vehicle = {
|
||||||
|
class: 'vehicle',
|
||||||
|
maxHitpoints: 5,
|
||||||
|
currentHitpoints: 5,
|
||||||
|
maxdx: 3,
|
||||||
|
vul: true,
|
||||||
|
hurt: false,
|
||||||
|
}
|
||||||
|
|
||||||
let bounderMonster = {
|
let bounderMonster = {
|
||||||
class: 'monster',
|
class: 'monster',
|
||||||
currentHitpoints: 2,
|
currentHitpoints: 2,
|
||||||
|
|||||||
Reference in New Issue
Block a user