| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /** 动物移动数据类 */
- import Util from "../util/Util";
- const { ccclass } = cc._decorator;
- @ccclass
- export default class PastureData {
- /** 所有点字典 */
- private pointMap: Map<number, cc.Vec2> = new Map<number, cc.Vec2>();
- /** 可移动key数组 */
- private canMoveArr: Array<number> = new Array<number>();
- /** 不可移动key数组 */
- private noCanMoveArr: Array<number> = new Array<number>();
- setPointMap(index, point: cc.Vec2) {
- this.pointMap.set(index, point);
- this.setCanMove(index);
- }
- getCanMoveIndex(oldIndex = -1) {
- let len = this.canMoveArr.length;
- let i = Util.rnd(0, len - 1);
- let index = this.canMoveArr[i];
- this.setNoCanMove(index);
- if (oldIndex != -1) {
- this.setCanMove(oldIndex);
- }
- return index;
- }
- getCanMoveIndexPoint(index) {
- let point = this.pointMap.get(index);
- return point;
- }
- setCanMove(index) {
- let has = this.noCanMoveArr.indexOf(index)
- if (has != -1) {
- this.noCanMoveArr.splice(has, 1)
- }
- this.canMoveArr.push(index);
- }
- setNoCanMove(index) {
- let has = this.canMoveArr.indexOf(index)
- if (has != -1) {
- this.canMoveArr.splice(has, 1)
- }
- this.noCanMoveArr.push(index);
- }
- }
|