Commit 5e074229 authored by Đặng Minh Chiến's avatar Đặng Minh Chiến

Map

parent d282ae2c
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -5,9 +5,11 @@
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
import LocalStorage from "../Data/LocalStorage";
import { ScreenName } from "../UI/Screen/ScreenUI";
import UIManager from "../UI/UIManager";
import DataLevel from "./DataLevel";
import MapManager from "./MapManager";
const { ccclass, property } = cc._decorator;
......@@ -19,15 +21,19 @@ export default class GameManager extends cc.Component {
dataLevels: DataLevel[] = [];
wormTry: number = 0;
public static Instance: GameManager = null;
async onLoad() {
await this.initialize();
GameManager.Instance = this;
await this.initialize();
}
protected start(): void {
}
async initialize() {
this.dataLevels = await this.loadLevel() as DataLevel[];
this.dataLevels = await this.loadLevel() as DataLevel[];
this.uiManager.initialize(this);
this.backHone();
}
......@@ -37,8 +43,8 @@ export default class GameManager extends cc.Component {
}
async loadLevel() {
return new Promise(function (resolve, reject){
cc.loader.loadRes("Data/LevelConfigs", (err, objects) => {
return new Promise(function (resolve, reject) {
cc.loader.loadRes("Data/LevelConfigs", (err, objects) => {
if (err) {
cc.log('Error when loading JSON:', err);
reject([]);
......@@ -53,4 +59,20 @@ export default class GameManager extends cc.Component {
})
}
playGame(level: number){
//let idBackground = this.getIDBackground(level);
// LocalStorage.setBackground(idBackground);
// this.uiManager.setBackground(idBackground);
MapManager.Instance.generateMapByLevel(level);
}
getIDBackground(n: number): number {
if (n < 1) {
throw new Error("Số truyền vào phải lớn hơn hoặc bằng 1");
}
// Tính toán ID theo quy tắc
return Math.floor((n - 1) % 3) + 1;
}
}
\ No newline at end of file
// Learn TypeScript:
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
import DataLevel from "./DataLevel";
import GameManager from "./GameManager";
const {ccclass, property} = cc._decorator;
const { ccclass, property } = cc._decorator;
@ccclass
export default class NewClass extends cc.Component {
export default class MapManager extends cc.Component {
@property(cc.Label)
label: cc.Label = null;
public static Instance: MapManager = null;
@property
text: string = 'hello';
@property(cc.Node)
containerLevel: cc.Node = null;
// LIFE-CYCLE CALLBACKS:
@property(cc.SpriteFrame)
wall: cc.SpriteFrame = null;
// onLoad () {}
@property(cc.SpriteFrame)
store: cc.SpriteFrame = null;
start () {
@property(cc.SpriteFrame)
trap: cc.SpriteFrame = null;
@property(cc.SpriteFrame)
saw: cc.SpriteFrame = null;
@property(cc.SpriteFrame)
apple: cc.SpriteFrame = null;
@property(cc.SpriteFrame)
headWorm: cc.SpriteFrame = null;
@property(cc.SpriteFrame)
bodyWorm: cc.SpriteFrame = null;
@property(cc.SpriteFrame)
tailWorm: cc.SpriteFrame = null;
@property(cc.SpriteFrame)
end: cc.SpriteFrame = null;
map: cc.Node[][] = [];
private listLevelInstance: number[] = [];
private nodeParentPlatform: cc.Node = null;
private offsetMap: number = 43;
protected onLoad(): void {
MapManager.Instance = this;
}
generateMapByLevel(level) {
let dataLevel: DataLevel = GameManager.Instance.dataLevels[level];
// const width = dataLevel.width;
// const height = dataLevel.height;
const width = 21;
const height = 12;
for (let y = 0; y < height; y++) {
this.map.push([]);
for (let x = 0; x < width; x++) {
this.map[y].push(null);
}
}
this.nodeParentPlatform = new cc.Node();
this.nodeParentPlatform.name = "NodePlatformLevel_" + level;
this.nodeParentPlatform.position = cc.v3(0, 0);
this.nodeParentPlatform.parent = this.containerLevel;
let count = dataLevel.bricks.length;
for (const brick of dataLevel.bricks) {
let brickNode: cc.Node = this.instanceNodeById(brick.id);
brickNode.position = cc.v3(this.offsetMap * brick.x, this.offsetMap * brick.y)
brickNode.zIndex = count--;
this.map[brick.y][brick.x] = brickNode;
}
}
// update (dt) {}
}
instanceNodeById(id: number): cc.Node {
let brick = new cc.Node();
brick.name = "brick_" + id;
brick.parent = this.nodeParentPlatform;
switch (id) {
case 1:
brick.addComponent(cc.Sprite).spriteFrame = this.wall;
brick.width = 64;
brick.height = 64;
break;
case 2:
brick.addComponent(cc.Sprite).spriteFrame = this.store;
brick.width = 64;
brick.height = 64;
break;
case 3:
brick.addComponent(cc.Sprite).spriteFrame = this.trap;
brick.width = 64;
brick.height = 64;
break;
case 4:
brick.addComponent(cc.Sprite).spriteFrame = this.apple;
brick.width = 64;
brick.height = 64;
break;
case 7:
brick.addComponent(cc.Sprite).spriteFrame = this.saw;
brick.width = 64;
brick.height = 64;
break;
case 8:
brick.addComponent(cc.Sprite).spriteFrame = this.end;
brick.width = 64;
brick.height = 64;
break;
}
return brick;
}
}
\ No newline at end of file
......@@ -8,7 +8,7 @@
import UIManager from "../UIManager";
import ScreenUI, { ScreenName } from "./ScreenUI";
const {ccclass, property} = cc._decorator;
const { ccclass, property } = cc._decorator;
@ccclass
export default class InGameScreen extends ScreenUI {
......@@ -17,4 +17,12 @@ export default class InGameScreen extends ScreenUI {
super.initialize(uiManager);
this.screenName = ScreenName.INGAME;
}
override active(): void {
super.active();
}
override deactive(): void {
super.deactive();
}
}
import LocalStorage from "../../../Data/LocalStorage";
import GameManager from "../../../GamePlay/GameManager";
import UIManager from "../../UIManager";
import InGameScreen from "../InGameScreen";
import { ScreenName } from "../ScreenUI";
const { ccclass, property } = cc._decorator;
......@@ -52,7 +56,8 @@ export default class ItemLevel extends cc.Component {
if (this.isLock) {
return;
}
console.log(this.level);
UIManager.Instance.activeScreen(ScreenName.INGAME);
GameManager.Instance.playGame(this.level);
}
}
......@@ -73,7 +73,7 @@ export default class LevelScreen extends ScreenUI {
nextPage() {
if (this.isMove) {
this.isMove = false;
if (this.currentPage < this.totalPages) {
if (this.currentPage < this.totalPages-1) {
this.currentPage++;
this.targetPos = cc.v3(this.targetPos.x + this.pageStep.x, this.targetPos.y + this.pageStep.y);
this.movePage(this.targetPos);
......
......@@ -81,7 +81,6 @@ export default class MainScreen extends ScreenUI {
}
let listWormTemp: { id: number, nodeWorm: cc.Node }[] = [];
let listWormActive = LocalStorage.getWormActive();
console.log(listWormActive);
for (let i = 0; i < this.listWorm.length; i++) {
if (!listWormActive.includes(this.listWorm[i].id)) {
listWormTemp.push(this.listWorm[i]);
......@@ -174,7 +173,6 @@ export default class MainScreen extends ScreenUI {
cc.tween({ progress: 0 })
.to(0.3, { progress: 1 }, {
onUpdate: (target, ratio) => {
console.log(ratio);
let end2 = Math.round(start + (end - start) * ratio);
this.txtGem.getComponent(cc.Label).string = "" + end2;
}
......
......@@ -33,8 +33,15 @@ export default class UIManager extends cc.Component {
spriteFrameBackground: cc.SpriteFrame[] = [];
gameManager: GameManager = null;
public static Instance: UIManager = null;
protected onLoad(): void {
UIManager.Instance = this;
}
initialize(manager: GameManager) {
this.gameManager = manager;
for (let i = 0; i < this.screens.length; i++) {
......@@ -44,7 +51,7 @@ export default class UIManager extends cc.Component {
for (let i = 0; i < this.popups.length; i++) {
this.popups[i].initialize(this);
}
this.setBackground();
this.setBackground(LocalStorage.getBackground());
}
deactiveAllScreen() {
......@@ -111,7 +118,7 @@ export default class UIManager extends cc.Component {
this.message.showMessage(message);
}
setBackground(){
this.spriteBackground.spriteFrame = this.spriteFrameBackground[LocalStorage.getBackground()];
setBackground(idBackground: number){
this.spriteBackground.spriteFrame = this.spriteFrameBackground[idBackground];
}
}
{
"ver": "1.1.3",
"uuid": "4e34354e-cb0f-4a5f-9775-0ef88fa931f4",
"importer": "folder",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.3",
"uuid": "c9e13cee-dc33-4ae9-878a-0cd4a59c91de",
"importer": "folder",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_alone2": {
"wall_alone_74": {
"ver": "1.0.6",
"uuid": "7d2481b8-55e3-4c59-bab6-a2f154d6f72a",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_center2_1": {
"wall_center_74": {
"ver": "1.0.6",
"uuid": "b0e03680-2865-41fd-af33-bafad329f370",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_down2_0": {
"wall_down_74": {
"ver": "1.0.6",
"uuid": "b7fadc11-30e1-4d4c-a023-84260df4a540",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_downcenter2_0": {
"wall_downcenter_74": {
"ver": "1.0.6",
"uuid": "45f40e13-4987-49ba-87db-a0927db706b7",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_downleft2_1": {
"wall_downleft_74": {
"ver": "1.0.6",
"uuid": "a1f9fbad-54b9-4969-89a6-2dff3a5263cd",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_downright2_1": {
"wall_downright_74": {
"ver": "1.0.6",
"uuid": "16a558ac-0a93-4cf9-932d-6ed6e90e0574",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_left2_1": {
"wall_left_74": {
"ver": "1.0.6",
"uuid": "ad6b7da9-0792-4bb7-9e45-899b94060ecd",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_leftcenter2": {
"wall_leftcenter_74": {
"ver": "1.0.6",
"uuid": "7ea30610-3c09-4a26-b2bc-04a1dd5edb73",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_right2_1": {
"wall_right_74": {
"ver": "1.0.6",
"uuid": "058dd1ff-be07-46e8-8178-cec98f7db75e",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_rightcenter2_0": {
"wall_rightcenter_74": {
"ver": "1.0.6",
"uuid": "2766276c-cd94-4b63-af35-059e9ba456cd",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_transverse2": {
"wall_transverse_74": {
"ver": "1.0.6",
"uuid": "65df03c2-87ed-48dc-b8a3-016080bc4f66",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_up2_1": {
"wall_up_74": {
"ver": "1.0.6",
"uuid": "0c4496ec-b9d9-463a-befa-fdc7331453c7",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_upcenter2_0": {
"wall_upcenter_74": {
"ver": "1.0.6",
"uuid": "64c3ccd8-cede-4222-a4a8-d12d88b85b1f",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_upleft2_1": {
"wall_upleft_74": {
"ver": "1.0.6",
"uuid": "c5dbc035-3191-4ae8-95ea-8d90de6eeb4a",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_upright2_1": {
"wall_upright_74": {
"ver": "1.0.6",
"uuid": "58ad5895-624e-4dae-bf5a-24b81af1628f",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 74,
"platformSettings": {},
"subMetas": {
"wall_vertical2": {
"wall_vertical_74": {
"ver": "1.0.6",
"uuid": "1f4cc7ca-682d-4288-b492-e6ddeebd9507",
"importer": "sprite-frame",
......
{
"ver": "1.1.3",
"uuid": "422978fc-950d-44b2-b031-da562230d11e",
"importer": "folder",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_alone": {
"wall_alone_91": {
"ver": "1.0.6",
"uuid": "865e80ed-76cd-45ad-acc7-3b335772a51e",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_center_1": {
"wall_center_91": {
"ver": "1.0.6",
"uuid": "36e12fd2-dce4-47f8-81b7-39cfa70380ea",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_down_1": {
"wall_down_91": {
"ver": "1.0.6",
"uuid": "1f95677a-1f64-4cfd-b521-134b7543683c",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_downcenter_1": {
"wall_downcenter_91": {
"ver": "1.0.6",
"uuid": "dc7a4991-ef7f-4180-8bde-b5d41f8b9e30",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_downleft_1": {
"wall_downleft_91": {
"ver": "1.0.6",
"uuid": "354e994a-97eb-4c83-997a-cb6a9b07fb35",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_downright": {
"wall_downright_91": {
"ver": "1.0.6",
"uuid": "f3a4b227-850e-4581-bcf2-f22e82110391",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_left_1": {
"wall_left_91": {
"ver": "1.0.6",
"uuid": "8950a0b3-d5e9-44bf-ac29-1f427ec02fcf",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_leftcenter_1": {
"wall_leftcenter_91": {
"ver": "1.0.6",
"uuid": "79939907-3355-4886-abfc-1629a600c064",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_right_1": {
"wall_right_91": {
"ver": "1.0.6",
"uuid": "0c7e5776-fd24-4848-bfc0-c87e05c1b420",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_rightcenter_0": {
"wall_rightcenter_91": {
"ver": "1.0.6",
"uuid": "07593af5-2d69-41fb-a44f-6f1322e6d237",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_transverse_0": {
"wall_transverse_91": {
"ver": "1.0.6",
"uuid": "bf22df6f-4200-4a04-93d5-61e3af17914d",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_up_0": {
"wall_up_91": {
"ver": "1.0.6",
"uuid": "d4ec361e-f4ea-4273-8fb1-8eb778be3598",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_upcenter": {
"wall_upcenter_91": {
"ver": "1.0.6",
"uuid": "9c83220e-7f00-4b46-9318-755e4fcfb23b",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_upleft": {
"wall_upleft_91": {
"ver": "1.0.6",
"uuid": "2bc2c952-7e63-4979-bcdb-dc6356c5a7d6",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_upright_0": {
"wall_upright_91": {
"ver": "1.0.6",
"uuid": "34eb87b7-174c-4690-8aeb-a147f5adf1cc",
"importer": "sprite-frame",
......
......@@ -12,7 +12,7 @@
"height": 91,
"platformSettings": {},
"subMetas": {
"wall_vertical": {
"wall_vertical_91": {
"ver": "1.0.6",
"uuid": "7bbc5e9e-be7d-4509-84c0-ef3f30c1f034",
"importer": "sprite-frame",
......
{
"ver": "1.1.3",
"uuid": "ee0ec360-a6d4-4940-801e-1e1bd9938071",
"importer": "folder",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.3",
"uuid": "3bd2b400-f9c3-46d5-93bb-ce012d388135",
"importer": "folder",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment