/// <summary> /// 战斗胜利 /// </summary> private void battlestateVictory() { //己方全员播放胜利动作 GeneralSoldier soldier; for (int i = 0; i < SpriteMgr.getInstance().SelfSoldiers.Count; i++) { soldier = SpriteMgr.getInstance().SelfSoldiers[i] as GeneralSoldier; soldier.setState(soldier.WinState); } //战役是否结束 if (num == 0) { //弹胜利窗口 UIManager.getInstance().openPanel(PanelConfig.VICTORYPANEL); Debug.Log("弹胜利窗口"); } else { //下一波战斗 XLMessageManager.getInstance().sendNotification(BATTLESTATE_START); camplayerMove(); } }
/// <summary> /// 全员进入战斗状态 /// </summary> private void fighting() { GeneralSoldier soldier; //我军进入战斗状态 for (int i = 0; i < SpriteMgr.getInstance().SelfSoldiers.Count; i++) { //取得脚本 soldier = SpriteMgr.getInstance().SelfSoldiers[i] as GeneralSoldier; if (soldier != null) { //变成锁敌状态 soldier.setState(soldier.WalkState); } } //敌军进入战斗状态 for (int i = 0; i < SpriteMgr.getInstance().EnemySoldiers.Count; i++) { //取得脚本 soldier = SpriteMgr.getInstance().EnemySoldiers[i] as GeneralSoldier; if (soldier != null) { //变成锁敌状态 soldier.setState(soldier.WalkState); } } }
public void Resume() { if (!isPause) { Time.timeScale = 0; isPause = true; UIManager.getInstance().openPanel(PanelConfig.PAUSEPANEL); for (int i = 0; i < _GamePanelIconBtns.Count; i++) { _GamePanelIconBtns[i].interactable = false; } SpriteMgr.getInstance().pause(); } else { Time.timeScale = 1; isPause = false; UIManager.getInstance().closePanel(PanelConfig.PAUSEPANEL); for (int i = 0; i < _GamePanelIconBtns.Count; i++) { _GamePanelIconBtns[i].interactable = true; } SpriteMgr.getInstance().resume(); } }
public static SpriteMgr getInstance() { if (g_instance == null) { g_instance = new SpriteMgr(); } return(g_instance); }
public static SpriteMgr getInstance() { if (g_instance == null) { g_instance = new SpriteMgr(); } return g_instance; }
void updateBattery() { Transform progress = power.Find("progress"); SpriteMgr sm = progress.GetComponent <SpriteMgr>(); UISprite sp = progress.GetComponent <UISprite>(); BatteryInfo info = AnysdkMgr.GetBatteryInfo(); sm.setIndex(info.state == "charging" ? 1 : 0); sp.fillAmount = (float)info.power / 100; }
static int _g_get_sprites(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); SpriteMgr gen_to_be_invoked = (SpriteMgr)translator.FastGetCSObj(L, 1); translator.Push(L, gen_to_be_invoked.sprites); } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(1); }
static int _s_set_sprites(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); SpriteMgr gen_to_be_invoked = (SpriteMgr)translator.FastGetCSObj(L, 1); gen_to_be_invoked.sprites = (System.Collections.Generic.List <string>)translator.GetObject(L, 2, typeof(System.Collections.Generic.List <string>)); } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(0); }
static int _s_set_index(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); SpriteMgr gen_to_be_invoked = (SpriteMgr)translator.FastGetCSObj(L, 1); gen_to_be_invoked.index = LuaAPI.xlua_tointeger(L, 2); } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(0); }
/// <summary> /// 战斗失败 /// </summary> private void battlestateFailed() { //敌方全员播放胜利动作 for (int i = 0; i < SpriteMgr.getInstance().EnemySoldiers.Count; i++) { GeneralSoldier soldier = SpriteMgr.getInstance().EnemySoldiers[i] as GeneralSoldier; soldier.setState(soldier.WinState); } //弹失败窗口 UIManager.getInstance().openPanel(PanelConfig.FAILEDPANEL); Debug.Log("弹失败窗口"); }
/// <summary> /// /// </summary> /// <param name="device">图形设备</param> /// <param name="contentMgr">素材管理者</param> /// <param name="contentPath">引擎所需资源路径</param> public RenderEngine(GraphicsDevice device, ContentManager contentMgr, string contentPath) { if (device == null) { throw new NullReferenceException(); } this.contentPath = contentPath; this.device = device; this.coordinMgr = new CoordinMgr(); this.spriteMgr = new SpriteMgr(this); this.basicGraphics = new BasicGraphics(this); this.fontMgr = new FontMgr(this, contentMgr); Log.Initialize(); }
static int __CreateInstance(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); if (LuaAPI.lua_gettop(L) == 1) { SpriteMgr gen_ret = new SpriteMgr(); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to SpriteMgr constructor!")); }
/// <summary> /// 事件通知(来自于状态) /// </summary> /// <param name="sender"></param> /// <param name="eventId"></param> /// <param name="eventData"></param> public bool notifyEvent(XLStateBase sender, int eventId, Object eventData) { // 行走状态 if (sender == _walkState) { if (eventId == GeneralWalkState.EVENT_CHANGE_TO_ATTACK) { _data.AttackTarget = _walkState.Target; setState(AttackState); return(true); } return(true); } //攻击状态 if (sender == AttackState) { //攻击目标为空或攻击目标不在攻击范围内 if (eventId == GeneralAttackState.ATTACK_TARGET_IS_NULL || eventId == GeneralAttackState.ATTACK_TARGET_IS_OUT) { //如果是敌方 if (_data.Country == Defaults.Country.Enemy) { //己方还有士兵,进入锁敌 if (SpriteMgr.getInstance().SelfSoldiers.Count > 0) { //进入锁敌状态 setState(_walkState); } } else { //如果是己方,敌方还有士兵,进入锁敌 if (SpriteMgr.getInstance().EnemySoldiers.Count > 0) { //进入锁敌状态 setState(_walkState); } } } return(true); } return(false); }
/// <summary> /// 动画回调 /// </summary> public void animationCall(int type) { //Debug.Log(gameObject.name + _data.Country + "士兵动画回调" + type); //根据返回的类别进行处理 if (type == GeneralSoldier.HIT_THE_POINT_CALL_BACK) //进入打击点 { //对方掉血 bool isDead = SpriteMgr.getInstance().hit(this); //目标是否死亡 if (isDead) { //将自己目标置空 _data.AttackTarget = null; } return; } //本次攻击结束 if (type == GeneralSoldier.HIT_THE_END_CALL_BACK) { AttackState.init(); return; } //死亡动画播放完毕 if (type == GeneralSoldier.DEAD_OVER_CALL_BACK) { string debugName = this.name; GameObject.Destroy(this.gameObject); //销毁 return; } //受攻击动画播放完毕 if (type == GeneralSoldier.HURT_OVER_CALL_BACK) { //进入锁敌状态 setState(_walkState); return; } }
/// <summary> /// 动画回调 /// </summary> public void animationCall(int type) { if (_data.Country == Defaults.Country.Me) { //Debug.Log(_data.Country + "士兵动画回调" + type); } //根据返回的类别进行处理 switch (type) { case GeneralSoldier.HIT_THE_POINT_CALL_BACK: //进入打击点 //_data.SkillMgr.setSkills(this); //_data.SkillMgr.play(_data.Skills[0]); // _data.SkillMgr.play(1005); //对方掉血 bool isDead = SpriteMgr.getInstance().hit(this); //目标是否死亡 if (isDead) { //将自己目标置空 _data.AttackTarget = null; } break; case GeneralSoldier.HIT_THE_END_CALL_BACK: //本次攻击结束 AttackState.init(); break; case GeneralSoldier.DEAD_OVER_CALL_BACK: //死亡动画播放完毕 GameObject.Destroy(this.gameObject); //销毁 break; case GeneralSoldier.HURT_OVER_CALL_BACK: //受攻击动画播放完毕 //进入锁敌状态 setState(_walkState); break; } }
/// <summary> /// 每帧的更新 /// </summary> public override void update() { //先决条件 if (!_host || _host._data == null) { return; } _host._data.AttackTarget = SpriteMgr.getInstance().getCloselyMatchSprite(_host, null); //对手全部被消灭,返回 if (_host._data.AttackTarget == null) { notifyEvent(ENEMY_IS_NULL); return; } else //发锁敌完毕消息 { notifyEvent(FINDED_EVENT); } }
void updateNetwork() { Transform state = network.Find("state"); Transform wifi = network.Find("wifi"); SpriteMgr sm = wifi.GetComponent <SpriteMgr>(); UILabel desc = state.GetComponent <UILabel>(); NetworkInfo info = AnysdkMgr.GetNetworkInfo(); bool isWifi = info.type == "wifi"; wifi.gameObject.SetActive(isWifi); state.gameObject.SetActive(!isWifi); if (isWifi) { sm.setIndex(info.strength - 1); } else { desc.text = info.type; } }
/// <summary> /// 逻辑更新 /// </summary> public override void update() { if (_target == null) // 是否没有目标 { _host.walkStop(); _target = SpriteMgr.getInstance().getCloselyMatchSprite(_host, null); if (_target != null) { _targetPostion = new Vector3(_target.transform.position.x, _target.transform.position.y, _target.transform.position.z); _oldPositionCount = 0; _dodgeStartPosition = new Vector3(_host.transform.position.x, _host.transform.position.y, _host.transform.position.z); //设置寻路的目标点 _navmeshAgent.SetDestination(_targetPostion); // 如果带转向就过于愣了,所以注视掉 // _host.transform.LookAt(new Vector3(_targetPostion.x, _host.transform.position.y, _targetPostion.z)); } return; } // 没在避让 if (_dodgeFrameCount == 0) { _oldPositionCount++; if (_oldPositionCount > CHECK_MOVE_FRAME_COUNT) // 数帧检测移动量 { float moveDistance = Vector3.Distance(_host.transform.position, _dodgeStartPosition); if (moveDistance < 3.0f) // 移动量太小 { // 一半概率向左 if (Random.value < 0.5f) { _dodgeTargetPosition = _host.DodgeLeftPostion; } else // 一半概率向右 { _dodgeTargetPosition = _host.DodgeRightPostion; } _navmeshAgent.SetDestination(_dodgeTargetPosition); //转向 _host.transform.LookAt(new Vector3(_dodgeTargetPosition.x, _host.transform.position.y, _dodgeTargetPosition.z)); _dodgeFrameCount = DODGE_FRAME_COUNT_MAX; } _oldPositionCount = 0; _dodgeStartPosition = new Vector3(_host.transform.position.x, _host.transform.position.y, _host.transform.position.z); } } else // 避让中 { _dodgeFrameCount--; if (_dodgeFrameCount == 0) { _target = null; return; } float dis = Vector3.Distance(_host.transform.position, _dodgeTargetPosition); if (dis < 0.2) { _target = null; return; } return; } // 判断目标距离<攻击距离的时候,就可以结束了 float hostToTargetDistance = Vector3.Distance(_host.transform.position, _targetPostion); _host._data.AttckDistance = 4f; if (hostToTargetDistance <= _host._data.AttckDistance) { _host.walkStop(); notifyEvent(EVENT_CHANGE_TO_ATTACK, _target); return; } }
/// <summary> /// 生成下一个战场的显示内容 /// </summary> private void creatNextBattle(BattleData data) { int spriteCount = 0; bool isBreak = false; if (num == 1) { //生成自己的部队 for (int i = 0; i < MyFormationData.formationList.Count; i++) { for (int j = 0; j < MyFormationData.formationList[i].SoldiersDict.Count; j++) { if (MyFormationData.formationList[i].SoldiersDict[j] != null) { MyFormationData.formationList[i].SoldiersDict[j].Country = Defaults.Country.Me; if (i == 0) { SpriteMgr.getInstance().addSoldier(MyFormationData.formationList[i].SoldiersDict[j], Defaults.SoldierType.Cavalryman, new Vector3(j % 3 + _mySoldierPoints[i].x, 0 + _mySoldierPoints[i].y, (int)(j / 3) + _mySoldierPoints[i].z)); } else { SpriteMgr.getInstance().addSoldier(MyFormationData.formationList[i].SoldiersDict[j], Defaults.SoldierType.Armorman, new Vector3(j % 3 + _mySoldierPoints[i].x, 0 + _mySoldierPoints[i].y, (int)(j / 3) + _mySoldierPoints[i].z)); } if (++spriteCount >= SPRITE_COUNT) { isBreak = true; break; } } } if (isBreak) { break; } } } spriteCount = 0; if (num == 0) { //自己部队停止动作 for (int i = 0; i < SpriteMgr.getInstance().SelfSoldiers.Count; i++) { GeneralSoldier soldier = SpriteMgr.getInstance().SelfSoldiers[i] as GeneralSoldier; soldier.setState(soldier.IdleState); soldier.IsDebug = true; if (++spriteCount >= SPRITE_COUNT) { break; } } } //生成敌人的部队 spriteCount = 0; isBreak = false; for (int i = 0; i < campaignData.BattleList[campaignData.battleIndex].FormationList.Count; i++) { for (int j = 0; j < campaignData.BattleList[campaignData.battleIndex].FormationList[i].SoldiersDict.Count; j++) { //Debug.Log(i + " " + j + " " + campaignData.BattleList[campaignData.battleIndex].FormationList[i].soldiersDict[j]); if (campaignData.BattleList[campaignData.battleIndex].FormationList[i].SoldiersDict[j] != null) { campaignData.BattleList[campaignData.battleIndex].FormationList[i].SoldiersDict[j].Country = Defaults.Country.Enemy; if (j == 0) { SpriteMgr.getInstance().addSoldier(campaignData.BattleList[campaignData.battleIndex].FormationList[i].SoldiersDict[j], Defaults.SoldierType.Masterman, new Vector3(j % 3 + _enemySoldierPoints[i].x, 0 + _enemySoldierPoints[i].y, (int)(j / 3) + _enemySoldierPoints[i].z)); } else { SpriteMgr.getInstance().addSoldier(campaignData.BattleList[campaignData.battleIndex].FormationList[i].SoldiersDict[j], Defaults.SoldierType.Axeman, new Vector3(j % 3 + _enemySoldierPoints[i].x, 0 + _enemySoldierPoints[i].y, (int)(j / 3) + _enemySoldierPoints[i].z)); } } if (++spriteCount >= SPRITE_COUNT) { isBreak = true; break; } } if (isBreak) { break; } } }
void Awake() { m_SpriteMgr = this; LoadSprite(); }
void refreshBtn() { SpriteMgr sp = replay.GetComponentInChildren <SpriteMgr>(); sp.setIndex(isPlaying ? 1 : 0); }
void showDissolveNotice(DissolveInfo dv) { RoomMgr rm = RoomMgr.GetInstance(); mDissolve.SetActive(true); int now = (int)((DateTime.Now.Ticks - DateTime.Parse("1970-01-01").Ticks) / 10000000); mEndTime = dv.time + now; UIGrid grid = mSeats[0].GetComponentInParent <UIGrid>(); int index = 0; for (int i = 0; i < rm.players.Count && i < mSeats.Count; i++, index++) { Transform s = mSeats[i]; PlayerInfo p = rm.players[i]; s.gameObject.SetActive(true); s.Find("bghead/icon").GetComponent <IconLoader>().setUserID(p.userid); s.Find("name").GetComponent <UILabel>().text = p.name; } for (int i = index; i < mSeats.Count; i++) { mSeats[i].gameObject.SetActive(false); } string[] descs = new string[] { "等待中", "已拒绝", "已同意", "离线", "申请解散" }; for (int i = 0; i < rm.players.Count && i < mSeats.Count; i++) { Transform status = mSeats [i].Find("status"); UILabel desc = status.GetComponentInChildren <UILabel>(); SpriteMgr sm = status.Find("icon").GetComponent <SpriteMgr>(); int state = dv.states[i]; int id = 0; if (state > 2) { id = 4; } bool online = dv.online[i]; if (state <= 2) { if (!online) { id = 3; } else { id = state; } } sm.setIndex(id); desc.text = descs[id]; } grid.Reposition(); int si = rm.seatindex; int st = dv.states[si]; bool[] check = new bool[] { false, false, false, false }; if (dv.reason == "offline") { check [2] = true; } else { if (0 == st) { check [0] = true; check [1] = true; } else { check [3] = true; } } mBtnAgree.SetActive(check[0]); mBtnReject.SetActive(check[1]); mBtnDissolve.SetActive(check[2]); }
private void Awake() { instance = this; }
void initSeat(Transform seat, GameOverPlayerInfo info) { int x = 160; int y = -20; Debug.Log("initSeat"); Mahjong2D[] mjs = seat.GetComponentsInChildren <Mahjong2D>(); foreach (Mahjong2D mj in mjs) { Destroy(mj.gameObject); } foreach (int i in info.angangs) { initPengGangs(seat, i, "angang", x); x += 55 * 3 + 10; } foreach (int i in info.wangangs) { initPengGangs(seat, i, "wangang", x); x += 55 * 3 + 10; } foreach (int i in info.diangangs) { initPengGangs(seat, i, "diangang", x); x += 55 * 3 + 10; } foreach (int i in info.pengs) { initPengGangs(seat, i, "peng", x); x += 55 * 3 + 10; } foreach (int i in info.chis) { initChis(seat, i, x); x += 55 * 3 + 10; } ResultDetail detail = info.detail; UILabel tips = seat.Find("tips").GetComponent <UILabel> (); tips.text = detail == null ? "" : detail.tips; //tips.transform.localPosition = new Vector3 (x - 27, 50, 0); List <int> holds = info.holds; holds.Sort(); for (int i = 0; i < holds.Count; i++) { initMahjong(seat, holds [i], new Vector2(x, y), 4); x += 55; } HuInfo hu = info.hu; bool hued = false; if (hu != null && hu.hued) { hued = true; x += 80; initMahjong(seat, hu.pai, new Vector2(x, y), 4); x += 55; } int ma = info.ma; seat.Find("lbl").gameObject.SetActive(ma > 0); seat.Find("ma").gameObject.SetActive(ma > 0); if (ma > 0) { UILabel lbl = seat.Find("ma").GetComponent <UILabel> (); lbl.text = "+" + ma; } SpriteMgr huinfo = seat.Find("huinfo").GetComponent <SpriteMgr>(); int huid = -1; if (hu != null) { if (hu.zimo) { huid = 1; // TODO } else if (hu.hued) { huid = 1; } else if (hu.fangpao) { huid = 0; } } Debug.Log("huid=" + huid); huinfo.setIndex(huid); //huinfo.transform.localPosition = new Vector2 (1142, 0); string score = info.score >= 0 ? "+" + info.score : "" + info.score; seat.Find("score").GetComponent <UILabel>().text = score; #if !UNIT_TEST seat.Find("bghead/icon").GetComponent <IconLoader>().setUserID(info.userid); #endif seat.Find("name").GetComponent <UILabel>().text = info.name; }