第一个2D游戏

游戏名称:秘密行动,也就是类似于合金弹头。

游戏是在泰课在线老师的讲解下完成的。由于自己是第一次尝试做游戏,所以很多不懂的地方,还有很多Bug没有解决。写下播客是一方面是记录这个过程,一方面是提升下自己的专业知识。

一.登录界面

这方面包括搭建登录界面的UI,添加动画,控制UI逻辑,添加声音管理

登录界面UI:

在将资源全导入之后开始,首先Assets目录下创建会用到的Folder,例如Scenes,Prefabs等,一定要养成良好的习惯。

然后该游戏创建了两个场景,一个用来登录UI展示,一个用来游戏内容展示。创建游戏场景的时候不要忘记添加索引,方便后期切换场景。下图是我的场景:

注意:

场景不要忘记在Build Settings中导入,因为自己在UI控制脚本中切换场景的时候没有首先导入场景,所以出现了错误。

接下来在第一个场景中也就是索引为0的场景中创建相应的UI。第一个登录界面展示如下图:

在Hierarchy中创建Image,Button,拖拽相应的贴图资源。因为游戏UI界面需要实现点击上图的Play按钮实现切换到下一个UI界面,所以在第一个UI界面下继续创建相应的Image和Button。下图是第二个UI界面展示。


Hierarchy界面如下:

Operation就是另一个UI。在这已经将所有的UI效果展示了出来,接下来该考虑怎么点击图中的Play按钮实现UI切换。于是在这我创建了一个Manager空物体。在空物体中添加了相应的C#脚本。

因为游戏一开始是显示第一个UI,所以应该将第二个UI手动隐藏掉。那么意味着在脚本中需要将Operation设置为true。才能切换之后展示出Operation的效果。在脚本中第一步应该是切换到第二个UI,所以应该具备一个公开的方法。

 public void OnPlay1Click() {
        Operation.SetActive(true);
    }

除了在脚本中提供这个公开的方法以外还需要在Inspector中给该按钮的On Click赋值。如图:

在此方法之前需要Public GameObject operation;

此外补充一点:

上图出现的子弹孔是一个接一个出现的,也就是在第一个出现完成后第二个出现,依次类推。实现这个效果的方法;导入DoTween,点击子弹孔在Inspector中添加DoTweenAnimation脚本。此时Inspector中会出现Event,在Event中选择OnComplete,将下个要显示的子弹孔拖入,并且改变它们的SetActive为true。如图:


二,UI界面声音管理

关于声音的管理,首先需要提供一个管理音效的脚本,在这个脚本中存放的是一些播放背景音乐或者一些特效的音乐。这个音乐管理的脚本最好设置成为单例模式。

有关于声音的:AudioSource,AudioClip,AudioListener。

AudioSource:

表示在3D空间中的音频源。

AudioSource附加到一个GameObject用于在3D环境中播放声音。单声道声音以3D播放。为了播放3D声音,也需要有一个AudioListener。音频监听器通常附加在使用的相机上。立体声总是不以距离为基础衰减。你可以使用PlayPauseStop来播放音频剪辑。也可以在播放时使用volume属性调整音量,或者使用time来定位。多个声音可以使用PlayOneShot在一个AudioSource上播放。可以使用PlayClipAtPoint在3D空间中的一个静态位置播放剪辑。

AudioClip:

用于音频数据的一个容器。

一个音频剪辑储存压缩的ogg vorbis 或未压缩的音频文件。AudioClips被引用和被用于AudioSources播放声音。

AudioListener:

表示三维空间的一个侦听器。

这个类实现像麦克风一样的设备。它记录周围的声音并通过玩家的扬声器播放。在场景中只能有一个侦听器。

在这个脚本中,需要提供播放的方法:我的脚本中是有两个方法,一个是通过音频文件来播放,一个是通过按照名字来播放,通常播放名字会比音频文件方便的多。

public void PlayAudio(AudioClip ac) {
        AudioSource.PlayClipAtPoint(ac,Camera.main.transform.position);
    }
    public void PlayByName(string name)
    {
        AudioClip ac = Resources.Load<AudioClip>("Sounds/" + name);
        PlayAudio(ac);
    }

AudioClips被AudioSource引用播放,所以在第一个方法中参数是AudioClip,也就是将想要播放的音频文件作为参数。因为AudioListener是挂载到MainCamera上的,所以PlayClipAtPoint()第二个参数表示位置就应该写主摄像机的位置。如果一直使用第一种方法会比较麻烦,于是提供了一个通过名字来播放音效的方法。

在这提到了一个方法Resource.Load(),因为自己本身也是第一次接触到,所以到处找了很久,对此方法有了一个大致的了解。在使用这个方法的时候一定要在Project面板中创建一个Resource文件,可以在继续在Resource下创建子目录。我的方法中就存在一个"Sound/"目录

整个游戏开始的UI中,当子弹孔出现的时候会有音效,(我的控制UI脚本名叫做LoginManager,音乐播放脚本叫做SoundManager),所以应该在LoginManager中去调用SoundManager的方法。并且类似于上文补充的一点,应该在子弹孔的Inspector下的DoTweenAnimation的Event中将OnStart赋值。

注意:

DoTweenAnimation中的Event:

OnStart(),OnComplete();

OnStart()表示开始做什么,OnComPlete表示结束做什么。






所上传的为Eclipse工作空间 在一片广阔的草地上。。。被无数的树精入侵。。。 而出生在这片草地的你。。必然要拯救这片草地^^ 哈哈。。。我也会编泡菜剧情拉。。。。 这个。。测试版地游戏。。。 只有这一个地图。。。再加上BOSS和其他的地图。。就可以成为一款完整的游戏了 在游戏中数字键1使用火球术 数字键2使用抗拒火环(如果已经习得的话),该技能攻击人物附近的所有敌人,并推开敌人,随着等级的增长攻击力越高,对于这个之后树精的地图。。我特别推荐这个技能。。吼吼 数字键3使用雷电术(如果已经习得的话),该技能攻击屏幕内的3个敌人,并使其晕悬1秒,随着等级的增长攻击的人数越多,攻击力也越高,晕悬时间越长。。。在未来的地图中。。大量的远程怪。。这个技能就显的很有用拉。。。而在这个地图上。。。呵呵。。。一点用处没有-- 按F1键 使用气血丹,补充气血(如果有的话) 按F2键 使用凝神丹,补充技力(如果有的话) 按F3键。。。哈哈。。。。当地图上的所有怪都杀光之后你是否觉得没杀够呢。。不要紧。。按F3键就会重新再刷出一地图的树精!!!哈哈哈。。 ESC键可以查看人物属性 和使用道具 嘿嘿。。道具是如何获得的呢。。。每杀死一个怪物就会得到2G。。。。而所有的道具都是在NPC那买地 NPC在哪呢???在地图的中央 。。自己去找吧。。。哦。。对。。。站在NPC的身上 按空格键。。就可以购买物品拉。。。。。ESC键退出和NPC的对话。。。 恩。。。已经介绍的差不多拉。。。。 本引擎是完全由本人制作。。。。一点点的摸索。。花了尽1个月的时间哦。。。 接受高手的批评。。。QQ89631718,群18978079 喜欢用JAVA做游戏的朋友+我的QQ,或者群大家一起讨论。。。自己摸索实在摸索不出个所以然来。。更欢迎高手光临指导~~~ (提醒。。。本游戏为javaApplet,bin目录下start.html执行游戏。。。。没有JAVA平台和浏览器支持是运行不了的)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值