Added level class and player movement
This commit is contained in:
parent
33ab4a4624
commit
1bf8fb648b
5
css/index.css
Normal file
5
css/index.css
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
html, body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
@ -3,6 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="css/index.css">
|
||||||
<script type="module" src="src/index.js"></script>
|
<script type="module" src="src/index.js"></script>
|
||||||
<title>Game</title>
|
<title>Game</title>
|
||||||
</head>
|
</head>
|
||||||
|
14
main.js
14
main.js
@ -1,4 +1,4 @@
|
|||||||
const { app, BrowserWindow } = require('electron')
|
const { app, BrowserWindow, ipcMain } = require('electron')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
|
|
||||||
function createWindow () {
|
function createWindow () {
|
||||||
@ -6,10 +6,20 @@ function createWindow () {
|
|||||||
const win = new BrowserWindow({
|
const win = new BrowserWindow({
|
||||||
width: 800,
|
width: 800,
|
||||||
height: 600,
|
height: 600,
|
||||||
|
backgroundColor: '#111',
|
||||||
|
resizable: false,
|
||||||
|
frame: true,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
nodeIntegration: true
|
nodeIntegration: true
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
|
ipcMain.on('resize', function (event, window) {
|
||||||
|
win.setSize( window.w, window.h);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Remove alt menu
|
||||||
|
win.removeMenu();
|
||||||
|
|
||||||
// and load the index.html of the app.
|
// and load the index.html of the app.
|
||||||
win.loadFile(path.join('index.html'))
|
win.loadFile(path.join('index.html'))
|
||||||
|
BIN
res/placeholder.png
Normal file
BIN
res/placeholder.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 243 B |
@ -4,9 +4,11 @@ const { math, KeyControls, Texture, Sprite, TileSprite } = asdf;
|
|||||||
var texture = new Texture('./res/player.png');
|
var texture = new Texture('./res/player.png');
|
||||||
|
|
||||||
class Player extends TileSprite {
|
class Player extends TileSprite {
|
||||||
constructor(keys) {
|
constructor(keys, window) {
|
||||||
super(texture, 24, 24);
|
super(texture, 24, 24);
|
||||||
this.scale = { x: 3, y: 3 };
|
this.scale = { x: 2, y: 2 };
|
||||||
|
|
||||||
|
this.window = window;
|
||||||
|
|
||||||
// Rate walking = 0.4
|
// Rate walking = 0.4
|
||||||
// Rate running = 0.08
|
// Rate running = 0.08
|
||||||
@ -23,11 +25,12 @@ class Player extends TileSprite {
|
|||||||
this.curFrame = 0;
|
this.curFrame = 0;
|
||||||
this.frame = this.frames[this.curFrame];
|
this.frame = this.frames[this.curFrame];
|
||||||
|
|
||||||
this.pos.x = (640 / 2) - (24 * this.scale.x / 2);
|
this.pos.x = (this.window.w / 2) - (24 * this.scale.x / 2);
|
||||||
this.pos.y = (320 / 2) - (24 * this.scale.y / 2);
|
this.pos.y = (this.window.h / 2) - (24 * this.scale.y / 2);
|
||||||
|
|
||||||
this.keys = keys;
|
this.keys = keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
update(dt, t) {
|
update(dt, t) {
|
||||||
const { rate, frames } = this;
|
const { rate, frames } = this;
|
||||||
this.curTime += dt;
|
this.curTime += dt;
|
||||||
|
19
src/index.js
19
src/index.js
@ -1,19 +1,32 @@
|
|||||||
|
const { ipcRenderer } = require('electron')
|
||||||
|
|
||||||
var asdf = require('asdf-games');
|
var asdf = require('asdf-games');
|
||||||
const { Game, Container, math, KeyControls, MouseControls, Text, Texture, TileMap, Sprite, TileSprite } = asdf;
|
const { Game, Container, math, KeyControls, MouseControls, Text, Texture, TileMap, Sprite, TileSprite } = asdf;
|
||||||
|
|
||||||
const game = new Game(640, 320, true);
|
const window = { w: 640, h: 320 };
|
||||||
|
|
||||||
|
const game = new Game(window.w, window.h, true);
|
||||||
|
ipcRenderer.send('resize', window);
|
||||||
|
|
||||||
const { scene, w, h } = game;
|
const { scene, w, h } = game;
|
||||||
|
|
||||||
|
var Player = require("./src/entities/player.js")
|
||||||
|
var Level = require("./src/levels/level.js")
|
||||||
|
|
||||||
const mouseAim = new MouseControls();
|
const mouseAim = new MouseControls();
|
||||||
const keys = new KeyControls();
|
const keys = new KeyControls();
|
||||||
|
|
||||||
var Player = require("./src/entities/player.js")
|
var player = new Player(keys, window);
|
||||||
var player = new Player(keys);
|
var level = new Level(window, keys, player);
|
||||||
|
|
||||||
|
scene.add(level);
|
||||||
scene.add(player);
|
scene.add(player);
|
||||||
|
|
||||||
game.run((dt ,t) => {
|
game.run((dt ,t) => {
|
||||||
if (mouseAim.isDown) {
|
if (mouseAim.isDown) {
|
||||||
console.log('cliccccccccccc');
|
console.log('cliccccccccccc');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check gamestate
|
||||||
|
// TODO
|
||||||
});
|
});
|
44
src/levels/level.js
Normal file
44
src/levels/level.js
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
var asdf = require("asdf-games");
|
||||||
|
const { math, KeyControls, Texture, Sprite, TileSprite, TileMap } = asdf;
|
||||||
|
|
||||||
|
const texture = new Texture('./res/placeholder.png');
|
||||||
|
|
||||||
|
const levelSize = { w: 640, h: 320 };
|
||||||
|
var levelData = [];
|
||||||
|
|
||||||
|
for (let index = 0; index < ((levelSize.w / 32) * (levelSize.h / 32)); index++) {
|
||||||
|
levelData.push({ x: 0, y: 0 });
|
||||||
|
}
|
||||||
|
|
||||||
|
class Level extends TileMap {
|
||||||
|
constructor (window, keys, player) {
|
||||||
|
super(levelData, levelSize.w / 32, levelSize.h / 32, 32, 32, texture);
|
||||||
|
this.pos.x = (window.w / 2) - (levelSize.w / 2);
|
||||||
|
this.pos.y = (window.h / 2) - (levelSize.h / 2);
|
||||||
|
|
||||||
|
this.keys = keys;
|
||||||
|
this.player = player
|
||||||
|
}
|
||||||
|
|
||||||
|
update(dt, t) {
|
||||||
|
// Change walking direction
|
||||||
|
if (this.keys.x == -1) {
|
||||||
|
// Left
|
||||||
|
this.pos.x = this.pos.x + dt * (1 / this.player.rate) * 10;
|
||||||
|
}
|
||||||
|
if (this.keys.x == 1) {
|
||||||
|
// Right
|
||||||
|
this.pos.x = this.pos.x - dt * (1 / this.player.rate) * 10;
|
||||||
|
}
|
||||||
|
if (this.keys.y == -1) {
|
||||||
|
// Down
|
||||||
|
this.pos.y = this.pos.y + dt * (1 / this.player.rate) * 10;
|
||||||
|
}
|
||||||
|
if (this.keys.y == 1) {
|
||||||
|
// Up
|
||||||
|
this.pos.y = this.pos.y - dt * (1 / this.player.rate) * 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Level;
|
Loading…
Reference in New Issue
Block a user