Commit 0733d350 authored by 徐士卿's avatar 徐士卿

Merge branch 'master' of gitlab2.dui88.com:sparkprojects/rb_strongestbrain_250520

parents 885a9eee 3d3bab4e
import { Base, IBase } from "@/core/pixi/base/Base.ts"; import { Base, IBase } from "@/core/pixi/base/Base.ts";
import { Assets, Container, Sprite, Ticker } from "pixi.js"; import { Assets, Container, Sprite, Ticker } from "pixi.js";
export class LevelBase extends Base { export abstract class LevelBase extends Base {
level: number; abstract level: number;
qs: Sprite; qs: Sprite;
constructor(level: number) { gameOver: boolean;
super();
this.level = level;
}
onLoad() { onLoad() {
this.qs = this.addChild(new Sprite(Assets.get(`level${this.level}/qs.png`))); this.qs = this.addChild(new Sprite(Assets.get(`level${this.level}/qs.png`)));
...@@ -17,7 +14,6 @@ export class LevelBase extends Base { ...@@ -17,7 +14,6 @@ export class LevelBase extends Base {
this.qs.position.set(375, 505); this.qs.position.set(375, 505);
} }
onUpdate(time: Ticker) { onUpdate(time: Ticker) {
} }
......
...@@ -4,6 +4,9 @@ import { Base } from "@/core/pixi/base/Base.ts"; ...@@ -4,6 +4,9 @@ import { Base } from "@/core/pixi/base/Base.ts";
import { observer, reactor } from "./mobx/decorators.ts"; import { observer, reactor } from "./mobx/decorators.ts";
import { GameEvent, globalEvent } from "./GameEvent.ts"; import { GameEvent, globalEvent } from "./GameEvent.ts";
import { Level1 } from "@/pages/GamePage/Level/Level1.ts"; import { Level1 } from "@/pages/GamePage/Level/Level1.ts";
import { Level2 } from "@/pages/GamePage/Level/Level2.ts";
import { Level3 } from "@/pages/GamePage/Level/Level3.ts";
import { Level4 } from "@/pages/GamePage/Level/Level4.ts";
@observer @observer
export class Game extends Base { export class Game extends Base {
...@@ -12,7 +15,7 @@ export class Game extends Base { ...@@ -12,7 +15,7 @@ export class Game extends Base {
const qsBg = this.addChild(new Sprite(Assets.get("问题.png"))); const qsBg = this.addChild(new Sprite(Assets.get("问题.png")));
qsBg.position.set(49, 316); qsBg.position.set(49, 316);
this.addChild(new Level1(1)); this.addChild(new Level4());
globalEvent.on(GameEvent.ReceiveEffect, this.receiveEffect, this); globalEvent.on(GameEvent.ReceiveEffect, this.receiveEffect, this);
} }
......
...@@ -4,6 +4,8 @@ import { Assets, Sprite } from "pixi.js"; ...@@ -4,6 +4,8 @@ import { Assets, Sprite } from "pixi.js";
export class Level1 extends LevelBase { export class Level1 extends LevelBase {
level: number = 1;
A: Sprite; A: Sprite;
B: Sprite; B: Sprite;
C: Sprite; C: Sprite;
...@@ -35,12 +37,23 @@ export class Level1 extends LevelBase { ...@@ -35,12 +37,23 @@ export class Level1 extends LevelBase {
this.error.visible = false; this.error.visible = false;
this.error.interactive = false; this.error.interactive = false;
this.A.on("pointertap", this.onTapOption.bind(this, this.A)); [this.A, this.B, this.C, this.D]
.forEach((item) => {
item.on("pointertap", this.onTapOption.bind(this, item));
});
} }
onTapOption(option: Sprite) { onTapOption(item: Sprite) {
this.right.visible = true; const isRight = item === this.C;
this.error.visible = false; this.right.visible = isRight;
this.error.visible = !isRight;
const dp = -10;
this.right.position.set(item.x + dp, item.y + dp);
this.error.position.set(item.x + dp, item.y + dp);
} }
} }
import { LevelBase } from "@/pages/GamePage/Components/LevelBase.ts";
import { Assets, Sprite } from "pixi.js";
export class Level2 extends LevelBase {
level: number = 2;
A: Sprite;
B: Sprite;
C: Sprite;
D: Sprite;
right: Sprite;
error: Sprite;
onLoad() {
super.onLoad();
this.addChild(new Sprite(Assets.get(`level${this.level}/题图.png`)))
.position.set(246, 687);
this.A = this.addChild(new Sprite(Assets.get(`level${this.level}/A.png`)));
this.A.position.set(67, 1111);
this.B = this.addChild(new Sprite(Assets.get(`level${this.level}/B.png`)));
this.B.position.set(243, 1111);
this.C = this.addChild(new Sprite(Assets.get(`level${this.level}/C.png`)));
this.C.position.set(404, 1111);
this.D = this.addChild(new Sprite(Assets.get(`level${this.level}/D.png`)));
this.D.position.set(566, 1111);
this.right = this.addChild(new Sprite(Assets.get(`level${this.level}/right.png`)));
this.right.visible = false;
this.right.interactive = false;
this.error = this.addChild(new Sprite(Assets.get(`level${this.level}/error.png`)));
this.error.visible = false;
this.error.interactive = false;
[this.A, this.B, this.C, this.D]
.forEach((item) => {
item.on("pointertap", this.onTapOption.bind(this, item));
});
}
onTapOption(item: Sprite) {
const isRight = item === this.D;
this.right.visible = isRight;
this.error.visible = !isRight;
const dp = -7;
this.right.position.set(item.x + dp, item.y + dp);
this.error.position.set(item.x + dp, item.y + dp);
}
}
import { LevelBase } from "@/pages/GamePage/Components/LevelBase.ts";
import { Assets, Sprite } from "pixi.js";
export class Level3 extends LevelBase {
level: number = 3;
A: Sprite;
B: Sprite;
C: Sprite;
D: Sprite;
right: Sprite;
error: Sprite;
onLoad() {
super.onLoad();
this.A = this.addChild(new Sprite(Assets.get(`level${this.level}/A.png`)));
this.A.position.set(100, 724);
this.B = this.addChild(new Sprite(Assets.get(`level${this.level}/B.png`)));
this.B.position.set(398, 724);
this.C = this.addChild(new Sprite(Assets.get(`level${this.level}/C.png`)));
this.C.position.set(100, 1002);
this.D = this.addChild(new Sprite(Assets.get(`level${this.level}/D.png`)));
this.D.position.set(398, 1002);
this.right = this.addChild(new Sprite(Assets.get(`level${this.level}/right.png`)));
this.right.visible = false;
this.right.interactive = false;
this.error = this.addChild(new Sprite(Assets.get(`level${this.level}/error.png`)));
this.error.visible = false;
this.error.interactive = false;
[this.A, this.B, this.C, this.D]
.forEach((item) => {
item.on("pointertap", this.onTapOption.bind(this, item));
});
}
onTapOption(item: Sprite) {
const isRight = item === this.A;
this.right.visible = isRight;
this.error.visible = !isRight;
const dp = -10;
this.right.position.set(item.x + dp, item.y + dp);
this.error.position.set(item.x + dp, item.y + dp);
}
}
import { LevelBase } from "@/pages/GamePage/Components/LevelBase.ts";
import { Assets, Sprite } from "pixi.js";
export class Level4 extends LevelBase {
level: number = 4;
A: Sprite;
B: Sprite;
C: Sprite;
D: Sprite;
right: Sprite;
error: Sprite;
onLoad() {
super.onLoad();
this.A = this.addChild(new Sprite(Assets.get(`level${this.level}/A.png`)));
this.A.position.set(73, 1061);
this.B = this.addChild(new Sprite(Assets.get(`level${this.level}/B.png`)));
this.B.position.set(296, 1061);
this.C = this.addChild(new Sprite(Assets.get(`level${this.level}/C.png`)));
this.C.position.set(519, 1061);
this.D = this.addChild(new Sprite(Assets.get(`level${this.level}/D.png`)));
this.D.position.set(269, 668);
this.right = this.addChild(new Sprite(Assets.get(`level${this.level}/right.png`)));
this.right.position.set(243, 658);
this.right.visible = false;
this.right.interactive = false;
this.error = this.addChild(new Sprite(Assets.get(`level${this.level}/error.png`)));
this.error.visible = false;
this.error.interactive = false;
[this.A, this.B, this.C, this.D]
.forEach((item) => {
item.on("pointertap", this.onTapOption.bind(this, item));
});
}
onTapOption(item: Sprite) {
const isRight = item === this.D;
this.right.visible = isRight;
this.error.visible = !isRight;
const dp = -7;
this.error.position.set(item.x + dp, item.y + dp);
}
}
import { Level1 } from "@/pages/GamePage/Level/Level1.ts";
import { Level2 } from "@/pages/GamePage/Level/Level2.ts";
import { Level3 } from "@/pages/GamePage/Level/Level3.ts";
export const MAX_LEVEL = 25;
export const LevelArr = [
Level1,
Level2,
Level3,
];
import { makeAutoObservable, } from 'mobx'; import { makeAutoObservable, } from 'mobx';
import { MAX_LEVEL } from "@/pages/GamePage/Level/LevelConfig.ts";
class GameStore { class GameStore {
...@@ -6,24 +7,24 @@ class GameStore { ...@@ -6,24 +7,24 @@ class GameStore {
makeAutoObservable(this); makeAutoObservable(this);
} }
gameInfo = {
levelIndex: 1,
levelArr: [],
}
startInfo: { async start() {
recordId?: number | string this.gameInfo.levelArr = new Array(MAX_LEVEL).fill(0).map((item, index) => {
countdownSeconds?: number return index + 1;
} = {} });
this.gameInfo.levelArr.sort((a, b) => Math.random() - 0.5);
gameInfo: { this.gameInfo.levelIndex = 0;
score: number,
remainTimes: number,
level: number,
maxScore: number,
} = {
score: 0,
remainTimes: 0,
level: 0,
maxScore: 0,
} }
async submit() {
const score = this.gameInfo.levelIndex;
}
} }
export default (new GameStore()); export default (new GameStore());
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