diff --git a/JisolGameCocos/assets/resources/WorldCanvas.prefab b/JisolGameCocos/assets/resources/WorldCanvas.prefab index 21a180a0..1f4d450f 100644 --- a/JisolGameCocos/assets/resources/WorldCanvas.prefab +++ b/JisolGameCocos/assets/resources/WorldCanvas.prefab @@ -156,7 +156,7 @@ "_shutter": 7, "_iso": 0, "_screenScale": 1, - "_visibility": 1, + "_visibility": 1107296257, "_targetTexture": { "__uuid__": "a0d1e275-5512-493e-8e15-7d2db8beb48e", "__expectedType__": "cc.RenderTexture" diff --git a/JisolGameCocos/assets/resources/config/game/GRoleAttack.json b/JisolGameCocos/assets/resources/config/game/GRoleAttack.json index ef3d46fd..ea121e27 100644 --- a/JisolGameCocos/assets/resources/config/game/GRoleAttack.json +++ b/JisolGameCocos/assets/resources/config/game/GRoleAttack.json @@ -1 +1 @@ -{"10001":{"roleId":10001,"attackWay":"Normal","attackArgs":[]},"10002":{"roleId":10002,"attackWay":"Normal","attackArgs":[]},"10003":{"roleId":10003,"attackWay":"Remote","attackArgs":["20001"]}} \ No newline at end of file +{"10001":{"roleId":10001,"attackWay":"Normal","attackArgs":[]},"10002":{"roleId":10002,"attackWay":"Normal","attackArgs":[]},"10003":{"roleId":10003,"attackWay":"ParabolicRemote","attackArgs":["20001",0.4]}} \ No newline at end of file diff --git a/JisolGameCocos/assets/script/App.ts b/JisolGameCocos/assets/script/App.ts index f5f132c7..2570d5cb 100644 --- a/JisolGameCocos/assets/script/App.ts +++ b/JisolGameCocos/assets/script/App.ts @@ -24,6 +24,7 @@ import { TableGRoleAttack } from "../resources/config/ts/TableGRoleAttack"; import { SpriteFrame } from "cc"; import { TableGRoleAttackBullet } from "../resources/config/ts/TableGRoleAttackBullet"; +let IP = "localhost"; //重写UI class JNGLayer extends JNLayer{ @@ -34,7 +35,7 @@ class JNGLayer extends JNLayer{ //重写Socket class JNGSocket extends JNSocket{ public url() { - return "ws://localhost:8080/websocket"; + return `ws://${IP}:8080/websocket`; } } @@ -160,7 +161,7 @@ export const app = { event : EventDispatcher.getIns(), //通知 proto : NGameMessage.getIns(), //消息 api : axios.create({ - baseURL: "http://localhost:8080", + baseURL: `http://${IP}:8080`, }), //请求 battle : GBattleModeManager.getIns(), //战斗 config : new JNGConfig(), diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttack.ts b/JisolGameCocos/assets/script/battle/base/attack/GAttack.ts index b14daec8..4c780f5a 100644 --- a/JisolGameCocos/assets/script/battle/base/attack/GAttack.ts +++ b/JisolGameCocos/assets/script/battle/base/attack/GAttack.ts @@ -1,10 +1,24 @@ +import { Node } from "cc"; import { TableGRoleAttack } from "../../../../resources/config/ts/TableGRoleAttack"; import GRoleBase from "../role/GRoleBase"; import GAttackNormal from "./GAttackNormal"; -import GAttackRemote from "./GAttackRemote"; +import GAttackParabolicRemote from "./GAttackParabolicRemote"; +import { UITransform } from "cc"; +import GButtleBase from "../bullet/GButtleBase"; +//攻击子弹类 +export class GAttackBullet{ + //创建子弹 + static create>(GClass:{new():T},data:{}):T{ + let bulletNode = new Node(); + bulletNode.addComponent(UITransform); + let bullet = bulletNode.addComponent(GClass); + bullet.setData(data); + return bullet; + } +} //攻击方式基类 export class GAttackBase{ @@ -12,8 +26,8 @@ export class GAttackBase{ } //攻击方式 -export const GAttack:{[key:string]:new () => GAttackBase} = { +export const GAttack:{[key:string]:(new () => GAttackBase)} = { ["Normal"]:GAttackNormal, - ["Remote"]:GAttackRemote, + ["ParabolicRemote"]:GAttackParabolicRemote, } diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttackBullet.ts b/JisolGameCocos/assets/script/battle/base/attack/GAttackBullet.ts new file mode 100644 index 00000000..34da1be7 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/attack/GAttackBullet.ts @@ -0,0 +1,12 @@ + + +export default class GAttackBullet { + + //创建子弹 + static create(){ + + } + +} + + diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttackRemote.ts.meta b/JisolGameCocos/assets/script/battle/base/attack/GAttackBullet.ts.meta similarity index 70% rename from JisolGameCocos/assets/script/battle/base/attack/GAttackRemote.ts.meta rename to JisolGameCocos/assets/script/battle/base/attack/GAttackBullet.ts.meta index 3d01f229..7e3b8f65 100644 --- a/JisolGameCocos/assets/script/battle/base/attack/GAttackRemote.ts.meta +++ b/JisolGameCocos/assets/script/battle/base/attack/GAttackBullet.ts.meta @@ -2,7 +2,7 @@ "ver": "4.0.23", "importer": "typescript", "imported": true, - "uuid": "565d04ae-ff80-4b3c-ac82-97dfcce552c2", + "uuid": "13b542e0-5fa9-4b1d-bfef-8196b3b3ffd6", "files": [], "subMetas": {}, "userData": {} diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicRemote.ts b/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicRemote.ts new file mode 100644 index 00000000..79d019ad --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicRemote.ts @@ -0,0 +1,34 @@ +import { SpriteFrame } from "cc"; +import { TableGRoleAttack } from "../../../../resources/config/ts/TableGRoleAttack"; +import { app } from "../../../App"; +import GRoleBase from "../role/GRoleBase"; +import { GAttackBase, GAttackBullet } from "./GAttack"; +import GButtleDefault from "../bullet/GButtleDefault"; +import { size } from "cc"; +import { Size } from "cc"; +import { Vec2 } from "cc"; +import { v2 } from "cc"; +import { v3 } from "cc"; +/** + * 抛物线普攻 + */ +export default class GAttackParabolicRemote implements GAttackBase{ + + attack(role: GRoleBase<{}>, info: TableGRoleAttack): void { + //[子弹图片] + let image:SpriteFrame = app.role.bullets[info.attackArgs[0]]; + let scale:number = info.attackArgs[1] as unknown as number; + let bone = role.spine.findBone("timo5 007"); + console.log(role.spine,bone); + let bullet = GAttackBullet.create(GButtleDefault,{ + image:image, + scale:scale, + }); + role.mode.addGObject(bullet); + let world2 = role.node.worldPosition.clone().add(v3(bone.worldX,bone.worldY,0)) + bullet.node.setWorldPosition(v3(world2.x,world2.y,world2.z)) + } + +} + + diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicRemote.ts.meta b/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicRemote.ts.meta new file mode 100644 index 00000000..67c43cc2 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicRemote.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "8c684f5a-84b5-4ea1-92d3-c0b70461970c", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttackRemote.ts b/JisolGameCocos/assets/script/battle/base/attack/GAttackRemote.ts deleted file mode 100644 index da383266..00000000 --- a/JisolGameCocos/assets/script/battle/base/attack/GAttackRemote.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { TableGRoleAttack } from "../../../../resources/config/ts/TableGRoleAttack"; -import { app } from "../../../App"; -import GRoleBase from "../role/GRoleBase"; -import { GAttackBase } from "./GAttack"; - -export default class GAttackRemote implements GAttackBase{ - - attack(role: GRoleBase<{}>, info: TableGRoleAttack): void { - console.log(app.role.bullets[info.attackArgs[0]]); - role.fsm.enemy.onHit(); - } - -} - - diff --git a/JisolGameCocos/assets/script/battle/base/bullet.meta b/JisolGameCocos/assets/script/battle/base/bullet.meta new file mode 100644 index 00000000..371abd15 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/bullet.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "c6ed6478-8a11-42b5-ab5a-e302055e39c2", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/bullet/GBattleBase.ts.meta b/JisolGameCocos/assets/script/battle/base/bullet/GBattleBase.ts.meta new file mode 100644 index 00000000..a10fd006 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/bullet/GBattleBase.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "f72595ba-a0e4-4ec5-8da8-b7d531e0c3bb", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/bullet/GBattleDefault.ts.meta b/JisolGameCocos/assets/script/battle/base/bullet/GBattleDefault.ts.meta new file mode 100644 index 00000000..bf36bb10 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/bullet/GBattleDefault.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "894a780e-2f5c-4d98-ba20-b43dbbcff086", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/bullet/GButtleBase.ts b/JisolGameCocos/assets/script/battle/base/bullet/GButtleBase.ts new file mode 100644 index 00000000..44892730 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/bullet/GButtleBase.ts @@ -0,0 +1,7 @@ +import GObject from "../GObject"; + +//子弹基类 +export default class GButtleBase extends GObject{ + setData(data:T){} +} + diff --git a/JisolGameCocos/assets/script/battle/base/bullet/GButtleBase.ts.meta b/JisolGameCocos/assets/script/battle/base/bullet/GButtleBase.ts.meta new file mode 100644 index 00000000..0f1b6cd1 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/bullet/GButtleBase.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "6656486e-6c7b-42f0-900a-d6af2c05785a", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/bullet/GButtleDefault.ts b/JisolGameCocos/assets/script/battle/base/bullet/GButtleDefault.ts new file mode 100644 index 00000000..ed63460e --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/bullet/GButtleDefault.ts @@ -0,0 +1,30 @@ +import { _decorator } from "cc"; +import GButtleBase from "./GButtleBase"; +import { SpriteFrame } from "cc"; +import { Sprite } from "cc"; +import { UITransform } from "cc"; +import { size } from "cc"; +import { Size } from "cc"; +import { v3 } from "cc"; +import { Vec2 } from "cc"; +const { ccclass, property } = _decorator; + +export interface GButtleDefaultInfo{ + image:SpriteFrame;//子弹图片 + scale:number; //子弹大小 + start:Vec2; //子弹初始位置 +} + +//默认子弹类 +@ccclass("GButtleDefault") +export default class GButtleDefault extends GButtleBase{ + + setData(info:GButtleDefaultInfo){ + this.node.layer = 1; + this.node.addComponent(Sprite).spriteFrame = info.image; + this.node.scale = v3(info.scale,info.scale,0); + } + +} + + diff --git a/JisolGameCocos/assets/script/battle/base/bullet/GButtleDefault.ts.meta b/JisolGameCocos/assets/script/battle/base/bullet/GButtleDefault.ts.meta new file mode 100644 index 00000000..ebbffb20 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/bullet/GButtleDefault.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "cf27345b-b08f-4897-8a2e-6be309e9d076", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts b/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts index 764839ff..ef869993 100644 --- a/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts +++ b/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts @@ -79,6 +79,8 @@ export default abstract class GRoleBase extends GObject{ this.node.removeFromParent(); return; } + + this.spine.debugBones = true; this.bind(this.role); diff --git a/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts b/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts index c8c9d29a..d02158ce 100644 --- a/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts +++ b/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts @@ -1,15 +1,10 @@ import { _decorator } from "cc"; import GRoleBase from "../GRoleBase"; -import GFSMBase from "../../fsm/GFSMBase"; import GFSMPVP from "../../fsm/PVP/GFSMPVP"; import GPVPMode, { GPVPModePlayerEnum } from "../../../modes/GPVPMode"; -import { GTactical } from "../../../entity/GTactical"; import { GFSMBattleAmin } from "../../fsm/base/GFSMBattle/GFSMBattleAmin"; import { JNFrameInfo } from "../../../../../../extensions/ngame/assets/ngame/sync/frame/JNSyncFrame"; -import { Vec2 } from "cc"; -import { v2 } from "cc"; import { ProgressBar } from "cc"; -import { GTowards } from "../../GObject"; const { ccclass, property } = _decorator; export interface GDemoMessage{ @@ -40,6 +35,7 @@ export default class GRolePVPEntity extends GRoleBase{ getClassName():string{return "GDemoMessage"} onSyncUpdate(dt: number,frame:JNFrameInfo, input?: GDemoMessage) { super.onSyncUpdate(dt,frame,input); + if(input){ if(Object.prototype.hasOwnProperty.call(input,"isAttack")){ this.fsmAnim.isAttack = input.isAttack; diff --git a/JisolGameCocos/config/GRoleAttack.xlsx b/JisolGameCocos/config/GRoleAttack.xlsx index ed62cdc6..7e361a0d 100644 Binary files a/JisolGameCocos/config/GRoleAttack.xlsx and b/JisolGameCocos/config/GRoleAttack.xlsx differ diff --git a/JisolGameCocos/config/GRoleAttackBullet.xlsx b/JisolGameCocos/config/GRoleAttackBullet.xlsx index 6187b10b..af1d3d96 100644 Binary files a/JisolGameCocos/config/GRoleAttackBullet.xlsx and b/JisolGameCocos/config/GRoleAttackBullet.xlsx differ