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?
//console.log('log monsters ', monsters)
console.log('log updateVehicle ', vehicles)
frame()
}
+20
View File
@@ -26,6 +26,7 @@ function render(ctx, frame, dt, thiscurrentLevel) {
renderMonsters(ctx, enemyAtlas, dt, frame)
renderTreasure(ctx, itemsAtlas, dt, frame)
renderPickups(ctx, itemsAtlas, dt, frame)
renderVehicless(ctx, enemyAtlas, dt, frame)
renderForeground(ctx, thiscurrentLevel.foregroundAtlas, fgCells)
renderLiquids(ctx, thiscurrentLevel.foregroundAtlas, fgCells)
@@ -202,6 +203,25 @@ function renderPlayer(ctx, spriteAtlas, dt, frame) {
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) {
var n, max
const hudScaling = scalingFactor / 2
+8
View File
@@ -38,6 +38,11 @@ function setup(map) {
case 'player':
player = entity
break
case 'vehicle':
vehicles.push(entity)
break
case 'monster':
monsters.push(entity)
break
@@ -91,6 +96,8 @@ function setupEntity(obj, entityType, entityProperties, entityName) {
? health
: entityName == 'extralife'
? extralife
: entityName == 'vehicle'
? vehicle
: entityName == 'door'
? null
: null
@@ -123,6 +130,7 @@ function setupEntity(obj, entityType, entityProperties, entityName) {
entity.monster = entityType == 'monster'
entity.slimeMonster = entityType == 'slimeMonster'
entity.player = entityType == 'player'
entity.vehicle = entityType == 'vehicle'
entity.treasure = entityType == 'treasure'
entity.ammo = entityType == 'ammo'
entity.health = entityType == 'health'
+21
View File
@@ -6,6 +6,7 @@ function update(dt) {
updatePlayer(dt)
updateBullets(dt)
updateMonsters(dt)
updateVehicles(dt)
checkTreasure()
checkPickups()
checkLiquids()
@@ -20,6 +21,23 @@ function updatePlayer(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) {
var n, max
for (n = 0, max = monsters.length; n < max; n++)
@@ -28,6 +46,7 @@ function updateMonsters(dt) {
function updateMonster(monster, dt) {
// monster.slimeMonster && console.log('log monster ', monster)
if (!monster.dead) {
updateEntity(monster, dt)
if (
@@ -332,6 +351,8 @@ function collectTreasure(t) {
}
function updateEntity(entity, dt) {
entity.vehicle && console.log('log entity ', entity)
var wasleft = entity.dx < 0,
wasright = entity.dx > 0,
falling = entity.falling,
+14
View File
@@ -230,6 +230,7 @@ let fps = 60,
monsters = [],
pickups = [],
treasure = [],
vehicles = [],
doors = [], // ! Hier sammel ich alle Door Objekte.
liquids = [], // ! Alle Bereich, die mit Wasser gefüllt sind.
bullets = [],
@@ -334,6 +335,19 @@ let theme = {
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 = {
collected: 0,
killed: 0,
+11
View File
@@ -818,6 +818,17 @@ const level1 = {
x: 176,
y: 351.375,
},
{
class: 'vehicle',
height: 32,
id: 30,
name: 'vehicle',
rotation: 0,
visible: true,
width: 32,
x: 95,
y: 590,
},
],
opacity: 1,
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 = {
class: 'monster',
currentHitpoints: 2,