From 6906d361b0b8f32b26bcc61760292f03908e126c Mon Sep 17 00:00:00 2001 From: OfficialCHenry Date: Mon, 4 Apr 2022 03:23:10 -0400 Subject: [PATCH] Added Tutorial Level and movement --- .../spritesheets/Hiro.json | 27 +++++ .../spritesheets/Hiro.png | Bin 0 -> 819 bytes .../tilemaps/Tutorial.json | 59 ++++++++++ .../tilemaps/bamboo_forest.tsx | 4 + .../tilemaps/forest1.json | 107 ++++++++++++++++++ .../tilemaps/forest1.png | Bin 0 -> 6690 bytes .../tilemaps/forest_tileset.png | Bin 0 -> 6769 bytes .../Player/PlayerController.ts | 5 +- src/shattered_sword/Scenes/GameLevel.ts | 35 +++++- src/shattered_sword/Scenes/Levels.ts | 14 +++ src/shattered_sword/Scenes/Tutorial.ts | 33 ++++++ 11 files changed, 282 insertions(+), 2 deletions(-) create mode 100644 dist/shattered_sword_assets/spritesheets/Hiro.json create mode 100644 dist/shattered_sword_assets/spritesheets/Hiro.png create mode 100644 dist/shattered_sword_assets/tilemaps/Tutorial.json create mode 100644 dist/shattered_sword_assets/tilemaps/bamboo_forest.tsx create mode 100644 dist/shattered_sword_assets/tilemaps/forest1.json create mode 100644 dist/shattered_sword_assets/tilemaps/forest1.png create mode 100644 dist/shattered_sword_assets/tilemaps/forest_tileset.png create mode 100644 src/shattered_sword/Scenes/Tutorial.ts diff --git a/dist/shattered_sword_assets/spritesheets/Hiro.json b/dist/shattered_sword_assets/spritesheets/Hiro.json new file mode 100644 index 0000000..f593278 --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/Hiro.json @@ -0,0 +1,27 @@ +{ + "name": "Hiro", + "spriteSheetImage": "Hiro.png", + "spriteWidth": 32, + "spriteHeight": 32, + "columns": 1, + "rows": 1, + "durationType": "time", + "animations": [ + { + "name": "IDLE", + "frames": [ {"index": 0, "duration": 540} ] + }, + { + "name": "JUMP", + "frames":[ {"index": 0, "duration": 32}] + }, + { + "name": "WALK", + "frames": [ {"index": 0, "duration": 540} ] + }, + { + "name": "FALL", + "frames": [ {"index": 0, "duration": 540} ] + } + ] +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/Hiro.png b/dist/shattered_sword_assets/spritesheets/Hiro.png new file mode 100644 index 0000000000000000000000000000000000000000..729338f5d8e9d5eda2b61c75a0d21604ac7354b6 GIT binary patch literal 819 zcmV-31I+x1P)Px%?MXyIR9JTCjBQ+Qqp; zM~8Op9=Zsb90I{1gLdd7C`ct%IYe73l%{x)T)YnTd%kz~?(SXEKLqaHz3=^h_r3SN zdr3i4p1tbPb*j9b(v6E#;(-Xns5Ar5+<}{TyhH(>z3Lg2CK@G^w{_Cf{Cea3FfoXB zN0wop%9u<^jgpDA3r8D73xLd3rXmyo6tfJMJr@A9Kw<${hIyNlv;2PJ{4ih|CjwEy zXaUf5)Z405%rXGreTrFz>RDF;i3A{Xl`%;NK-G8c!ht(*Q_LSEnr}|d!n!%p8c;|6 zcmPO;nKw!%H!o(HGT7ht>~jskza0`bJ=L==s%Kq31pxq-Vcy>QZ|yHx8Cz%6bsH3;a9a$yZytzn8zSjQ!pH8GumvY1IL7FwxL% zeF}{$KYbYh$>qkAXMhHvG>WEUh4An{SG<0q^!Np?uYV~4l-p3$;JAgsaf_Re6;k{M z022%AftZPfb*W!>e~T~3!~psE=ji=7!uRIe$TyA~BTPCYdH`_MdWYVX0^6abZDGA9|8Ci^2n5jY{**yyHmyKF-uQh-i+E1D0XZ$x2k@$H;FEKsLAJ?*x5>C=(Pj^r4if-GK{n z0TO_*+zw2I1iMp%vD}UX2tAUC + + + diff --git a/dist/shattered_sword_assets/tilemaps/forest1.json b/dist/shattered_sword_assets/tilemaps/forest1.json new file mode 100644 index 0000000..c88faa6 --- /dev/null +++ b/dist/shattered_sword_assets/tilemaps/forest1.json @@ -0,0 +1,107 @@ +{ "compressionlevel":-1, + "height":20, + "infinite":false, + "layers":[ + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 50, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, 0, 0, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 53, 54, 54, 54, 54, 54, 55, 0, 0, 33, 34, 34, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 0, 0, 53, 54, 54, 54, 54, 55, + 33, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 35, + 33, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 35, + 33, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 35, + 33, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 0, 0, 33, 34, 34, 34, 34, 35, + 41, 42, 42, 42, 42, 42, 43, 0, 0, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 0, 0, 41, 42, 42, 42, 42, 43], + "height":20, + "id":1, + "name":"Main", + "opacity":1, + "properties":[ + { + "name":"Collidable", + "type":"bool", + "value":true + }, + { + "name":"Depth", + "type":"int", + "value":1 + }, + { + "name":"Group", + "type":"string", + "value":"ground" + }], + "type":"tilelayer", + "visible":true, + "width":30, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":20, + "id":2, + "name":"Background ", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":30, + "x":0, + "y":0 + }], + "nextlayerid":6, + "nextobjectid":1, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.8.4", + "tileheight":16, + "tilesets":[ + { + "firstgid":1, + "columns":8, + "image":"forest1.png", + "imageheight":128, + "imagewidth":128, + "margin":0, + "name":"forest1", + "spacing":0, + "tilecount":64, + "tileheight":16, + "tilewidth":16 + }], + "tilewidth":16, + "type":"map", + "version":"1.8", + "width":30 +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/tilemaps/forest1.png b/dist/shattered_sword_assets/tilemaps/forest1.png new file mode 100644 index 0000000000000000000000000000000000000000..946d870b306981bcfce99e95fc8b87fdcccf78b0 GIT binary patch literal 6690 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 literal 0 HcmV?d00001 diff --git a/dist/shattered_sword_assets/tilemaps/forest_tileset.png b/dist/shattered_sword_assets/tilemaps/forest_tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..49a2c8dd9522df7af8b2f2f277c77ee6000a236b GIT binary patch literal 6769 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.add.graphic(GraphicType.RECT, "UI", {position: new Vec2(300, 200), size: new Vec2(600, 400)}); + this.levelTransitionScreen.color = new Color(34, 32, 52); + this.levelTransitionScreen.alpha = 1; + + this.levelTransitionScreen.tweens.add("fadeIn", { + startDelay: 0, + duration: 1000, + effects: [ + { + property: TweenableProperties.alpha, + start: 0, + end: 1, + ease: EaseFunctionType.IN_OUT_QUAD + } + ], + onEnd: Player_Events.LEVEL_END + }); + + this.levelTransitionScreen.tweens.add("fadeOut", { + startDelay: 0, + duration: 1000, + effects: [ + { + property: TweenableProperties.alpha, + start: 1, + end: 0, + ease: EaseFunctionType.IN_OUT_QUAD + } + ], + onEnd: Player_Events.LEVEL_START + }); } diff --git a/src/shattered_sword/Scenes/Levels.ts b/src/shattered_sword/Scenes/Levels.ts index 9624890..003d001 100644 --- a/src/shattered_sword/Scenes/Levels.ts +++ b/src/shattered_sword/Scenes/Levels.ts @@ -12,6 +12,7 @@ import Layer from "../../Wolfie2D/Scene/Layer"; import Label from "../../Wolfie2D/Nodes/UIElements/Label"; import MainMenu from "./MainMenu"; import SceneWithStory from "./SceneWithStory"; +import Tutorial from "./Tutorial"; export default class Levels extends Scene { @@ -25,6 +26,13 @@ export default class Levels extends Scene { this.primary = this.addUILayer("primary"); + const tutorial = this.add.uiElement(UIElementType.BUTTON, "primary", {position: new Vec2(center.x, center.y - 200), text: "tutorial "}); + tutorial.size.set(200, 50); + tutorial.borderWidth = 2; + tutorial.borderColor = Color.WHITE; + tutorial.backgroundColor = Color.TRANSPARENT; + tutorial.onClickEventId = "tutorial"; + const level1 = this.add.uiElement(UIElementType.BUTTON, "primary", {position: new Vec2(center.x, center.y - 150), text: "level 1"}); level1.size.set(200, 50); level1.borderWidth = 2; @@ -74,6 +82,7 @@ export default class Levels extends Scene { back.backgroundColor = Color.TRANSPARENT; back.onClickEventId = "back"; + this.receiver.subscribe("tutorial"); this.receiver.subscribe("level1"); this.receiver.subscribe("level2"); this.receiver.subscribe("level3"); @@ -89,6 +98,11 @@ export default class Levels extends Scene { console.log(event); + + if(event.type === "tutorial"){ + this.sceneManager.changeToScene(Tutorial, {}); + } + if(event.type === "level1"){ this.sceneManager.changeToScene(MainMenu, {}); } diff --git a/src/shattered_sword/Scenes/Tutorial.ts b/src/shattered_sword/Scenes/Tutorial.ts new file mode 100644 index 0000000..2b93c6a --- /dev/null +++ b/src/shattered_sword/Scenes/Tutorial.ts @@ -0,0 +1,33 @@ +import Vec2 from "../../Wolfie2D/DataTypes/Vec2"; +import Debug from "../../Wolfie2D/Debug/Debug"; +import { GameEventType } from "../../Wolfie2D/Events/GameEventType"; +import GameLevel from "./GameLevel"; + + + +export default class Tutorial extends GameLevel{ + + loadScene(): void { + // Load resources + this.load.tilemap("forest1", "shattered_sword_assets/tilemaps/Tutorial.json"); + this.load.spritesheet("player", "shattered_sword_assets/spritesheets/Hiro.json") + //load music here + } + + startScene(): void { + // Add the level 1 tilemap + this.add.tilemap("forest1", new Vec2(2, 2)); + this.viewport.setBounds(0, 0, 64*32, 20*32); + + this.playerSpawn = new Vec2(5*32, 9*32); + + // Do generic setup for a GameLevel + super.startScene(); + + } + + updateScene(deltaT: number): void { + super.updateScene(deltaT); + } + +} \ No newline at end of file