捕鱼达人手机版下载靠谱的方法 捕鱼达人手机版下载靠谱的方法
捕鱼达人手机版下载靠谱的方法资讯攻略将会为大家带来各种捕鱼达人手机版下载靠谱的方法的最新资讯、新闻、活动,让大家实时掌握捕鱼达人手机版下载靠谱的方法行业动态,当然也会有各种福利活动不定时为大家推送。 捕鱼达人手机版下载靠谱的方法新闻栏目目前包含新闻资讯、精品专栏、热门捕鱼达人手机版下载靠谱的方法推荐等内容。在新闻栏目中玩家们将会查看到最新的、最热门的捕鱼达人手机版下载靠谱的方法动态新闻、开服公告等内容;精品专栏则汇集了最新的大厂捕鱼达人手机版下载靠谱的方法动态内容;热门捕鱼达人手机版下载靠谱的方法栏目为大家推荐当前最热门、最新的、最好玩的捕鱼达人手机版下载靠谱的方法,让玩家们了解目前市场上大家都在玩的捕鱼达人手机版下载靠谱的方法。 精品新闻栏目主要是网上关于捕鱼达人手机版下载靠谱的方法的各种新闻,包括公告、开服信息、新活动、趣味段子等等;这里包括了主流捕鱼达人手机版下载靠谱的方法能搜集到的各种资料,让对这方面有兴趣的朋友可以来进行一番深入的了解一番哦! 捕鱼达人手机版下载靠谱的方法总能从众多杂乱无章的资料中,整理出真实有用的内容,把所有资料整理得井然有序,供玩家轻松查阅。为玩家们提供有价值的内容,帮助他们获得更多的生活乐趣。 捕鱼达人手机版下载靠谱的方法网站捕鱼达人手机版下载靠谱的方法多多,精彩新闻动态不断,众多好捕鱼达人手机版下载靠谱的方法等你体验,精彩文章等你查收哦! 捕鱼达人手机版下载靠谱的方法,只做最精品的内容!

捕鱼达人开发流程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_39574690/article/details/89317307

核心功能:炮台的控制、炮台发射子弹、鱼群孵化器和鱼群行为。

using System.Collections;using System.Collections.Generic;using UnityEngine;public class GunFollow : MonoBehaviour { public RectTransform UGUICanvas;// public Camera mainCamera;void Update () { //用于保存游戏中的鼠标坐标 Vector3 mousePosition; //获取鼠标坐标 通过RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUI区域(某层),游戏界面鼠标的二维坐标,所在摄像机,输出游戏世界中的鼠标位置 RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUICanvas, new Vector2(Input.mousePosition.x, Input.mousePosition.y), mainCamera, out mousePosition); float z; //以y轴为轴转 负数角度 因为Angle函数返回的永远是0~180°(正数),故Vector3.Angle()前面加负号! if (mousePosition.x transform.position.x) { //炮台到鼠标的向量与炮台的↑up向量之间的角度(这里是正数还是负数自己测试就OK) z = -Vector3.Angle(Vector3.up, mousePosition - transform.position); } else//左转 反之 { z = Vector3.Angle(Vector3.up, mousePosition - transform.position); } //改变武器的角度,使用localRotation,在2/3D混合使用的游戏场景下,必须用这个,因为会受Canvas的影响。 //使用四元数的一个方法Euler(x,y,z)获取旋转角度 transform.localRotation = Quaternion.Euler(0, 0, z); }}GameController.cs(游戏控制器如:炮台射击、UI更新、背景更新)

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;using System.Collections;public class GameController : MonoBehaviour { //采用单例模式 直接访问脚本 private static GameController _instance; public static GameController Instance { get { return _instance; } } public Text oneShootCostText; public Text goldText; public Text lvText; public Text lvNameText; public Text smallCountdownText; public Text bigCountdownText; public Button bigCountdownButton; public Button backButton; public Button settingButton; public Slider expSlider; public int lv = 0; public int exp = 0; public int gold = 500; public const int bigCountdown = 240;//奖金倒计时 public const int smallCountdown = 60;//定时自动奖励奖金倒计时 public float bigTimer = bigCountdown; public float smallTimer = smallCountdown; public Color goldColor; public int bgIndex=0; public Image bgImage;//渲染背景的组件 public GameObject seaWaveEffect;//浪花效果 每20级出现一次出现浪花 public GameObject lvUpTips; public GameObject fireEffect; public GameObject changeEffect; public GameObject lvEffect; public GameObject goldEffect; public Transform bulletHolder; public Sprite[] bgSprite;//背景 public GameObject[] bullet1Gos; public GameObject[] bullet2Gos; public GameObject[] bullet3Gos; public GameObject[] bullet4Gos; public GameObject[] bullet5Gos; public GameObject[] gunGos; //使用的是第几档炮弹 private int costIndex=0; //每一炮所需的金币数和造成的伤害值 20 种: 每4种伤害值决定一个类型的武器和一组子弹类型 private int[] oneShootCost = { 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };//炮弹花费金额和炮弹伤害值是一样的 private string[] lvName = { "新手","入门","钢铁","青铜","白银","黄金","白金","钻石","大师","宗师"}; void Awake() { _instance = this; } void Start() { gold = PlayerPrefs.GetInt("gold", gold); lv = PlayerPrefs.GetInt("lv", lv); exp = PlayerPrefs.GetInt("exp", exp); smallTimer = PlayerPrefs.GetFloat("scd", smallCountdown); bigTimer = PlayerPrefs.GetFloat("bcd", bigCountdown); UpdateUI(); } void Update() { ChangeBulletCost(); Fire(); UpdateUI(); ChangeBg(); } /// summary /// 根据等级来换背景图 /// /summary void ChangeBg() { if (bgIndex!=lv/20) { bgIndex = lv / 20; AudioManager.Instance.PlayEffectSound(AudioManager.Instance.seaWaveClip); Instantiate(seaWaveEffect); if (bgIndex = 3) { bgImage.sprite = bgSprite[3]; } else { bgImage.sprite = bgSprite[bgIndex]; } } } /// summary /// 更新UI方面的东西(可以选择不看) /// /summary void UpdateUI() { //大金币奖励时间倒计时 bigTimer -= Time.deltaTime; //小金币奖励时间倒计时(smallCountdown秒给一次奖励) smallTimer -= Time.deltaTime; if (smallTimer = 0) { smallTimer = smallCountdown; gold += 50; } //大金币奖励时间已到,并且奖励按钮是隐藏状态的,就显示其奖励按钮和隐藏倒计时按钮。 if (bigTimer bigCountdownButton.gameObject.activeSelf==false)//没有显示出来获取金币按钮才显示 { bigTimer = bigCountdown; bigCountdownText.gameObject.SetActive(false);//倒计时关闭 bigCountdownButton.gameObject.SetActive(true);//获取金币按钮显示 } //经验等级换算公式:升级所需经验=1000+200*当前等级 while (exp=1000+200*lv) { exp = exp- (1000 + 200 * lv); lv++; //升级特效(其实是一个文本UI 显示0.6秒 然后渐隐消失) lvUpTips.SetActive(true); lvUpTips.transform.Find("Text").GetComponent().text = lv.ToString(); StartCoroutine(lvUpTips.GetComponentEF_HideSelf().HideSelf(0.6f)); AudioManager.Instance.PlayEffectSound(AudioManager.Instance.lvUpClip); Instantiate(lvEffect); } //改文本信息 goldText.text = "$"+gold; lvText.text = lv.ToString(); if (lv / 10 = 9) { lvNameText.text = lvName[lv / 10]; } else { lvNameText.text = lvName[9]; } //小金币奖励倒计时文本 smallCountdownText.text = " " + (int)smallTimer / 10 + " " + (int)smallTimer % 10; //大金币奖励倒计时文本 bigCountdownText.text = (int)bigTimer + "s"; //经验条结束 expSlider.value = ((float)exp) / (1000 + 200 * lv); } void Fire() { //临时数组保存一组子弹 GameObject[] useBullets = bullet5Gos; //一组子弹中的某一种子弹 int bulletIndex; //按的是鼠标左击 并且 按的区域不是UI的话 发射子弹 if (Input.GetMouseButtonDown(0)EventSystem.current.IsPointerOverGameObject()==false) { //计算下够不够钱买子弹 if (gold - oneShootCost[costIndex] = 0) { //根据当前选择的子弹金额索引号(0~19),确定用哪一组子弹(0~9) switch (costIndex / 4) { case 0: useBullets = bullet1Gos; break;//第一组 case 1: useBullets = bullet2Gos; break;//第二组 case 2: useBullets = bullet3Gos; break;//第三组 case 3: useBullets = bullet4Gos; break;//第四组 case 4: useBullets = bullet5Gos; break;//第五组与第四组相同 } //根据等级决定选取一组子弹中的哪种子弹 0~9 bulletIndex = lv % 10; //实例化一组子弹中的其中一种子弹 选哪一种是根据等级选的!!这里应该是设置为根据用户花费的钱而选的才对啊! //例如:你99级,但是你花费的是5元的子弹,那么你还是射出了最高等级子弹的模型,伤害却是最低的! //很纠结的一个问题出现了:游戏中有50种子弹类型,但只有20种伤害类型!无法一一匹配!游戏改进应该设置一一匹配,提高玩家体验感。 //那么可以修改每组子弹只用4种!然后将上面一行改为:bulletIndex=costIndex%4;即可!(否则,子弹模型与子弹伤害是没有关系的) gold -= oneShootCost[costIndex];//扣钱 Instantiate(fireEffect); AudioManager.Instance.PlayEffectSound(AudioManager.Instance.fireClip); GameObject bullet = Instantiate(useBullets[bulletIndex]);//例如:costIndex是19,就会使用bullet5Gos的第十种子弹 bullet.transform.SetParent(bulletHolder, false); //设置子弹出现位置:在哪个武器身上的FirePos出现(主要有5种武器) bullet.transform.position = gunGos[costIndex / 4].transform.Find("FirePos").transform.position; //设置子弹方向朝向游戏内部,也就是与武器朝向保持一致 bullet.transform.rotation = gunGos[costIndex / 4].transform.rotation; //添加脚本,使得子弹可以向前移动,前是正y轴 所以是up bullet.AddComponentEF_AutoMove().Dir = Vector3.up; //根据子弹身上带的属性脚本获取子弹相应的飞行速度 bullet.GetComponentEF_AutoMove().speed = bullet.GetComponentBulletAttr //设置子弹属性脚本里的伤害值为子弹应有的伤害(就是买子弹花费的钱) bullet.GetComponentBulletAttr().damage = oneShootCost[costIndex]; } else { //TODO Flash The Text StartCoroutine(GoldNotEnough()); } } } /// summary /// 通过鼠标滚动滑轮 设置子弹代价 /// /summary void ChangeBulletCost() { //向下滑动 if (Input.GetAxis("Mouse ScrollWheel")0) { OnButtonMDown(); } //向上滑动 if (Input.GetAxis("Mouse ScrollWheel")0) { OnButtonPDown(); } } //按炮台右边的按钮会升级枪支、子弹等级(即处理costIndex关键) public void OnButtonPDown() { gunGos[costIndex / 4].SetActive(false); costIndex++; AudioManager.Instance.PlayEffectSound(AudioManager.Instance.changeClip); Instantiate(changeEffect); costIndex = costIndex % oneShootCost.Length; // costIndex % 20 =[0,19] 不会产生越界问题 gunGos[costIndex / 4].SetActive(true); oneShootCostText.text = "$"+oneShootCost[costIndex]; } //按炮台左边的按钮会降低枪支等级、子弹等级(即处理costIndex) public void OnButtonMDown() { gunGos[costIndex / 4].SetActive(false); costIndex--; AudioManager.Instance.PlayEffectSound(AudioManager.Instance.changeClip); Instantiate(changeEffect); costIndex = (costIndex 0) ? oneShootCost.Length-1 : costIndex; // 同理 防止出现越界问题 gunGos[costIndex / 4].SetActive(true); oneShootCostText.text = "$" + oneShootCost[costIndex]; } //奖励按钮事件-获取金币(计时到一定时候才会有该按钮显示) public void OnBigCountdownButtonDown() { gold += 500; AudioManager.Instance.PlayEffectSound(AudioManager.Instance.rewardClip); Instantiate(goldEffect); bigCountdownButton.gameObject.SetActive(false); bigCountdownText.gameObject.SetActive(true); } /// summary /// 金币不足 变红 然后 变原来颜色 /// /summary IEnumerator GoldNotEnough() { goldText.color = Color.red;//变红 yield return new WaitForSeconds(0.5f);//等待0.5s goldText.color = goldColor;//恢复回来 } }鱼群孵化器、鱼群行为(直线走、拐弯走):

消消乐核心功能是消除物品的生成,是一个很有画面感的生成,而不是一下子生成,那么就需要考虑使用协程或Invoke定时调用方法执行生成要消除的物品A(后称),一般都是SpriteRenderer。如...博文来自: 两水先木示的博客

Unity捕鱼达人的制作一、创建开始界面根据上一篇我们所讲的,很容易就能把开始界面做出来。二、游戏加载场景游戏加载条的制作,我是用到了unity中的slider UI组件,如图slider组件包括背景...博文来自: 编程书生的博客

【捕鱼达人】游戏实战开发之游戏逻辑的实现 大家好,我是Lampard!! 今天迎来捕鱼达人系列的第三篇博客更新,希望大家多多支持。今天要实现的是游戏场景以及游戏逻辑(一)游戏场景的填充 每次新建一个场...博文来自: cooclc的博客

作为一个标准的程序员应该有写博客的习惯,其实早就有这个念头了,只是不知道该写点什么,最近一直有朋友问我捕鱼达人鱼游动的时候鱼的方向转动该如何实现。其实我没有写过捕鱼达人,一年前有个朋友公司做捕鱼达人类...博文来自: i646372587的博客

loonggg读完需要4分钟速读仅需2分钟感觉我好久好久没有给大家分享高质量的软件和插件了。今天周末,难得在家休息一下,痛下决心,分享一些我认为的高效率工具软件给大家。废......博文来自: 非著名程序员

你知道的越多,你不知道的越多点赞再看,养成习惯前言Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个在互联网公司...博文来自: 敖丙

一、插件介绍(必看)核心插件:Uniblocks Voxel Terrain v1.4.1将插件导入工程后,Uniblocks文件夹是关键,在文件夹中有材质、贴图、预制体、核心脚本等等。1.“Engi...博文来自: 两水先木示的博客

贪吃蛇核心功能是蛇的移动以及蛇的增长。蛇的移动原理:将蛇分为2部分:蛇头和蛇身(分很多个小块),用一个脚本放于蛇头控制蛇的整体移动,脚本中使用一个列表保存蛇身物体,先移动蛇头后移动蛇身,蛇头移动很简单...博文来自: 两水先木示的博客

Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。Nginx ...博文来自: albon arith

首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。那么,...博文来自: DavidGoGo_的博客

3D雷霆战机的核心功能:玩家3D飞机的控制移动、攻击等,敌人生成、移动、攻击、死亡等。玩家3D飞机的控制移动、攻击等功能使用一个脚本或分多个脚本处理,代码如下:using System.Collect...博文来自: 两水先木示的博客

你知道的越多,你不知道的越多点赞再看,养成习惯前言Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个在互联网公司...博文来自: 敖丙

昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔...博文来自: ZYDX18984003806的博客

一、SSO(单点登录)介绍SSO英文全称Single SignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用...博文来自: 君寞傲

关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。声明:本文不会下关于Mybatis和JPA两个持久层框架哪个...博文来自: 十步杀一人-千里不留行

注:本文不谈程序,只谈思路一、思想斗争《捕鱼达人》这款游戏做的的确不错,相信许多人都已经玩过了。但是作为一个业余“码男”的我,玩玩怎么能尽兴,梦想自己也能写出这么一个还算是不错的游戏。终于在一个月黑风...博文来自: 海风~

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。国内程序员都喜欢收集资料,但是又不看,github是重灾区。更有莫名其妙fork的,让人不得要......博文来自: 小姐姐味道

Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并...博文来自: Python作业辅导员 - 天元浪子【许向武】

介绍最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的if (msgType = ) {// dosomething} else if(msg...博文

我们这类学生并不是一无是处,更何况,个别学生还很聪明,真的很聪明。主观能动性在于自己,自己的人生自己把握。其实并不需要给自己那么大的压力,毕竟,你三年后拿到的录取通知书和你当前所处学校的环境及师资息息...博文来自: qq_38867330的博客

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频...博文

今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。于是乎用h5 audio的加上js简单的播放器完工了。欢迎 改进 留言。演示地点跳到演示地点html代码如下`!DOCTY...博文

2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下:编程语言比例rankpl_percentage1jav...博文

昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔...博文

约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。问题描述:编号为 1-N 的 N ...博文

欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所...博文

一、垃圾文字生成器介绍最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。项目中文名:狗屁不通文章生成器项目英文名:BullshitGenerator根据作...博文

11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。  区块链技术被认为是继蒸汽机、...博文

网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法...博文

位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也...博文

前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后...博文

一、数据库简介数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。关系型数据库:使用关系模型把数据...博文

引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。准备工...博文

张小龙生于湖南邵东魏家桥镇,家庭主要特点:穷。不仅自己穷,亲戚也都很穷,可以说穷以类聚。爷爷做过铜匠,总的来说,标准的劳动阶级出身。家有兄弟两人,一个小龙,一个小虎。小虎好动,与邻...博文

双十一大概会产生多大的数据量呢,可能大家没概念,举个例子央视拍了这么多年电视新闻节目,几十年下来他存了大概80P的数据。而今年双11一天,阿里要处理970P的数据,做为一个IT人,笔者认为今年”双十一...博文

我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。表砍我。。。当时买ma...博文

二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗?上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。我接的私活不算多,挣到的...博文

今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。(一)初进校园刚进入大学的时候自己完全...博文

迅速发展的前端开发,在每?年,都为开发者带来了新的关键词。2019 年已步?尾声,2020 年前端发展的关键词?将有哪些呢?发展的方向又会是什么呢?参考2019年大前端的发展,不出意外,前端依旧会围绕...博文

双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地...博文

授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。

最新评论 Unity人工智能AI编程知识 single010203:知识点很明确。感觉搞懂确实需要些基础。刚看了篇官方基础性的文章不错https://zhuanlan.zhihu.com/p/35983453

返回首页 >

相关资讯