update
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import { _decorator, Component, Node, Prefab, instantiate, SpriteFrame } from 'cc';
|
||||
import { PlayerManager } from '../Entity/Player/PlayerManager';
|
||||
import { ActorManager } from '../Entity/Actor/ActorManager';
|
||||
import DataManager from '../Global/DataManager';
|
||||
import { JoyStickManager } from '../UI/JoyStickManager';
|
||||
import { ResourceManager } from '../Global/ResourceManager';
|
||||
import { EntityTypeEnum, InputType, PrefabPathEnum, TexturePathEnum } from '../Enum';
|
||||
import { PrefabPathEnum, TexturePathEnum } from '../Enum';
|
||||
import NetworkManager from '../Global/NetworkManager';
|
||||
import ObjectPoolManager from '../Global/ObjectPoolManager';
|
||||
import { BulletManager } from '../Entity/Bullet/BulletManager';
|
||||
import { EntityTypeEnum, InputTypeEnum } from '../Common';
|
||||
|
||||
const { ccclass } = _decorator;
|
||||
|
||||
@@ -98,7 +99,7 @@ export class BattleManager extends Component {
|
||||
|
||||
tickPlayer(dt: number) {
|
||||
for (const p of DataManager.Instance.state.players) {
|
||||
const playerManager = DataManager.Instance.playerMap.get(p.id)
|
||||
const playerManager = DataManager.Instance.actorMap.get(p.id)
|
||||
if (!playerManager) {
|
||||
return
|
||||
}
|
||||
@@ -108,7 +109,7 @@ export class BattleManager extends Component {
|
||||
|
||||
tickGlobal(dt: number) {
|
||||
DataManager.Instance.applyInput({
|
||||
type: InputType.TimePast,
|
||||
type: InputTypeEnum.TimePast,
|
||||
dt
|
||||
})
|
||||
}
|
||||
@@ -120,13 +121,13 @@ export class BattleManager extends Component {
|
||||
|
||||
renderPlayer() {
|
||||
for (const p of DataManager.Instance.state.players) {
|
||||
let playerManager = DataManager.Instance.playerMap.get(p.id)
|
||||
let playerManager = DataManager.Instance.actorMap.get(p.id)
|
||||
if (!playerManager) {
|
||||
const playerPrefab = DataManager.Instance.prefabMap.get(p.type)
|
||||
const player = instantiate(playerPrefab)
|
||||
player.setParent(this.stage)
|
||||
playerManager = player.addComponent(PlayerManager)
|
||||
DataManager.Instance.playerMap.set(p.id, playerManager)
|
||||
playerManager = player.addComponent(ActorManager)
|
||||
DataManager.Instance.actorMap.set(p.id, playerManager)
|
||||
playerManager.init(p)
|
||||
} else {
|
||||
playerManager.render(p)
|
||||
|
@@ -1,10 +1,11 @@
|
||||
import { _decorator, Component, Node, Prefab, director, instantiate } from 'cc';
|
||||
import { ApiMsgEnum, IApiPlayerListRes, IApiRoomListRes, IMsgPlayerList, IMsgRoomList } from '../Common';
|
||||
import { EventEnum, SceneEnum } from '../Enum';
|
||||
import DataManager from '../Global/DataManager';
|
||||
import EventManager from '../Global/EventManager';
|
||||
import NetworkManager, { ApiMsgEnum, IData } from '../Global/NetworkManager';
|
||||
import { PlayerItemManager } from '../UI/PlayerItemManager';
|
||||
import { RoomItemManager } from '../UI/RoomItemManager';
|
||||
import NetworkManager from '../Global/NetworkManager';
|
||||
import { PlayerManager } from '../UI/PlayerManager';
|
||||
import { RoomManager } from '../UI/RoomManager';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('HallManager')
|
||||
@@ -13,24 +14,24 @@ export class HallManager extends Component {
|
||||
playerContainer: Node = null;
|
||||
|
||||
@property(Prefab)
|
||||
playerItem: Prefab = null;
|
||||
playerPrefab: Prefab = null;
|
||||
|
||||
@property(Node)
|
||||
roomContainer: Node = null;
|
||||
|
||||
@property(Prefab)
|
||||
roomItem: Prefab = null;
|
||||
roomPrefab: Prefab = null;
|
||||
|
||||
onLoad() {
|
||||
director.preloadScene(SceneEnum.Room);
|
||||
EventManager.Instance.on(EventEnum.RoomJoin, this.joinRoom, this)
|
||||
NetworkManager.Instance.listenMsg(ApiMsgEnum.MsgPlayerList, this.renderPlayer);
|
||||
NetworkManager.Instance.listenMsg(ApiMsgEnum.MsgPlayerList, this.renderPlayers);
|
||||
NetworkManager.Instance.listenMsg(ApiMsgEnum.MsgRoomList, this.renderRooms);
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
EventManager.Instance.off(EventEnum.RoomJoin, this.joinRoom, this)
|
||||
NetworkManager.Instance.unlistenMsg(ApiMsgEnum.MsgPlayerList, this.renderPlayer);
|
||||
NetworkManager.Instance.unlistenMsg(ApiMsgEnum.MsgPlayerList, this.renderPlayers);
|
||||
NetworkManager.Instance.unlistenMsg(ApiMsgEnum.MsgRoomList, this.renderRooms);
|
||||
}
|
||||
|
||||
@@ -46,15 +47,15 @@ export class HallManager extends Component {
|
||||
return;
|
||||
}
|
||||
|
||||
this.renderPlayer(res)
|
||||
this.renderPlayers(res)
|
||||
}
|
||||
|
||||
renderPlayer = ({ list }: IData) => {
|
||||
renderPlayers = ({ list }: IApiPlayerListRes | IMsgPlayerList) => {
|
||||
for (const item of this.playerContainer.children) {
|
||||
item.active = false
|
||||
}
|
||||
while (this.playerContainer.children.length < list.length) {
|
||||
const playerItem = instantiate(this.playerItem);
|
||||
const playerItem = instantiate(this.playerPrefab);
|
||||
playerItem.active = false
|
||||
playerItem.setParent(this.playerContainer)
|
||||
}
|
||||
@@ -62,7 +63,7 @@ export class HallManager extends Component {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
const data = list[i];
|
||||
const node = this.playerContainer.children[i]
|
||||
const playerItemManager = node.getComponent(PlayerItemManager)
|
||||
const playerItemManager = node.getComponent(PlayerManager)
|
||||
playerItemManager.init(data)
|
||||
}
|
||||
}
|
||||
@@ -77,12 +78,12 @@ export class HallManager extends Component {
|
||||
this.renderRooms(res)
|
||||
}
|
||||
|
||||
renderRooms = ({ list }: IData) => {
|
||||
renderRooms = ({ list }: IApiRoomListRes | IMsgRoomList) => {
|
||||
for (const item of this.roomContainer.children) {
|
||||
item.active = false
|
||||
}
|
||||
while (this.roomContainer.children.length < list.length) {
|
||||
const roomItem = instantiate(this.roomItem);
|
||||
const roomItem = instantiate(this.roomPrefab);
|
||||
roomItem.active = false
|
||||
roomItem.setParent(this.roomContainer)
|
||||
}
|
||||
@@ -90,7 +91,7 @@ export class HallManager extends Component {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
const data = list[i];
|
||||
const node = this.roomContainer.children[i]
|
||||
const roomItemManager = node.getComponent(RoomItemManager)
|
||||
const roomItemManager = node.getComponent(RoomManager)
|
||||
roomItemManager.init(data)
|
||||
}
|
||||
}
|
||||
@@ -102,8 +103,7 @@ export class HallManager extends Component {
|
||||
return;
|
||||
}
|
||||
|
||||
DataManager.Instance.roomInfo = { ...res }
|
||||
|
||||
DataManager.Instance.roomInfo = res.room
|
||||
director.loadScene(SceneEnum.Room);
|
||||
}
|
||||
|
||||
@@ -114,8 +114,7 @@ export class HallManager extends Component {
|
||||
return;
|
||||
}
|
||||
|
||||
DataManager.Instance.roomInfo = { ...res }
|
||||
|
||||
DataManager.Instance.roomInfo = res.room
|
||||
director.loadScene(SceneEnum.Room);
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +1,8 @@
|
||||
import { _decorator, Component, Node, EditBox, Button, director } from 'cc';
|
||||
import { _decorator, Component, EditBox, director } from 'cc';
|
||||
import { ApiMsgEnum } from '../Common';
|
||||
import { SceneEnum } from '../Enum';
|
||||
import DataManager from '../Global/DataManager';
|
||||
import NetworkManager, { ApiMsgEnum } from '../Global/NetworkManager';
|
||||
import NetworkManager from '../Global/NetworkManager';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('LoginManager')
|
||||
@@ -16,7 +17,6 @@ export class LoginManager extends Component {
|
||||
async start() {
|
||||
await NetworkManager.Instance.connect();
|
||||
console.log("服务连接成功!");
|
||||
|
||||
}
|
||||
|
||||
async handleClick() {
|
||||
@@ -38,7 +38,7 @@ export class LoginManager extends Component {
|
||||
return;
|
||||
}
|
||||
|
||||
DataManager.Instance.myPlayerId = res.id;
|
||||
DataManager.Instance.myPlayerId = res.player.id;
|
||||
director.loadScene(SceneEnum.Hall);
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,10 @@
|
||||
import { _decorator, Component, Node, Prefab, director, instantiate } from 'cc';
|
||||
import { ApiMsgEnum, IMsgGameStart, IMsgRoom } from '../Common';
|
||||
import { EventEnum, SceneEnum } from '../Enum';
|
||||
import DataManager from '../Global/DataManager';
|
||||
import EventManager from '../Global/EventManager';
|
||||
import NetworkManager, { ApiMsgEnum, IData } from '../Global/NetworkManager';
|
||||
import { PlayerItemManager } from '../UI/PlayerItemManager';
|
||||
import NetworkManager from '../Global/NetworkManager';
|
||||
import { PlayerManager } from '../UI/PlayerManager';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('RoomManager')
|
||||
@@ -12,27 +13,31 @@ export class RoomManager extends Component {
|
||||
playerContainer: Node = null;
|
||||
|
||||
@property(Prefab)
|
||||
playerItem: Prefab = null;
|
||||
playerPrefab: Prefab = null;
|
||||
|
||||
onLoad() {
|
||||
director.preloadScene(SceneEnum.Battle);
|
||||
NetworkManager.Instance.listenMsg(ApiMsgEnum.MsgRoom, this.renderPlayer);
|
||||
NetworkManager.Instance.listenMsg(ApiMsgEnum.MsgRoom, this.renderPlayers);
|
||||
NetworkManager.Instance.listenMsg(ApiMsgEnum.MsgGameStart, this.startGame);
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
NetworkManager.Instance.unlistenMsg(ApiMsgEnum.MsgRoom, this.renderPlayer);
|
||||
NetworkManager.Instance.unlistenMsg(ApiMsgEnum.MsgRoom, this.renderPlayers);
|
||||
NetworkManager.Instance.unlistenMsg(ApiMsgEnum.MsgGameStart, this.startGame);
|
||||
}
|
||||
|
||||
async start() {
|
||||
this.renderPlayer(DataManager.Instance.roomInfo)
|
||||
this.renderPlayers({
|
||||
room: DataManager.Instance.roomInfo
|
||||
})
|
||||
}
|
||||
|
||||
renderPlayer = ({ players: list }: any) => {
|
||||
renderPlayers = ({ room: { players: list } }: IMsgRoom) => {
|
||||
for (const item of this.playerContainer.children) {
|
||||
item.active = false
|
||||
}
|
||||
while (this.playerContainer.children.length < list.length) {
|
||||
const playerItem = instantiate(this.playerItem);
|
||||
const playerItem = instantiate(this.playerPrefab);
|
||||
playerItem.active = false
|
||||
playerItem.setParent(this.playerContainer)
|
||||
}
|
||||
@@ -40,7 +45,7 @@ export class RoomManager extends Component {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
const data = list[i];
|
||||
const node = this.playerContainer.children[i]
|
||||
const playerItemManager = node.getComponent(PlayerItemManager)
|
||||
const playerItemManager = node.getComponent(PlayerManager)
|
||||
playerItemManager.init(data)
|
||||
}
|
||||
}
|
||||
@@ -56,9 +61,20 @@ export class RoomManager extends Component {
|
||||
director.loadScene(SceneEnum.Hall);
|
||||
}
|
||||
|
||||
handleGameStart() {
|
||||
console.log("handleGameStart");
|
||||
async handleStart() {
|
||||
const { success, res, error } = await NetworkManager.Instance.callApi(ApiMsgEnum.ApiGameStart, { rid: DataManager.Instance.roomInfo.id });
|
||||
if (!success) {
|
||||
console.log(error)
|
||||
return;
|
||||
}
|
||||
|
||||
// director.loadScene(SceneEnum.Battle);
|
||||
}
|
||||
|
||||
startGame = ({ state }: IMsgGameStart) => {
|
||||
DataManager.Instance.state = state
|
||||
|
||||
director.loadScene(SceneEnum.Battle);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user