This commit is contained in:
sli97
2022-12-03 20:06:57 +08:00
parent bdead4a6d1
commit f3dc3ef7ba
110 changed files with 1347 additions and 1028 deletions

View File

@@ -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)

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}