Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1c4c2bde8e | |||
| 7d7e17674e | |||
| 4d688ed625 |
37
.github/workflows/build.yaml
vendored
Normal file
37
.github/workflows/build.yaml
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
name: Build
|
||||||
|
run-name: Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build NPM Project
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: node
|
||||||
|
steps:
|
||||||
|
- name: Clone Repository
|
||||||
|
uses: ztimson/actions/clone@develop
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: npm i
|
||||||
|
|
||||||
|
- name: Build Project
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
tag:
|
||||||
|
name: Tag Version
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: node
|
||||||
|
steps:
|
||||||
|
- name: Clone Repository
|
||||||
|
uses: ztimson/actions/clone@develop
|
||||||
|
|
||||||
|
- name: Get Version Number
|
||||||
|
run: echo "VERSION=$(cat package.json | grep version | grep -Eo ':.+' | grep -Eo '[[:alnum:]\.\/\-]+')" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Tag Version
|
||||||
|
uses: ztimson/actions/tag@develop
|
||||||
|
with:
|
||||||
|
tag: ${{env.VERSION}}
|
||||||
14
assets/sprites/soldier/spritesheet.json
Normal file
14
assets/sprites/soldier/spritesheet.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"width": 32,
|
||||||
|
"height": 32,
|
||||||
|
"animations": {
|
||||||
|
"idle": {
|
||||||
|
"y": 0,
|
||||||
|
"frames": 6
|
||||||
|
},
|
||||||
|
"walk": {
|
||||||
|
"y": 0,
|
||||||
|
"frames": 6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
assets/sprites/soldier/spritesheet.png
Normal file
BIN
assets/sprites/soldier/spritesheet.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
1152
package-lock.json
generated
1152
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -8,8 +8,8 @@
|
|||||||
"start": "npm run build && electron ./dist/main.js"
|
"start": "npm run build && electron ./dist/main.js"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"electron": "^20.0.1",
|
"electron": "^40.8.0",
|
||||||
"typescript": "^4.7.4"
|
"typescript": "^5.9.3"
|
||||||
},
|
},
|
||||||
"dependencies": {}
|
"dependencies": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,9 +35,9 @@ export class NPC {
|
|||||||
if(this.options.scale == null) this.options.scale = 1;
|
if(this.options.scale == null) this.options.scale = 1;
|
||||||
this.sprite = new SpriteSheet(ctx, spriteSheetPath, spriteDefPath);
|
this.sprite = new SpriteSheet(ctx, spriteSheetPath, spriteDefPath);
|
||||||
|
|
||||||
setInterval(() => {
|
// setInterval(() => {
|
||||||
this.message(String.fromCodePoint(this.emojis[~~(Math.random() * this.emojis.length)]));
|
// this.message(String.fromCodePoint(this.emojis[~~(Math.random() * this.emojis.length)]));
|
||||||
}, 10000);
|
// }, 10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
animate(name: string, reverse = false) {
|
animate(name: string, reverse = false) {
|
||||||
|
|||||||
@@ -11,11 +11,20 @@ canvas.height = screenHeight;
|
|||||||
|
|
||||||
function clearScreen() { ctx.clearRect(0, 0, screenWidth, screenHeight); }
|
function clearScreen() { ctx.clearRect(0, 0, screenWidth, screenHeight); }
|
||||||
|
|
||||||
const dog = new NPC(ctx, './assets/sprites/shadow-dog/spritesheet.png', '../assets/sprites/shadow-dog/spritesheet.json', {
|
const dog = new NPC(ctx,
|
||||||
|
'./assets/sprites/shadow-dog/spritesheet.png',
|
||||||
|
'../assets/sprites/shadow-dog/spritesheet.json', {
|
||||||
bubbleOffset: [50, 75],
|
bubbleOffset: [50, 75],
|
||||||
scale: 0.25
|
scale: 0.25
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const soldiers = Array(100).fill(null).map(() => new NPC(ctx,
|
||||||
|
'./assets/sprites/soldier/spritesheet.png',
|
||||||
|
'../assets/sprites/soldier/spritesheet.json', {
|
||||||
|
bubbleOffset: [0, 32],
|
||||||
|
scale: 1
|
||||||
|
}));
|
||||||
|
|
||||||
let frame = 0, once = true;
|
let frame = 0, once = true;
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
@@ -23,5 +32,6 @@ setInterval(() => {
|
|||||||
clearScreen();
|
clearScreen();
|
||||||
|
|
||||||
dog.tick();
|
dog.tick();
|
||||||
|
soldiers.forEach(s => s.tick());
|
||||||
})
|
})
|
||||||
}, 1000 / FRAME_RATE);
|
}, 1000 / FRAME_RATE);
|
||||||
|
|||||||
Reference in New Issue
Block a user