java对战游戏源码Spellsource-服务器 这是 Spellsource 的模拟器和游戏服务器,这是一款社区创作的纸牌游戏,在 Affero GPLv3 下获得许可。 Alpha 的 Steam 密钥可供真正的测试人员使用。 在 Discord 中与我们联系。 请查看选项卡以报告错误或请求功能。 更改列表 读取或部署的更改。 描述 Spellsource-Server项目是一个支持托管网络游戏的 2 人卡牌对战游戏。 它具有基本的配对、收藏管理和对在比赛之间持续存在的游戏机制的支持。 请参阅完整的代码参考。 四处走走 卡片位于 。 要实现新效果(在 Spellsource 中称为Spells ),请将新的 Spell 子类添加到 . 您可以在课程中了解有关 Spellsource AI 的更多信息。 服务器应用程序以 . ./gradlew netRun使用 . 客户是私人的,请联系以获取 Discord 的访问权限。 任务 $ ./gradlew tasks --group spellsource > Task :tasks -------------------------
2022-09-30 15:56:13 56.73MB 系统开源
1
三千人的场景,并且人物都有动画,启用了GPU Instancing,关闭了阴影,最重要的一步优化是将animation动画转成了纹理贴图,然后加载贴图就可以实现动画了,避免了直接播放动画片段带来的性能消耗。
2022-09-23 09:32:23 1.03MB unity 千人战斗场景优化
1
回合制自己写的 战斗DEMO 加动画状态 Q键移动并攻击。 代码很简单。不要抱有太大希望 。作为新手学习使用。 public enum HeroStatus { idle = 0, //空闲 attack, //攻击 other, //其他 hit, //受击 die, //死亡 defense, //防御 cast, //施法 miss, //闪避 seriousInjury, //重伤 move, //移动 exit, //获取下一个状态 MAX, } public class hero : MonoBehaviour { public UISpriteAnimation m_spriteAnimation = null; public HeroStatus m_staus = HeroStatus.exit; //身体碰撞盒 public BoxCollider m_bodyBC = null; public string m_name = ""; public AttackCrash m_attackCrash = null; public byte m_posIndex = 0; void Awake() { m_spriteAnimation = transform.GetComponent(); m_bodyBC = transform.GetComponent(); } // Use this for initialization void Start () { m_spriteAnimation.AddFrameCallBack("attack", 1, AttackCallBack); m_spriteAnimation.AddFrameCallBack("attack", 4, AttackCallBack); m_spriteAnimation.AddFrameCallBack("attack", 7, AttackCallBack); } public float m_speed = 1f; public float m_offset = 0.5f; public Vector3 m_destination = Vector3.zero; public List m_actionList = new List(); // Update is called once per frame void Update () { switch (m_staus) { case HeroStatus.idle: //空闲状态 if (m_actionList.Count > 0) m_staus = HeroStatus.exit; break; case HeroStatus.attack: if (!m_spriteAnimation.isPlaying) { //攻击动画播放完毕 m_staus = HeroStatus.exit; } break; case HeroStatus.defense: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.hit: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.die: break; case HeroStatus.cast: break; case HeroStatus.miss: break; case HeroStatus.seriousInjury: break; case HeroStatus.move: transform.position = Vector3.MoveTowards(transform.position, m_destination, m_speed * Time.deltaTime); if (transform.position == m_destination) m_staus = HeroStatus.exit; break; case HeroStatus.exit: //获取下一个状态 if (m_actionList.Count > 0) { string str = "idle"; switch(m_actionList[0].status) { case HeroStatus.move: str = "idle"; break; default: str = Enum.GetName(typeof(HeroStatus), m_actionList[0].status); break; } m_spriteAnimation.namePrefix = str; m_spriteAnimation.loop = m_actionList[0].loop; m_destination = m_actionList[0].destinationMove; m_speed = m_actionList[0].speed; m_spriteAnimation.ResetToBeginning(); m_staus = m_actionList[0].status; m_actionList.RemoveAt(0); } else { m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); m_spriteAnimation.loop = true; m_spriteAnimation.ResetToBeginning(); m_staus = HeroStatus.idle; } break; // case HeroStatus.moveback: // //transform.position = Vector3.SmoothDamp(transform.position, destinationMove, ref cameraVelocity, smoothTime); // transform.position = Vector3.MoveTowards(transform.position, destinationMove, m_speed * Time.deltaTime); // if (transform.position == destinationMove) // m_staus = HeroStatus.idle; // break; } } public void SetPosition(byte pos, float x, float y) { m_posIndex = pos; transform.localPosition = new Vector3(x, y); } public void AttackCallBack() { //创建攻击特效 A攻击B B掉血222 B反击A闪避 UnityEngine.Object sourceObj = Resources.Load("AttackCrash"); GameObject go = UnityEngine.Object.Instantiate(sourceObj) as GameObject; go.transform.parent = transform; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-70, 0, 0); } private void OnCollisionEnter(Collision co) { //进入碰撞 Debug.Log("进入碰撞!"); UnityEngine.Object sourceObj = Resources.Load("Effect"); GameObject go = UnityEngine.Object.Instantiate(sourceObj) as GameObject; go.transform.parent = transform; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(0, 0, 0); //Defense(); Hit(); } public void Attack(GameObject aims) { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.move; tmpAD.loop = true; UISprite tmpS = transform.GetComponent(); tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(aims.transform.localPosition.x + (tmpS.width/2), aims.transform.localPosition.y)); tmpAD.speed = Vector3.Distance(transform.position, tmpAD.destinationMove) * 4; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.attack; tmpAD1.loop = false; tmpAD1.destinationMove = Vector3.zero; tmpAD1.speed = 0; m_actionList.Add(tmpAD1); ActionData tmpAD2 = new ActionData(); tmpAD2.status = HeroStatus.move; tmpAD2.loop = true; tmpAD2.destinationMove = transform.position; tmpAD2.speed = Vector3.Distance(tmpAD.destinationMove, tmpAD2.destinationMove) * 4; //4/1秒到达目的地 m_actionList.Add(tmpAD2); } public void Defense() { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.defense; tmpAD.loop = false; tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(transform.localPosition.x - 25, transform.localPosition.y)); tmpAD.speed = 0.25f; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.move; tmpAD1.loop = false; tmpAD1.destinationMove = transform.position; tmpAD1.speed = 0.8f; //4/1秒到达目的地 m_actionList.Add(tmpAD1); } public void Hit() { ActionData tmpAD = new ActionData(); tmpAD.status = HeroStatus.hit; tmpAD.loop = false; tmpAD.destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(transform.localPosition.x - 25, transform.localPosition.y)); tmpAD.speed = 0.3f; //4/1秒到达目的地 m_actionList.Add(tmpAD); ActionData tmpAD1 = new ActionData(); tmpAD1.status = HeroStatus.move; tmpAD1.loop = false; tmpAD1.destinationMove = transform.position; tmpAD1.speed = 0.8f; //4/1秒到达目的地 m_actionList.Add(tmpAD1); } public void Idle() { m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); m_spriteAnimation.loop = true; m_spriteAnimation.ResetToBeginning(); m_staus = HeroStatus.idle; } public void Move() { // //transform.GetComponent().depth = 99; // GameObject go = GameObject.Find("enemy").gameObject; // destinationMove = GameObject.Find("UI Root/Camera").transform.TransformPoint(new Vector3(go.transform.localPosition.x + 98,go.transform.localPosition.y,go.transform.localPosition.z)); // m_speed = Vector3.Distance(transform.position, destinationMove) * 4; //4/1秒到达目的地 // m_staus = HeroStatus.moveto; // m_spriteAnimation.namePrefix = Enum.GetName(typeof(HeroStatus), HeroStatus.idle); // m_spriteAnimation.loop = true; // m_spriteAnimation.ResetToBeginning(); }
2022-07-08 16:27:29 28.62MB Unity
1
C++课程设计需要的哥们可以自提,包含主函数,可以正常一键运行。 3)Soldier被创建后,maxHP和HP为100,maxSP和SP为100,damage为20,exp为0, level为1,drugNum为5; 4)每回合Soldier通过决策(makeDecision)来决定需要发出哪一个动作(攻击attack、休息rest或吃药takingDrug,注意每回合只能做其中一个动作)。请自行设计和调整每种动作发出的必要条件,例如:生命值若低于最大值的30%该回合就吃药,体力低于最大值的50%该回合就休息,生命力和体力都充足该回合就发起攻击,等等; 5)攻击(attack)敌人一次,体力(SP)减少10,经验(exp)增加5。敌人的生命值(HP)减去攻击方攻击力值(damage)的大小。敌人生命值(HP)减少到0时死去,如果敌人被自己打死,获得敌人身上的所有药瓶;WarSystem类可以发出战斗开始即startWar()动作。在startWar()中,随机决定由哪一方率先发起攻击(恐怕是每个回合都随机决定谁先出手会比较公平,如果每回合先出手都是固定一方,那么战斗结果完全是确定性的。
2022-07-06 21:05:38 217KB C++课程设计
坦克机器人战斗仿真引擎 Robocode.7z
2022-07-06 15:04:16 1.68MB 引擎
unity多人在线战斗竞技游戏源码uMOBA.zip
2022-07-01 18:08:24 40.27MB 源码
unity3d 游戏源码 Star Sweeper 太空星际战斗项目 源程序 手机.zip
2022-07-01 18:08:23 15.78MB 源码
RPG Maker VXAce 的动画侧视战斗系统。这是我的第一个战斗系统脚本,也是我迄今为止的杰作。起初,我制作了这个脚本供我个人使用。那时候 Ace 发布的时候,我一直想要一个英文版的坦克台。但是我没有听说过翻译。我认为将tankentai翻译成英文是不可能的。此外,它对其他脚本的兼容性也很差。然后我查看了可用的战斗脚本,甚至没有一个我喜欢的脚本。我只是不明白那些脚本。然后,我的野心就这样开始了。 这个脚本的灵感来自坦克台 VX 版和 Eremidia : Dungeon!游戏。它主要针对无标准的自由序列动画战斗。我的意思是,没有像“播放第 x 行中的所有帧”这样的事情(我这样做的原因是因为我讨厌标准)。你可以在你的 spriteset 中选择任何网格。如果您懒得制作,您甚至可以使用无组织的 spriteset。只要格式一致。 更多详情、使用方法,请下载后阅读README.md文件
2022-06-24 19:06:14 230KB ruby
Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity商店下载的精品游戏源码 , 适合学习及二次开发使用 , 是个完整的Unitypackage包 , 直接导入到空项目就可以直接查看效果了 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0 Unity3d源码 街机太空射击战斗游戏开发模板 Space Combat Kit v2.0
2022-06-23 18:06:43 218.62MB unity unity3d unity游戏源码 游戏开发
1、资源内容:毕业设计lun-wen word版10000字+;开题报告,任务书 2、学习目标:快速完成相关题目设计; 3、应用场景:课程设计、diy、毕业、参赛; 4、特点:直接可以编辑使用; 5、使用人群:设计参赛人员,学生,教师等。 6、使用说明:下载解压可直接使用。 7、能学到什么:通过学习本课题的设计与实现, 了解不同课题的知识内容,学习内部架构和原理,掌握有关课题重要资源, 同时增加自己对不同方面知识的了解,为后续的创作提供一定的设计思路和设计启发 , 并且可以快速完成相关题目设计,节约大量时间精力,也为后续的课题创作 提供有力的理论依据、实验依据和设计依据,例如提供一些开源代码、设计原理、 原理图、电路图、毕业设计lun-wen word版10000字+;开题报告,任务书等有效的资料, 也可以应用于课程设计、diy、毕业、参赛等不同场景,而且本设计简单,通俗易通, 方便快捷,易于学习,下载之后可以直接可以编辑使用, 可以为设计参赛人员、学生、老师及爱好者等不同使用者提供有效且实用的学习资料 及参考资料,同时也是一份值得学习和参考的资料。
2022-06-09 13:08:54 6.95MB 游戏