|
@@ -8,8 +8,11 @@ import Train from './Train';
|
8
|
8
|
import { distance, pointsAlmostEqual, pointsEqual, randomInt, randomPoint,
|
9
|
9
|
rangeMap, weightedRandom } from './utils';
|
10
|
10
|
|
|
11
|
+import * as imgNode from './node.png';
|
11
|
12
|
import './style.css';
|
12
|
13
|
|
|
14
|
+const NODE_RES = 100;
|
|
15
|
+
|
13
|
16
|
const MAX_SPEED = 10.0;
|
14
|
17
|
const ACCELERATION = 0.025;
|
15
|
18
|
const APPROACH_DISTANCE = 3.0;
|
|
@@ -124,12 +127,19 @@ const drawStations = (stations: Station[], graphics: PIXI.Graphics) => {
|
124
|
127
|
|
125
|
128
|
const drawTrains = (trains: Train[], graphics: PIXI.Graphics) => {
|
126
|
129
|
for (const train of trains) {
|
127
|
|
- graphics.beginFill(parseInt(train.color.toHex(), 16), 0.8);
|
128
|
|
- graphics.drawCircle(train.location.x, train.location.y,
|
129
|
|
- rangeMap(train.passengers, 0, TRAIN_CAPACITY, 1, 5));
|
130
|
|
- graphics.endFill();
|
131
|
|
- train.label.x = train.location.x + 1;
|
132
|
|
- train.label.y = train.location.y + 1;
|
|
130
|
+ // graphics.beginFill(parseInt(train.color.toHex(), 16), 0.8);
|
|
131
|
+ // graphics.drawCircle(train.location.x, train.location.y,
|
|
132
|
+ // rangeMap(train.passengers, 0, TRAIN_CAPACITY, 1, 5));
|
|
133
|
+ // graphics.endFill();
|
|
134
|
+ const trainSize = rangeMap(train.passengers, 0, TRAIN_CAPACITY, 1, 5);
|
|
135
|
+ const scale = trainSize / NODE_RES;
|
|
136
|
+ train.sprite.x = train.location.x;
|
|
137
|
+ train.sprite.y = train.location.y;
|
|
138
|
+ train.sprite.scale.x = scale;
|
|
139
|
+ train.sprite.scale.y = scale;
|
|
140
|
+ train.sprite.tint = parseInt(train.color.toHex(), 16);
|
|
141
|
+ train.label.x = train.location.x + scale + 1;
|
|
142
|
+ train.label.y = train.location.y + scale + 1;
|
133
|
143
|
}
|
134
|
144
|
};
|
135
|
145
|
|
|
@@ -198,6 +208,10 @@ const run = () => {
|
198
|
208
|
|
199
|
209
|
app.stage.addChild(graphics);
|
200
|
210
|
app.stage.addChild(fpsText);
|
|
211
|
+ // add train sprites
|
|
212
|
+ for (const train of trains) {
|
|
213
|
+ app.stage.addChild(train.sprite);
|
|
214
|
+ }
|
201
|
215
|
// Add debug labels
|
202
|
216
|
for (const train of trains) {
|
203
|
217
|
app.stage.addChild(train.label);
|
|
@@ -212,4 +226,4 @@ const run = () => {
|
212
|
226
|
});
|
213
|
227
|
};
|
214
|
228
|
|
215
|
|
-run();
|
|
229
|
+PIXI.loader.add('nodeImg', imgNode).load(run);
|