mirror of
https://github.com/jwinterm/rotsock.git
synced 2026-10-17 05:41:29 +02:00
rebase to coding cookies style
This commit is contained in:
@@ -1,2 +1,3 @@
|
|||||||
## log files
|
## log files
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
/nbproject/private/
|
||||||
+3
-3
@@ -3,9 +3,9 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>Socket.io Test</title>
|
<title>Socket.io Test</title>
|
||||||
<link rel="stylesheet" type="text/css" href="css/style.css">
|
<link rel="stylesheet" type="text/css" href="css/style.css">
|
||||||
<script src="/socket.io/socket.io.js"></script>
|
<script src="node_modules/socket.io/socket.io.js"></script>
|
||||||
<script src="js/game.js"></script>
|
<script src="clientjs/game.js"></script>
|
||||||
<script src="https://ondras.github.io/rot.js/rot.js"></script>
|
<script src="clientjs/rot.js"></script>
|
||||||
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
|
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
// map.js
|
|
||||||
// =========
|
|
||||||
var ROT = require('rot-js');
|
|
||||||
|
|
||||||
var w = 10;
|
|
||||||
var h = 10;
|
|
||||||
var maparray = [];
|
|
||||||
for(i = 0; i < w; i++) {
|
|
||||||
maparray.push([]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function createArena(w, h) {
|
|
||||||
return new ROT.Map.Arena(w, h);
|
|
||||||
}
|
|
||||||
|
|
||||||
function printCallback(x, y, value) {
|
|
||||||
console.log(x, y, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
function arrayCallback(x, y, value) {
|
|
||||||
maparray[x][y] = value;
|
|
||||||
console.log(x, y, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
maparray,
|
|
||||||
createArena,
|
|
||||||
printCallback,
|
|
||||||
arrayCallback,
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
files.encoding=UTF-8
|
||||||
|
site.root.folder=
|
||||||
|
source.folder=
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||||
|
<type>org.netbeans.modules.web.clientproject</type>
|
||||||
|
<configuration>
|
||||||
|
<data xmlns="http://www.netbeans.org/ns/clientside-project/1">
|
||||||
|
<name>rotsock</name>
|
||||||
|
</data>
|
||||||
|
</configuration>
|
||||||
|
</project>
|
||||||
@@ -4,8 +4,9 @@ var http = require('http').Server(app);
|
|||||||
var io = require('socket.io')(http);
|
var io = require('socket.io')(http);
|
||||||
var ROT = require('rot-js');
|
var ROT = require('rot-js');
|
||||||
|
|
||||||
var Map = require('./js/map.js')
|
var Map = require('./serverjs/map.js');
|
||||||
var Player = require('./js/player.js')
|
var Player = require('./serverjs/player.js');
|
||||||
|
var Glyph = require('./serverjs/glyph.js');
|
||||||
|
|
||||||
app.use(express.static(__dirname)); // Current directory is root
|
app.use(express.static(__dirname)); // Current directory is root
|
||||||
|
|
||||||
@@ -21,8 +22,7 @@ var Game = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var map = Map.createArena(10, 10);
|
var map = Map.createArena(10, 10);
|
||||||
map.create(Map.arrayCallback);
|
map.consoleDisplay();
|
||||||
console.log(Map.maparray);
|
|
||||||
|
|
||||||
function findWithAttr(array, attr, value) {
|
function findWithAttr(array, attr, value) {
|
||||||
for(var i = 0; i < array.length; i += 1) {
|
for(var i = 0; i < array.length; i += 1) {
|
||||||
@@ -52,7 +52,7 @@ io.on('connection', function(socket){
|
|||||||
|
|
||||||
function pushMap() {
|
function pushMap() {
|
||||||
for (player in Game.Players) {
|
for (player in Game.Players) {
|
||||||
io.to(player.id).emit("display", JSON.stringify(Map.maparray));
|
io.to(player.id).emit("display", JSON.stringify(map));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// setTimeout(pushMap, 1000);
|
// setTimeout(pushMap, 1000);
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
Glyph = function(chr, foreground, background) {
|
||||||
|
// Instantiate properties to default if they weren't passed
|
||||||
|
this._char = chr || ' ';
|
||||||
|
this._foreground = foreground || 'white';
|
||||||
|
this._background = background || 'black';
|
||||||
|
};
|
||||||
|
|
||||||
|
// Create standard getters for glyphs
|
||||||
|
Glyph.prototype.getChar = function(){
|
||||||
|
return this._char;
|
||||||
|
}
|
||||||
|
Glyph.prototype.getBackground = function(){
|
||||||
|
return this._background;
|
||||||
|
}
|
||||||
|
Glyph.prototype.getForeground = function(){
|
||||||
|
return this._foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
Glyph,
|
||||||
|
};
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
// map.js
|
||||||
|
// =========
|
||||||
|
var ROT = require('rot-js');
|
||||||
|
var Glyph = require('./glyph.js');
|
||||||
|
var Tile = require('./tile.js');
|
||||||
|
|
||||||
|
var w = 80;
|
||||||
|
var h = 40;
|
||||||
|
|
||||||
|
|
||||||
|
function Map(tiles) {
|
||||||
|
this._tiles = tiles;
|
||||||
|
// cache the width and height based
|
||||||
|
// on the length of the dimensions of
|
||||||
|
// the tiles array
|
||||||
|
this._width = tiles.length;
|
||||||
|
this._height = tiles[0].length;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Standard getters
|
||||||
|
Map.prototype.getWidth = function() {
|
||||||
|
return this._width;
|
||||||
|
};
|
||||||
|
Map.prototype.getHeight = function() {
|
||||||
|
return this._height;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Gets the tile for a given coordinate set
|
||||||
|
Map.prototype.getTile = function(x, y) {
|
||||||
|
// Make sure we are inside the bounds. If we aren't, return
|
||||||
|
// null tile.
|
||||||
|
if (x < 0 || x >= this._width || y < 0 || y >= this._height) {
|
||||||
|
return Tile.nullTile;
|
||||||
|
} else {
|
||||||
|
return this._tiles[x][y] || Tile.nullTile;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Map.prototype.consoleDisplay = function() {
|
||||||
|
for (var x = 0; x < this.getWidth(); x++) {
|
||||||
|
for (var y = 0; y < this.getHeight(); y++) {
|
||||||
|
console.log(this.getTile(x, y));
|
||||||
|
}
|
||||||
|
console.log('\n');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createArena(w, h) {
|
||||||
|
var tilearray = []
|
||||||
|
for (var x = 0; x < w; x++) {
|
||||||
|
tilearray.push([]);
|
||||||
|
for (var y = 0; y < h; y++) {
|
||||||
|
tilearray[x].push(Tile.Tile.nullTile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(tilearray);
|
||||||
|
var generator = new ROT.Map.Arena(w, h);
|
||||||
|
generator.create(function(x, y, v) {
|
||||||
|
if (v === 1) {
|
||||||
|
tilearray[x][y] = Tile.Tile.floorTile;
|
||||||
|
} else {
|
||||||
|
tilearray[x][y] = Tile.Tile.wallTile;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return new Map(tilearray);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
Map,
|
||||||
|
createArena,
|
||||||
|
};
|
||||||
@@ -2,19 +2,23 @@
|
|||||||
// ============
|
// ============
|
||||||
|
|
||||||
|
|
||||||
function createPlayer(nick, addy, id, ip) {
|
function Player(nick, addy, id, ip) {
|
||||||
// Setup the bookkeeping stuff
|
// Setup the bookkeeping stuff
|
||||||
this.nick = nick || "Anon";
|
this._nick = nick || "Anon";
|
||||||
this.addy = addy || "MLaMWLvFJMai3czhrK6peenVT2S2hFgmUi";
|
this._addy = addy || "MLaMWLvFJMai3czhrK6peenVT2S2hFgmUi";
|
||||||
this.id = id;
|
this._id = id;
|
||||||
this.ip = ip;
|
this._ip = ip;
|
||||||
this.jointime = Date.now();
|
this._jointime = Date.now();
|
||||||
this.x = 0;
|
this._x = 0;
|
||||||
this.y = 0;
|
this._y = 0;
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
function processInput(key) {
|
Player.prototype.getNick = function() {
|
||||||
|
return this._nick;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player.prototype.processInput = function(key) {
|
||||||
if (key == "VK_K" || key == "VK_NUMPAD8" || key == "VK_UP") {
|
if (key == "VK_K" || key == "VK_NUMPAD8" || key == "VK_UP") {
|
||||||
dir = ROT.DIRS["8"][0];
|
dir = ROT.DIRS["8"][0];
|
||||||
}
|
}
|
||||||
@@ -46,8 +50,7 @@ function processInput(key) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
createPlayer,
|
Player,
|
||||||
processInput,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Executable
+5519
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
var Glyph = require('./glyph.js');
|
||||||
|
|
||||||
|
Tile = function(glyph) {
|
||||||
|
this._glyph = glyph;
|
||||||
|
};
|
||||||
|
|
||||||
|
Tile.prototype.getGlyph = function() {
|
||||||
|
return this._glyph;
|
||||||
|
};
|
||||||
|
|
||||||
|
Tile.nullTile = new Tile(new Glyph.Glyph());
|
||||||
|
Tile.floorTile = new Tile(new Glyph.Glyph('.'));
|
||||||
|
Tile.wallTile = new Tile(new Glyph.Glyph('#', 'goldenrod'));
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
Tile,
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user