mirror of
https://github.com/danbulant/heaventaker
synced 2026-07-07 04:00:40 +00:00
count steps
This commit is contained in:
parent
13d23ce5f1
commit
44ec4195c2
4 changed files with 21 additions and 5 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
import Phaser, { Animations } from "phaser";
|
import Phaser, { Animations } from "phaser";
|
||||||
|
import { steps } from "../stores/step";
|
||||||
import { keys } from "./input";
|
import { keys } from "./input";
|
||||||
|
|
||||||
const textureWidth = 100;
|
const textureWidth = 100;
|
||||||
|
|
@ -18,12 +19,14 @@ export class GameScene extends Phaser.Scene {
|
||||||
offset: { x: number, y: nunber },
|
offset: { x: number, y: nunber },
|
||||||
size: { x: number, y: number },
|
size: { x: number, y: number },
|
||||||
px: number,
|
px: number,
|
||||||
|
steps: number,
|
||||||
map: (string | null | {
|
map: (string | null | {
|
||||||
type: string,
|
type: string,
|
||||||
direction?: number
|
direction?: number
|
||||||
})[][]
|
})[][]
|
||||||
}} */
|
}} */
|
||||||
this.map = map;
|
this.map = map;
|
||||||
|
steps.set(map.steps);
|
||||||
}
|
}
|
||||||
|
|
||||||
preload() {
|
preload() {
|
||||||
|
|
@ -87,7 +90,6 @@ export class GameScene extends Phaser.Scene {
|
||||||
var type = item.type;
|
var type = item.type;
|
||||||
if(type === "angel") type = this.map.sprite;
|
if(type === "angel") type = this.map.sprite;
|
||||||
if(this.textures.get(type).frameTotal > 1) {
|
if(this.textures.get(type).frameTotal > 1) {
|
||||||
console.log("Generating animation for", item);
|
|
||||||
var sprite = this.add.sprite(x * this.map.px, y * this.map.px);
|
var sprite = this.add.sprite(x * this.map.px, y * this.map.px);
|
||||||
item.animated = true;
|
item.animated = true;
|
||||||
if(!this.anims.exists(type)) {
|
if(!this.anims.exists(type)) {
|
||||||
|
|
@ -117,6 +119,12 @@ export class GameScene extends Phaser.Scene {
|
||||||
this.player.x = x;
|
this.player.x = x;
|
||||||
this.player.y = y;
|
this.player.y = y;
|
||||||
}
|
}
|
||||||
|
if(item.type !== "wind") {
|
||||||
|
item.sprite.setDepth(1);
|
||||||
|
} else {
|
||||||
|
item.sprite.setDepth(0);
|
||||||
|
}
|
||||||
|
this.children.queueDepthSort();
|
||||||
} else {
|
} else {
|
||||||
item.sprite = null;
|
item.sprite = null;
|
||||||
}
|
}
|
||||||
|
|
@ -159,7 +167,7 @@ export class GameScene extends Phaser.Scene {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
movePlayer(moveX, moveY) {
|
movePlayer(moveX, moveY, fromWind = false) {
|
||||||
if(!this.canMove) return;
|
if(!this.canMove) return;
|
||||||
var toX = this.player.x + moveX;
|
var toX = this.player.x + moveX;
|
||||||
var toY = this.player.y + moveY;
|
var toY = this.player.y + moveY;
|
||||||
|
|
@ -171,13 +179,16 @@ export class GameScene extends Phaser.Scene {
|
||||||
this.move(toX, toY, toX + moveX, toY + moveY);
|
this.move(toX, toY, toX + moveX, toY + moveY);
|
||||||
}
|
}
|
||||||
this.canMove = false;
|
this.canMove = false;
|
||||||
|
if(!fromWind) {
|
||||||
|
steps.update(t => --t);
|
||||||
|
}
|
||||||
this.move(this.player.x, this.player.y, toX, toY, () => {
|
this.move(this.player.x, this.player.y, toX, toY, () => {
|
||||||
this.canMove = true;
|
this.canMove = true;
|
||||||
this.player.x = toX;
|
this.player.x = toX;
|
||||||
this.player.y = toY;
|
this.player.y = toY;
|
||||||
if(this.winds[toX][toY]) {
|
if(this.winds[toX][toY]) {
|
||||||
var movement = this.getMovementFromDirection(this.winds[toX][toY].direction);
|
var movement = this.getMovementFromDirection(this.winds[toX][toY].direction);
|
||||||
this.movePlayer(movement.x, movement.y);
|
this.movePlayer(movement.x, movement.y, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ function wind(direction) {
|
||||||
offset: { x: number, y: nunber },
|
offset: { x: number, y: nunber },
|
||||||
size: { x: number, y: number },
|
size: { x: number, y: number },
|
||||||
px: number,
|
px: number,
|
||||||
|
steps: number,
|
||||||
map: {
|
map: {
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
|
|
@ -33,6 +34,7 @@ export const maps = {
|
||||||
x: 5,
|
x: 5,
|
||||||
y: 7
|
y: 7
|
||||||
},
|
},
|
||||||
|
steps: 11,
|
||||||
px: 100, // block size
|
px: 100, // block size
|
||||||
map: [
|
map: [
|
||||||
["barrier", "barrier", "angel" , "barrier", "barrier"],
|
["barrier", "barrier", "angel" , "barrier", "barrier"],
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
import { characters } from "../stores/characters.js";
|
import { characters } from "../stores/characters.js";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import { setCanvas, setMap, resize, stop } from "../game";
|
import { setCanvas, setMap, resize, stop } from "../game";
|
||||||
|
import { steps } from "../stores/step";
|
||||||
|
|
||||||
export var current;
|
export var current;
|
||||||
|
|
||||||
|
|
@ -29,7 +30,6 @@
|
||||||
return Array(+digits.join("") + 1).join("M") + roman;
|
return Array(+digits.join("") + 1).join("M") + roman;
|
||||||
}
|
}
|
||||||
|
|
||||||
var steps = 11;
|
|
||||||
var canvas;
|
var canvas;
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
|
|
@ -46,6 +46,6 @@
|
||||||
|
|
||||||
<svelte:window on:resize={resize} />
|
<svelte:window on:resize={resize} />
|
||||||
|
|
||||||
<GameOverlay {steps} chapter={toRoman(characterIndex + 1)} />
|
<GameOverlay steps={$steps} chapter={toRoman(characterIndex + 1)} />
|
||||||
|
|
||||||
<canvas bind:this={canvas} />
|
<canvas bind:this={canvas} />
|
||||||
3
src/stores/step.js
Normal file
3
src/stores/step.js
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
import { writable } from "svelte/store";
|
||||||
|
|
||||||
|
export const steps = writable(0);
|
||||||
Loading…
Reference in a new issue