internal void AddNewBeHit(bool bDouble, string dmgText, float x, float y, ENUM_DAMAGE_TYPE dmgType, ENUM_DMG_MOVE_TYPE moveType) { if (allBoards.Count + freeBoards.Count > MaxHitCount) { return; } BeHitBoard pBeHit = GetFreeBoard(); if (pBeHit != null) { STRUCT_BEHIT_DATA PreDefine = DefineBehits[(int)moveType]; pBeHit.m_bDoubleHit = bDouble; pBeHit.m_ColorType = PreDefine.m_ColorType; pBeHit.m_BackColorType = PreDefine.m_BackColorType; //STRUCT_BEHIT_DATA* pItem = &PreDefine; pBeHit.m_nXSpeed = UnityEngine.Random.Range(-PreDefine.m_nXSpeed, PreDefine.m_nXSpeed); pBeHit.m_nYSpeed = PreDefine.m_nYSpeed + UnityEngine.Random.Range(3, 10); // Y象素级移动速度 pBeHit.m_nXAcceleration = PreDefine.m_nXAcceleration; pBeHit.m_nYAcceleration = PreDefine.m_nYAcceleration; // 两个方向的加速度 pBeHit.m_nMaxLife = PreDefine.m_nMaxLife; pBeHit.m_bAlphaMode = PreDefine.m_bAlphaMode; pBeHit.m_nMoveMode = PreDefine.m_nMoveMode; pBeHit.m_nUseTempPos = PreDefine.m_nUseTempPos; pBeHit.m_nStartX = x + PreDefine.m_fXPos; pBeHit.m_nStartY = y + PreDefine.m_fYPos; pBeHit.m_nMoveType = moveType; if (moveType == ENUM_DMG_MOVE_TYPE.MOVE_SCENE_NAME && dmgType == ENUM_DAMAGE_TYPE.DAMAGE_INVALID) { pBeHit.ResetData(dmgText); } else { pBeHit.ResetData(moveType, dmgType, dmgText); } pBeHit.Update(); allBoards.Add(pBeHit); pBeHit.InUse = true; } }
void InitAllMoveData() { //初始化对应ENUM_DMG_MOVE_TYPE STRUCT_BEHIT_DATA temp = DefineBehits[(int)ENUM_DMG_MOVE_TYPE.MOVE_STATUS] = new STRUCT_BEHIT_DATA(); //状态的移动参数 temp.m_nMaxLife = 3000; temp.m_nYSpeed = 100; temp.m_ColorType = new Color(1, 1, 1, 1); //别人的伤害 temp = DefineBehits[(int)ENUM_DMG_MOVE_TYPE.MOVE_DAMAGE_OTHER] = new STRUCT_BEHIT_DATA(); temp.m_nXSpeed = 80; temp.m_nYSpeed = 80; temp.m_nMaxLife = 3000; temp.m_ColorType = new Color(1, 1, 1, 1); //自己的伤害 temp = DefineBehits[(int)ENUM_DMG_MOVE_TYPE.MOVE_DAMAGE_ME] = new STRUCT_BEHIT_DATA(); //temp.m_nXSpeed = 30; temp.m_nYSpeed = 60; temp.m_nMaxLife = 3000; temp.m_nYAcceleration = 30; temp.m_ColorType = new Color(1, 0, 0, 1); //治疗HP temp = DefineBehits[(int)ENUM_DMG_MOVE_TYPE.MOVE_HEAL_HP] = new STRUCT_BEHIT_DATA(); temp.m_nXSpeed = 40; temp.m_fYPos = 40; temp.m_nMaxLife = 3000; temp.m_ColorType = new Color(1, 1, 0, 1); //治疗MP temp = DefineBehits[(int)ENUM_DMG_MOVE_TYPE.MOVE_HEAL_MP] = new STRUCT_BEHIT_DATA(); temp.m_nXSpeed = 40; temp.m_nMaxLife = 3000; temp.m_ColorType = new Color(1, 1, 0, 1); //显示场景名称 temp = DefineBehits[(int)ENUM_DMG_MOVE_TYPE.MOVE_SCENE_NAME] = new STRUCT_BEHIT_DATA(); temp.m_nMaxLife = 3000; temp.m_nYSpeed = 30; temp.m_ColorType = new Color(1, 1, 0, 1); }