add vehicle test

This commit is contained in:
StrangeD0s
2023-02-19 01:05:41 +01:00
parent 4ec4e0ad24
commit c11dcf9076
7 changed files with 84 additions and 0 deletions
+1
View File
@@ -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()
} }
+20
View File
@@ -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
+8
View File
@@ -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'
+21
View File
@@ -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,
+14
View File
@@ -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,
+11
View File
@@ -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',
+9
View File
@@ -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,