dd
This commit is contained in:
@@ -4,18 +4,45 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-01-26 16:42:00
|
||||
*/
|
||||
export const CardType = {
|
||||
1: "前排",
|
||||
2: "后排",
|
||||
}
|
||||
export const CardList={
|
||||
1:[1001,1002,1003,1102],
|
||||
2:[1001,1002,1003,1004,1102,1201],
|
||||
3:[1001,1002,1003,1004,1102,1201],
|
||||
4:[1001,1002,1003,1004,1102,1201],
|
||||
5:[1001,1002,1003,1004,1102,1201],
|
||||
6:[1001,1002,1003,1004,1102,1201],
|
||||
}
|
||||
|
||||
|
||||
export const CardSet = {
|
||||
1001:{
|
||||
uuid:1001,
|
||||
name:'护盾战士',
|
||||
level:1,
|
||||
prefab_path:'yinzheng',
|
||||
atk:2,
|
||||
hp:10,
|
||||
power:50, //每0.1秒增加1能量
|
||||
speed:50,
|
||||
uuid:1001, name:'护盾战士', type:1, level:1,prefab_path:1001,atk:1,atk_cd:1.5, hp:20, power:50, speed:50,
|
||||
skill:{ }
|
||||
},
|
||||
|
||||
1002:{
|
||||
uuid:1002, name:'无名法师', type:2, level:1,prefab_path:1002,atk:3,atk_cd:1.5, hp:10, power:50, speed:50,
|
||||
skill:{ }
|
||||
},
|
||||
1003:{
|
||||
uuid:1003, name:'无名战士', type:1, level:1,prefab_path:1003,atk:2, atk_cd:1.5, hp:15, power:50, speed:50,
|
||||
skill:{ }
|
||||
},
|
||||
1102:{
|
||||
uuid:1102, name:'骷髅士兵', type:1, level:1,prefab_path:1102,atk:2,atk_cd:1.5, hp:10, power:50, speed:50,
|
||||
skill:{ }
|
||||
},
|
||||
1004:{
|
||||
uuid:1004, name:'火焰法师', type:2, level:2,prefab_path:1004,atk:4,atk_cd:1.5, hp:15, power:50, speed:50,
|
||||
skill:{ }
|
||||
},
|
||||
1201:{
|
||||
uuid:1201, name:'猎寻狼', type:1, level:2,prefab_path:1201,atk:5,atk_cd:1.5, hp:20, power:100, speed:100,
|
||||
skill:{ }
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
@@ -5,13 +5,15 @@ import { smc } from "../common/SingletonModuleComp";
|
||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||
import { HeroCard } from "../monster/HeroCard";
|
||||
import { HeroCardViewComp } from "../monster/HeroCardViewComp";
|
||||
import { RandomManager } from "../../../../extensions/oops-plugin-framework/assets/core/common/random/RandomManager";
|
||||
import { CardList } from "../common/config/CardSet";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
/** 视图层对象 */
|
||||
@ccclass('ControllerComp')
|
||||
@ecs.register('Controller', false)
|
||||
export class ControllerComp extends CCComp {
|
||||
/** 视图层逻辑代码分离演示 */
|
||||
card_level = 1;
|
||||
start() {
|
||||
this.load_cards()
|
||||
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
|
||||
@@ -29,7 +31,6 @@ export class ControllerComp extends CCComp {
|
||||
smc.vm_data.shuaxin.min += smc.vm_data.shuaxin.speed*dt;
|
||||
if (smc.vm_data.shuaxin.min >= smc.vm_data.shuaxin.max) {
|
||||
smc.vm_data.shuaxin.min = 0;
|
||||
// oops.message.dispatchEvent("do_add_hero",this)
|
||||
this.load_cards()
|
||||
}
|
||||
}
|
||||
@@ -44,12 +45,13 @@ export class ControllerComp extends CCComp {
|
||||
let cards_node= this.node.getChildByName("cards")
|
||||
let x=0
|
||||
let y=0
|
||||
for (let i = 0; i < 5; i++) {
|
||||
let lists = this.get_card_list()
|
||||
lists.forEach(element => {
|
||||
let card = ecs.getEntity<HeroCard>(HeroCard);
|
||||
let pos = v3(x,y)
|
||||
card.load(pos,1001,cards_node);
|
||||
card.load(pos,element[0],cards_node);
|
||||
x=x+120
|
||||
}
|
||||
});
|
||||
this.node.getChildByName("cards").getChildByName("active").active = false
|
||||
}
|
||||
/** 转场 */
|
||||
@@ -57,6 +59,14 @@ export class ControllerComp extends CCComp {
|
||||
this.shuaxin(dt)
|
||||
}
|
||||
|
||||
get_card_list(){
|
||||
let lists:any = []
|
||||
for (let index = 0; index < 5; index++) {
|
||||
let list = RandomManager.instance.getRandomByObjectList(CardList[this.card_level], 1);
|
||||
lists.push(list)
|
||||
}
|
||||
return lists
|
||||
}
|
||||
/** 视图对象通过 ecs.Entity.remove(ControllerComp) 删除组件是触发组件处理自定义释放逻辑 */
|
||||
reset() {
|
||||
this.node.destroy();
|
||||
|
||||
@@ -60,7 +60,10 @@ export class MapViewComp extends CCComp {
|
||||
this.gold_add(dt)
|
||||
}
|
||||
monster_refresh(){
|
||||
this.addMonster(1001)
|
||||
if(smc.monsters.length > 0 ){
|
||||
this.addMonster(smc.monsters[0].uuid)
|
||||
}
|
||||
|
||||
}
|
||||
gold_add(dt: number) {
|
||||
smc.vm_data.gold.time += dt;
|
||||
@@ -88,10 +91,11 @@ export class MapViewComp extends CCComp {
|
||||
}
|
||||
private addMonster(uuid:number=1001) {
|
||||
this.scene.node.active = true
|
||||
let monster = ecs.getEntity<Monster>(Monster);
|
||||
let pos:Vec3 = v3(BoxSet.MONSTER_START,BoxSet.GAME_LINE)
|
||||
let camp = -1
|
||||
monster.load(pos,camp,uuid);
|
||||
let monster = ecs.getEntity<Monster>(Monster);
|
||||
let pos:Vec3 = v3(BoxSet.MONSTER_START,BoxSet.GAME_LINE)
|
||||
let camp = -1
|
||||
monster.load(pos,camp,uuid);
|
||||
smc.monsters.splice(0,1)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-08-04 15:43:04
|
||||
*/
|
||||
import { instantiate, Node, Prefab, Vec3,v3,resources,SpriteFrame,Sprite} from "cc";
|
||||
import { instantiate, Node, Prefab, Vec3,v3,resources,SpriteFrame,Sprite,SpriteAtlas} from "cc";
|
||||
import { UICallbacks } from "../../../../extensions/oops-plugin-framework/assets/core/gui/layer/Defines";
|
||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
@@ -48,11 +48,11 @@ export class Hero extends ecs.Entity {
|
||||
node.getChildByName("avatar").setScale(node.getChildByName("avatar").scale.x*camp, node.getChildByName("avatar").scale.y, node.getChildByName("avatar").scale.z);
|
||||
node.setPosition(pos)
|
||||
// console.log(node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite))
|
||||
const url = 'game/heros/hero/'+CardSet[uuid].prefab_path+'/spriteFrame';
|
||||
resources.load(url, SpriteFrame, (err: any, spriteFrame) => {
|
||||
const url = 'game/heros/hero/heros';
|
||||
resources.load(url, SpriteAtlas, (err: any, atlas) => {
|
||||
const sprite = node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite);
|
||||
|
||||
sprite.spriteFrame = spriteFrame;
|
||||
sprite.spriteFrame = atlas.getSpriteFrame(CardSet[uuid].prefab_path);
|
||||
});
|
||||
this.hero_init(uuid,node)
|
||||
oops.message.dispatchEvent("hero_load",this)
|
||||
@@ -62,6 +62,12 @@ export class Hero extends ecs.Entity {
|
||||
var mv = node.getComponent(MonsterViewComp)!;
|
||||
mv.speed =mv.ospeed = CardSet[uuid].speed;
|
||||
mv.hero_name= CardSet[uuid].name;
|
||||
mv.hp= mv.hp_max = CardSet[uuid].hp;
|
||||
mv.level = CardSet[uuid].level;
|
||||
mv.atk = CardSet[uuid].atk;
|
||||
mv.atk_cd = CardSet[uuid].atk_cd;
|
||||
mv.power = CardSet[uuid].power;
|
||||
mv.type = CardSet[uuid].type;
|
||||
mv.Tpos = v3(0,0,0);
|
||||
mv.camp = 1;
|
||||
mv.change_name(CardSet[uuid].name,1)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-08-04 15:43:04
|
||||
*/
|
||||
import { instantiate, Node, Prefab, Vec3 ,tween, v3,Collider2D,Contact2DType,PhysicsSystem2D,IPhysics2DContact, animation,Label,resources,SpriteFrame,Sprite} from "cc";
|
||||
import { instantiate, Node, Prefab, Vec3 ,tween, v3,SpriteAtlas,Label,resources,SpriteFrame,Sprite} from "cc";
|
||||
import { UICallbacks } from "../../../../extensions/oops-plugin-framework/assets/core/gui/layer/Defines";
|
||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
@@ -34,6 +34,7 @@ export class HeroCard extends ecs.Entity {
|
||||
|
||||
/** 加载角色 */
|
||||
load(pos: Vec3 = Vec3.ZERO,uuid:number=1001,parent:Node) {
|
||||
console.log("load hero",uuid);
|
||||
// var path = "game/monster/"+prefab_path;
|
||||
var path = "game/heros/cards/hero_card";
|
||||
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
||||
@@ -42,17 +43,17 @@ export class HeroCard extends ecs.Entity {
|
||||
// node.getChildByName("avatar").setScale(node.getChildByName("avatar").scale.x*camp, node.getChildByName("avatar").scale.y, node.getChildByName("avatar").scale.z);
|
||||
node.setPosition(pos)
|
||||
|
||||
const url = 'game/heros/hero/heros';
|
||||
resources.load(url, SpriteAtlas, (err: any, atlas) => {
|
||||
const sprite = node.getChildByName("hero").getComponent(Sprite);
|
||||
sprite.spriteFrame = atlas.getSpriteFrame(CardSet[uuid].prefab_path);
|
||||
});
|
||||
|
||||
var hcv = node.getComponent(HeroCardViewComp)!;
|
||||
hcv.card_name=CardSet[uuid].name
|
||||
hcv.card_uid=uuid
|
||||
this.add(hcv);
|
||||
// // console.log(node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite))
|
||||
// const url = 'game/heros/hero/'+prefab_path+'/spriteFrame';
|
||||
// resources.load(url, SpriteFrame, (err: any, spriteFrame) => {
|
||||
// const sprite = node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite);
|
||||
|
||||
// sprite.spriteFrame = spriteFrame;
|
||||
// });
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-08-04 15:43:04
|
||||
*/
|
||||
import { instantiate, Node, Prefab, Vec3 ,v3,resources,SpriteFrame,Sprite,} from "cc";
|
||||
import { instantiate, Node, Prefab, Vec3 ,v3,resources,SpriteFrame,Sprite,SpriteAtlas} from "cc";
|
||||
import { UICallbacks } from "../../../../extensions/oops-plugin-framework/assets/core/gui/layer/Defines";
|
||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
@@ -48,11 +48,11 @@ export class Monster extends ecs.Entity {
|
||||
node.getChildByName("avatar").setScale(node.getChildByName("avatar").scale.x*camp, node.getChildByName("avatar").scale.y, node.getChildByName("avatar").scale.z);
|
||||
node.setPosition(pos)
|
||||
// console.log(node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite))
|
||||
const url = 'game/heros/hero/'+CardSet[uuid].prefab_path+'/spriteFrame';
|
||||
resources.load(url, SpriteFrame, (err: any, spriteFrame) => {
|
||||
const url = 'game/heros/hero/heros';
|
||||
resources.load(url, SpriteAtlas, (err: any, atlas) => {
|
||||
const sprite = node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite);
|
||||
|
||||
sprite.spriteFrame = spriteFrame;
|
||||
sprite.spriteFrame = atlas.getSpriteFrame(CardSet[uuid].prefab_path);
|
||||
});
|
||||
this.hero_init(uuid,node)
|
||||
oops.message.dispatchEvent("monster_load",this)
|
||||
@@ -61,6 +61,12 @@ export class Monster extends ecs.Entity {
|
||||
var mv = node.getComponent(MonsterViewComp)!;
|
||||
mv.speed =mv.ospeed = CardSet[uuid].speed;
|
||||
mv.hero_name= CardSet[uuid].name;
|
||||
mv.hp= mv.hp_max = CardSet[uuid].hp;
|
||||
mv.level = CardSet[uuid].level;
|
||||
mv.atk = CardSet[uuid].atk;
|
||||
mv.atk_cd = CardSet[uuid].atk_cd;
|
||||
mv.power = CardSet[uuid].power;
|
||||
mv.type = CardSet[uuid].type;
|
||||
mv.camp = -1;
|
||||
mv.Tpos = v3(0,0,0);
|
||||
mv.change_name(CardSet[uuid].name,-1)
|
||||
|
||||
@@ -18,6 +18,7 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
|
||||
import { baseCom } from "../skills/baseCom";
|
||||
import { Skill } from "../skills/Skill";
|
||||
import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer";
|
||||
import { SkillCom } from "../skills/SkillCom";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
/** 角色显示组件 */
|
||||
@@ -27,6 +28,7 @@ export class MonsterViewComp extends CCComp {
|
||||
/** 角色动画 */
|
||||
as: MonsterSpine = null!;
|
||||
hero_name : string = "hero";
|
||||
level:number =1;
|
||||
camp: number = 1; /** 角色阵营 1:hero -1 :monster */
|
||||
type: number = 1; /**角色类型 1:前排 2 后排 */
|
||||
state: number = 1; /** 状态 1:move ,2: act 3: stop */
|
||||
@@ -90,8 +92,10 @@ export class MonsterViewComp extends CCComp {
|
||||
// }
|
||||
onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {
|
||||
if(otherCollider.group== BoxSet.HERO_SKILL || otherCollider.group== BoxSet.MONSTER_SKILL){
|
||||
let skill = otherCollider.node.getComponent(SkillCom)!;
|
||||
// console.log('onPostSolve',skill);
|
||||
this.in_atked();
|
||||
this.hp_change(10);
|
||||
this.hp_change(skill.atk);
|
||||
}
|
||||
// switch (selfCollider.group) {
|
||||
// case BoxSet.HERO:
|
||||
|
||||
Reference in New Issue
Block a user