手机游戏关卡制作

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多Unity3D资源Unity3D培训视频Unity3D教程Unity3D常见问题Unity3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。

很多手机游戏的关卡都是采用激活和未激活的状态

当某一关通过以后 则再次进入关卡选择界面时 相应的图标显示激活状态 否则为未激活状态

如愤怒的小鸟

这里使用unity3d内置GUI系统

绘制按钮之前我们需要知道哪些关卡是已经通过了的

在unity3d中可以使用PlayerPrefs来保存关卡信息 详见PlayerPrefs

我们使用一个boolean数组来标识关卡的激活状态

var m_bActive : boolean[];

在初始化过程中读取PlayerPrefs保存的关卡信息

如果已经通过则为true 否则为false 关卡通过条件取决于具体的游戏规则 例如每关所用时间小于3分钟为通过等等

m_bActive = new boolean[m_iLevelTotals];

for (idx = 1; idx < m_iLevelTotals; ++idx)

(关卡通过条件) ? m_bActive[idx] = true : m_bActive = false;m_bActive[0] = true;

这里将第一关默认为激活状态 不然所有关卡全锁定 则现场直憋了

通过初始化 已经知道了关卡的通过信息

绘制关卡图标之前 我们知道unity3d的GUI有GUISkin和GUIStyle

GUISkin可以指定多个GUI的风格

而GUIStyle只是针对一个GUI风格

因此我们要为关卡的按钮定义一个GUIStyle

var m_GuiStageBtn : GUIStyle;

并有一个激活状态的图片和未激活状态的图片

var m_texLocked : Texture2D;

var m_texActive : Texture2D;

下面开始绘制关卡图标 这里假设当前页有16关 则要绘制16个图标 4行4列

// col_1

for ( i = 0; i < 13; i += 4)

{

if (!m_bEasyActive)

m_GuiStageBtn.normal.background = m_texLocked;

else

m_GuiStageBtn.normal.background = m_texActive;

if (GUI.Button(Rect(81, 29 * i + 220 , 57, 52), "", m_GuiStageBtn))

{

if (!m_bEasyActive)

return;

if (m_bEffectActive)

audio.PlayOneShot(g_ButtonDownClip);

g_iCurrentLevel = i + 1;

LoadSelectLevel(g_iCurrentLevel);

}

}

// col_2

for ( i = 1; i < 14; i += 4)

{

if (!m_bEasyActive)

m_GuiStageBtn.normal.background = m_texLocked;

else

m_GuiStageBtn.normal.background = m_texActive;

if (GUI.Button(Rect(165, 29 * (i - 1) + 220, 57, 52), "", m_GuiStageBtn))

{

if (!m_bEasyActive)

return;

if (m_bEffectActive)

audio.PlayOneShot(g_ButtonDownClip);

g_iCurrentLevel = i + 1;

LoadSelectLevel(g_iCurrentLevel);

}

}

// col_3

for (i = 2; i < 15; i += 4)

{

if (!m_bEasyActive)

m_GuiStageBtn.normal.background = m_texLocked;

else

m_GuiStageBtn.normal.background = m_texActive;

if (GUI.Button(Rect(250, 29 * (i - 2)+ 220, 57, 52), "", m_GuiStageBtn))

{

if (!m_bEasyActive)

return;

if (m_bEffectActive)

audio.PlayOneShot(g_ButtonDownClip);

g_iCurrentLevel = i + 1;

LoadSelectLevel(g_iCurrentLevel);

}

}

// col_4

for ( i = 3; i < 16; i += 4)

{

if (!m_bEasyActive)

m_GuiStageBtn.normal.background = m_texLocked;

else

m_GuiStageBtn.normal.background = m_texActive;

if (GUI.Button(Rect(345, 29 * (i - 3) + 220, 57, 52 ), "", m_GuiStageBtn))

{

if (!m_bEasyActive)

return;

if (m_bEffectActive)

audio.PlayOneShot(g_ButtonDownClip);

g_iCurrentLevel = i + 1;

LoadSelectLevel(g_iCurrentLevel);

}

}

当然 可以在绘制之前 也就是 if (GUI.Button(...)) 之前 直接根据当前关卡的激活状态来处理按钮的激活状态 加上GUI.enabled = m_bActive;

很简单 但是在循环绘制时候要细心 设想这只是绘制16个图标 若是绘制很多 再加上Easy模式 Hard模式 Expert模式等等 则很容易出错

但是原理基本上不变

使用Unity3d的内置GUI 则绘制GUI时的位置是很头疼的 而且GUI的绘制函数OnGUI是消耗比较大的 再加上drawcall带来的渲染效率

在手机游戏的应用中都是不容忽视的问题.

更多内容,请访问【狗刨学习网】unity极致学院

声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。

时间: 2024-10-14 00:53:29

手机游戏关卡制作的相关文章

海量安卓andriod手机游戏开发手机app开发PDF电子书定制制作下载

本人背靠海量纸质图书,可以制作各种纸质书籍的电子化,有需要可以Q:1481449626 <Andriod移动开发技术与应用>作者:李学华主编 页数:228 出版社:北京市:北京邮电大学出版社 出版日期:2013.08 简介:本书以生动具体的案例介绍android移动开发技术,力求通过实际的应用案例使读者快速掌握android移动开发技术. <移动终端应用开发技术 Android实战>作者:林少丹著 页数:232 出版社:北京市:机械工业出版社 出版日期:2013.02 简介:本书共

安卓手机游戏测试要点

安卓手机游戏测试要点 广告位 1.上线产品是否需要加上广告,广告是否加上 2.广告位是否遮挡重要信息 评分界面 1.评分界面是否加上 2.评分界面文字是否出现错误,是否符合平台规定 3.按钮是否歧义 4.评分界面是否与游戏界面风格统一 计费部分 1. 计费要求是否达到 2. 购买道具:用户购买道具时,需要明确提示用户道具的名称.费用.并提供"确认"和"取消"功能选择.例:"购买道具***,信息费*元(不含通信费),通过短信代收,是否确认购买?"

游戏关卡是酱紫加载的,你造吗?

游戏属于实时交互程序,需要每秒渲染若干帧(例如30帧),让用户感觉画面和操作是连续的.而从硬盘中加载游戏资源往往是一个比较长时间的过程(至少不能在1 / 30秒内加载完),所以需要显示加载游戏的过渡画面,本文将对常见的关卡过渡画面及其对应的资源加载方式进行分析. 1 同步加载方案 游戏之所以看起来是连续的,是因为每秒渲染若干帧(例如30帧),如果使用同步I/O的方式加载资源,那么在资源加载完成之前,由于没有渲染,画面自然持续不变了.当然,游戏要加载的资源很可能并不只是一个文件,所以在从硬盘读取一

cocos2d-X 手机游戏《雷电游戏》完整源码下载

源码介绍 雷电游戏--cocos2d-x手机游戏源码下载 本demo是在雷电游戏基本功能完成的基础上,又增加了摇杆模式和精灵关卡.游戏主要功能包括选择关卡,游戏控制模式设置,分数存储,游戏介绍,各关卡中的功能完善,飞机的子弹有普通模式和追踪模式,敌机也一样,还有各种飞行路线,主角还有放大招的功能,三种大招十分炫酷.界面可以暂停和恢复. 大小:9 MB 测试环境 引擎版本:2.2 开发工具:vs2010 测试说明:基于cocos2d-x2.2和vs2010测试 效果图 源码下载:http://ww

优化手机游戏性能,美术相关

何时选择3D(何时保留2D) 作为一个3d游戏美术,我得到的第一个关键教训就是,让所有的东西尽可能的保持低模--不要使用额外的不必要的顶点,如果你确实要让你的模型拥有精度,把它放置在贴图中.比如说,我们的建筑物都是用简单的方块创建而成,然后贴上带有质感的细节纹理. 当我们要为Vogel教授(它只在我们游戏的GUI和HUD中出现)建模时,首先尝试的是3D模型,但是最终,我们还是把它分解为像Flash中那样的多层2D平面.它运行非常流畅,看上去也更棒,事实最终的结果比用3D模型赞非常多!使用带有动画

Android手机游戏浅析

1. 游戏对于电脑发展的影响.很多青少年因为有电脑游戏而了解电脑的,正如很多人因为想看家庭电影,而了解VCD一样.人们对电影画面质量的要求越来越高,迫使VCD向DVD转变.而同样是对游戏的质量要求越来越高,迫使电脑的硬件厂商不断提高着电脑硬件的质量.不管你是否相信,有很人多是为了更流畅的玩高端的游戏而去不断更新电脑的硬件设备,曾经测试电脑性能的方式就是在电脑里安装游戏看运行的效果的.所以游戏的发展在一段时期刺激了电脑硬件的发展,电脑硬件的发展又反过来刺激了更出色的游戏的产生 2. 着重讲游戏对于

如何做好手机游戏开发产品的推介

厦门欧页科技 在游戏圈,推介(Pitch)被从业者普遍认为是一种营销行为--研发团队需要向发行商.渠道或投资方推介自己的产品,以获得资金或推广方面的支持.但加拿大独立工作室Kitfox Games总监谭雅 舒特(Tanya X. Short)对此提出了不一样的看法.舒特在Gamasutra的一篇文章中指出,游戏推介既关乎设计,也关乎营销,手机游戏开发团队必须通过推介行为,准确地传达产品的真正价值.设计师和营销人员都希望游戏具备高水准,但双方对游戏水准的评判标尺并不一定. "营销人员更关注销量和炒

手机游戏开发遇人才荒,十万年薪翘首待

随着4G时代已经来临,手机游戏又迎来了新的蓬勃期. 手机游戏开发已经成为拉动经济增长的重要引擎.2009年至2014年,国内手机游戏开发市场迎来了快速发展时期.越来越多的用户通过手机登陆互联网,这也令中国手机游戏开发市场大受裨益. 经过这些年3G时代下的智能手机用户导入期后,业内人士预测,3G/4G手机游戏开发将会呈现迅速发展的势头,相关的游戏开发工程师也将步入极繁荣时期. "随着通讯技术的不断发展,为国内的相关手机游戏开发业注入了强心剂."工信部软件服务业司郭建兵副司长说到. 统计数

(转)【译】优化你的手机游戏(没有延迟的,才是健康的)

http://www.unitymanual.com/thread-173-1-1.html 原标题:优化你的手机游戏(没有延迟的,才是健康的)- 一篇给游戏美术设计师读的文章 [译者的话(新浪微博@滚石,欢迎大家一起讨论)] 由于公司目前没有专业的技术美术(Technical Artist),在最近的项目开发中碰了不少壁.于是我就特地做了一些关于美术方面优化的研究,听了一些讲座,阅读了一些文章,你即将阅读的这篇就是其中之一,我觉得不错,并在阅读中获得了共鸣,所以也就决定将这片文章翻译为中文.一