新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.获得Unity和iOS导出器如果您还未获得Unity3D工具,不要说IOS了,恐怕任何Unity3D游戏根本无法进行开发,这时,您首先应该到官网去下载最新版本的Unity。该程序目前有两个版本,分别是免费版(2.注册苹果开发者接下来,您需要做的下一件事便是加入苹果开发者,这是继续您IOS开发的必要过程(不注册,不能上传软件,开发了也没意义)。附带一提,加入苹果开发者,需要每年支付99美元。如果您可以承受此代价,那么,您可以通过以下地址进行注册:3.下载并安装XCode好 了,如果您已经加入苹果开发者,那么,下一件事便是下载并安装XCode了。这在一开始可能会让人困惑,有些初次接触Unity的朋友,可能会认为 XCode是为iOS创造原生应用的,关Unity什么事?其实,Unity在IOS开发时,也要使用XCode作为中介将C#或JS代码,编译为IOS 的本地应用,再发布到iOS设备中,所以,您真正使用的核心,依旧是苹果XCode,只是Unity3D封装了具体的操作与转化过程,您所有的开发将是发 生在Unity上,而非XCode上执行(底层借助Mono实现,而Mono借助LLVM翻译Unity脚本为本地语言)。在这里,XCode的作用只是 将内容从Unity导入到具体设备中。您可以从苹果商店中下载XCode:4.创造一个开发者配置文件到目前为止,您应该已经下载了Unity(无论正版或破解)以及XCode,并激活了您的苹果开发者身份。但 是现在,为了能将您的游戏直接从Unity导入到IOS设备上,您还需要一个开发者配置文件(需要依赖此配置文件,才能让你移植你所开发的游戏或任何测试 用例到您的IOS设备上)。具体来说,苹果提供了两种类型的文件配置方式,即用于开发和测试的开发者配置文件以及用于提交到苹果商店的分布配置文件。为了 创造开发者配置文件,您需要做3件事:1、注册你的设备2、建立一个应用ID3、获得签名证书。您可以通过你的苹果开发者邮件中的引导,来完成这三件事。具体操作可通过地址:现在选择Certificates,Identifiers和Profiles,您便能够从中访问并管理你的配置文件,苹果ID等等。1)注册你的设备在 Certificates,Identifiers和Profiles部分中选择设备。因为这对于苹果去识别用于测试的特定设备是必要的。这并不会改变你 的设备的任何设置,你能够轻松地使用自己每天所使用的设备。在注册你的设备时,你可以点击+按键去添加一个新设备。然后你需要填写设备的名字(可以是任何 名字)以及UDID(即设备独一无二的ID)。你将会发现自己可以注册一个以上的设备进行测试,如果你想要基于不同设备进行测试的话这边很有帮助(如一台 iPhone和一台iPad)。为了找到你的设备的UDID,你需要将你的设备与电脑连接在一起,然后打开iTunes并点击iPhone按键(界面的右上方的),你将看到设备的信息包含了名字。然后你可以将鼠标停在上方并点击SerialNumber,这将变成一个常标识,这便是UDID。这是你需要的数字,你必须将其复制黏贴到MemberCenterPortal的ID部分。现在你便可以注册你的设备了。记住一旦你注册了设备,你便只能改变它的名字而不能改变UDID。2)设置一个应用ID下一步便是设置你的应用ID。仍然在MemberCenterPortal的Certificates,Identifiers和Profiles,选择应用ID并点击+按键。首先提供任何你想要的描述,只要它能够帮助你记得你的ID是用于做什么便可。一个好的方法便是为一款应用使用一个独特的名字并为一款测试应用使用一个普通的名字。接下来你需要设置BundleIdentifier,这是以相反的域符号形式呈现出来“即:com+你的全名(如果你是一名个体开发者的话)+你的游戏名称:com.YourName.TheGameName这类型的BundleID将很清楚并只能用于唯一的一款游戏中。因此你需要为你的每一款游戏使用不同的名字。然而这是很有用的,这让你能够访问像“游戏中心”和“应用内部购买”等服务。另一方面,Wildcard的BundleID是以如下形式呈现出来:com.YourName.*这里用星号替代了游戏名字。这种格式让你能够在多款应用中使用同样的ID,而无需每次都设置一个不同的名字,但是这却不允许你使用特定的设备。现在你已经选择了继续并确认了应用ID。将捆绑ID记录下来,因为之后你将需要在Unity的构建设置中使用到它。3)获得开发者证书现 在,你需要做的第一件事,便是通过你的计算机获得CertificateSigningRequest。前往 ApplicationsUtilitiesKeychaneAccess,然后是 PreferencesCertificates。确保OnlineCertificateStatusProtocol和 CertificateRevocationList都是处于OFF,并关闭Preference。现在在KeychaneAccess中前往 CertificateAssistant并从CertificateAuthority中选择RequestCertificate。提供与你在注册开 发者计划时使用的同样细节并点击继续。提供一个名字并保存到Desktop。在保存时选择2048位体和RSA。现在在你的Desktop中应该拥有一个带着.certSigningRequest前缀的文件。现在回到MemberCenterPortal的Certificates,Identifiers和Profiles部分,选择CertificatesDevelopment(就像你要获得开发证书那样),然后按压+按键进行创造。选择上传你保存在Desktop中的CertificateSigningRequest。在你提交前,确保向下滚动页面并在IntermediateCertificates中找到WWDRCertificate。在你之后需要的时候可以下载它。现在进行提交,你的CertificateSigningRequest将被发送到苹果并被另外一个你能够下载的内容所取代。它将被命名为:ios_development.cer所以现在你的Desktop上应该拥有两个证书。即ios_development.cer和WWDRCertificate,你需要双击这两个证书将其安装于KeychaneAccess。现在你便设置好你的开发者证书了。4)创造配置文件在 完成上述三个步骤后,现在的你可以继续去创造配置文件了。仍然在MemberCenterPortal的 Certificates,Identifiers和Profiles中,前往ProvisioningProfilesAll并按压+按键去创 造一个全新的配置文件。在 Development和DistributionProfile中做出选择(这里我们需要的是Development!),然后在下一个屏幕上选择与该 配置文件相联系的应用ID,设备和证书(注:这是你在之前步骤已经设置好了的)。最后为配置文件命名并回顾之前的选择。当准备好时点击Generate。 现在你便可以看到你的全新配置文件,你需要将其下载到你的Desktop上然后安装它。配置文件将是一个带有.mobileprovision前缀的文 件。现 在转向XCode,前往WindowOrganizerDevicesProvisioningProfile,然后双击已经下 载到你的Desktop上的配置文件。你便完成了安装并能够给予Organizer视图看到它。最后一步非常重要,因为只有将配置文件安装到Xcode, 它才能够正常运行。一些额外的内容:仍然在XCode,如果你的设备在Devices视图中仍看不到,那就前往WindowOrganizerDevices,按照名字选择设备。你可能需要在这个过程中选择UseforDevelopment,然后提供你的开发者记录细节。虽然这是一个较为漫长的过程,但好消息是你已经完成工作了!现在,您可以开始致力于你的Unity游戏并准备好导出它。但请记住,您只能注册设备和创造开发者证书一次,每当你创造一款新游戏时你都需要创造一个全新的应用ID和全新的配置文件。5.使用Unity发布IOS游戏当 您准备好导出你的游戏时,启动Unity3D,选择FileBuildSettings,确保您选择了iOS作为平台,并记得包含当前场景到导出 游戏中(使用AddCurrent按键)。然后点击PlayerSeetings按键并前往OtherSettings。将 BundleIdentifier按照你之前设置好的进行设置(com.YourName.TheGameName),你可能需要将TargetIOS版 本设为6(或者未来的最新版本)。除此之外,将所有内容都保持为默认即可,除非您有必须改变它们的理由(特殊设定之类)。然后回到BuildSettingsWindow并点击Build,将项目保持到其自身的文件夹中。此刻,连接你的设备和计算机,打开文件夹并开始XCode项目。你将看到它在XCode中打开。从XCode界面的左上角选择你的设备,然后点击Run按键。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都做网站、舒兰网络推广、成都微信小程序、舒兰网络营销、舒兰企业策划、舒兰品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供舒兰建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
CCNode是cocos2d中最重要的一个基类,是一个抽象类,定义了所有节点的公共属性和方法,因为其重要性,所以这里把官方API对CCNode的属性方法描述粗略了翻译下,方便日后查询使用,也希望能帮到大家,如果有的地方描述不准确,大家可以直接参考官方英文原版的说明: 点击打开链接 。
CCNode的特征有:position、scale(x,y)、rotation(in degrees,clockwise)、CCCamera(an interface to gluLookAt)、CCGridBase(to do mesh transformations)、anchor point 、size、visible、z-order、openGL z position
默认值为:rotation:0、position:(x=0,y=0)、scale:(x=1,y=0)、contentSize:(x=0,y=0)、anchorPoint:(x=0,y=0).
成员方法描述:
CCDirector是整个cocos2d引擎的核心,游戏之中的一些常用操作控制,比如场景的转换,游戏的暂停继续控制,世界坐标和GL坐标之间的切换,对于精灵(游戏元素)的控制等,还有一些游戏数据的保存调用,屏幕尺寸的获取等;
CCDirector是游戏项目的总导演,会经常调用进行一些控制,所以该CCDirector利用了单件设计模式,也就是项目里取到的director都是同一个;
CCDirector的生成方法为[CCDirector sharedDirector],包含的方法如下
由上可见,CCDirector最主要的还是对场景(Scene)的控制。
Scene场景也是cocos2d中的重要元素,我们可以理解为场景是一个舞台,游戏中最重要的就是构建一个一个的舞台,游戏中关卡,版块的切换就是一个一个场景的切换;CCDirector控制对场景的切换,pushScene,popScene等director中的方法就是控制场景的切换的~有点类似于UINavigationController中的切换方法;
director切换场景的常用方法有
Scene是CCNode的子类,因为场景的特殊性,所以决定了场景是由一个一个的其他元素构建的,精灵和层,菜单(特殊的层)等,通过addChild等方法,这也是继承自CCNode的一些特性;
层是依附于场景之上的图层,可以响应用户的操作事件,一个场景常常是由多个层组成的~cocos2d官网上的一张场景分解图可以很形象地说明;
左上的场景由三个layer组成,背景层,精灵动画层,菜单层,三个层有顺序地叠加形成了一个scene,该scene由director,在适当的时候用push或pop等方式来控制游戏场景切换;与用户交互的事件也在层之上进行定义,比如菜单层上定义的点击事件,另外层还可以响应加速计;
层是节点CCNode的子类,所以可以被手动控制翻转或用动作(Action)来进行控制,并可以在其上面添加其他层或者精灵等(addChild);
层的创建由继承自CCNode的node方法来进行,通常在场景的init方法中进行,如下
CCLayer *backgroundLayer = [GameBackground node];
[[CCScene node] addChild:backgroundLayer];
层的叠加顺序取决于z轴(z-order)的值;
层的本质是对节点进行分组(iPhoneiPad cocos2d 游戏开发实战);
精灵CCSprite继承自CCNode,可以认为是一个可以被手动控制,执行动作的2D图片,我们在游戏中看到的人物形象等基本上全是精灵;精灵可以在其身上添加子精灵,并且运动时,附着的其他精灵会跟着一齐运动;精灵常常与美术相关;
CCAction是游戏的一个和重要组成部分,游戏之所以区别于应用就是因为形象鲜明,趣味性交互性强,如果游戏元素没有动作,那就很无聊了;
之前我们已经介绍过,CCNode节点中有一个(void)runAction:(CCAction *)action 方法,所以,所有继承自CCNode的类,比如精灵,层,甚至菜单都可以执行动作;
CCAction有很庞大的层次关系,如图所示
其中主要的为CCAction--CCFiniteTimeAction
其中CCFiniteTimeAction下的两个子类CCActionInstant和CCActionInterval分别为瞬时动作和延时动作;
瞬时动作更接近于节点属性的设置,有的时候是为了更方便地组成动作序列,延时动作则是我们经常看到的一些动画画面;
动作的返回值类型为id,所以,你会经常看到这种写法
CCMoveTo *move = [CCMoveTo actionWithDuration:3 position:CGPointMake(100,200)];
[sprite runAction :move];
瞬时动作我们会在介绍动作序列时再作详细说明,下面归纳一下延时动作,常用的延时动作有
CCMoveTo
移动到参数position位置
示例:CCMoveTo *move = [CCMoveTo actionWithDuration:3 position:CGPointMake(100,200)];//该动作移动到position参数位置;
CCMoveBy
精灵移动参数个位置
示例:[sprite runAction:[CCMoveBy actionWithDuration:3 position:pos]];//该动作使节点移动pos个位置;
CCFadeTo
节点色调透明度变化
示例: [sprite runAction:[CCFadeTo actionWithDuration:3 opacity:opa]]; //节点透明度渐变为opa(0~255);
CCFadeIn
节点亮度从0渐变为最高
示例: [sprite runAction:[CCFadeIn actionWithDuration:3 ]; //节点在3秒内从黑暗变为最亮;
CCFadeOut
同上相反;
CCBlink
节点闪烁,需设置闪烁次数;
示例:[sprite runAction:[CCBlink actionWithDuration:3 blinks:t]]; //节点在3秒内闪烁t次;如果持续时间变长,闪烁频率会自动调低;
CCRotateTo
节点旋转,需设置旋转角度
示例:[sprite runAction:[CCRotateTo actionWithDuration:3 angle:180]]; //节点在3秒内旋转180度;
CCRotateBy
节点旋转,经试验没发现与CCRotateTo有何区别;
示例:[sprite runAction:[CCRotateBy actionWithDuration:3 angle:180]]; //效果同上一样;
CCScaleTo
节点放大,有两个方法
示例:[sprite runAction:[CCScaleTo actionWithDuration:3 scale :2]];//节点在3秒内放大到原来的2倍;
[sprite runAction:[CCScaleTo actionWithDuration:3 scaleX:2 scaleY:3]];//节点在3秒内横方向放大到原来的2倍,纵方向放大到原来的3倍;
CCScaleBy
节点放大,经试验没发现与上述效果有何区别(大家发现后告诉我);
CCTintTo
节点调色
示例:[sprite runAction:[CCTintTo actionWithDuration:3 red:110 green:110 blue:110]]; //节点在三秒内着色为RGB颜色如参数所示
CCTintBy
节点渐变
示例:[sprite runAction:[CCTintBy actionWithDuration:3 red:110 green:110 blue:110]]; //节点在三秒内以RGB参数逐渐加深;
CCSkewTo
节点斜率变化
示例:[sprite runAction:[CCSkewTo actionWithDuration:3 skewX:30 skewY:5]];//将一个节点按横坐标30,纵坐标5的大小倾斜;该参数效果见图
CCSkewBy
效果同上一样;
CCBezierTo
使节点按贝塞尔曲线移动,需先生成一个贝塞尔参数,见示例
示例:
ccBezierConfig bezier;//创建贝塞尔曲线
bezier.controlPoint_1 =ccp(sprite.position.x, sprite.position.y);//起始点
bezier.controlPoint_2 =ccp(sprite.position.x+5,sprite.position.y+20);//控制点
bezier.endPosition =ccp(sprite.position.x+50, sprite.position.y+100);//结束位置
[sprite runAction:[CCBezierToactionWithDuration:3bezier:bezier]];
关于贝塞尔曲线,主要作用是通过点确定准确的曲线图形,建议大家百度一下 点击打开链接
CCBezierBy
每次移动贝塞尔曲线个距离;用法同上;
通过上面这些主流的动作行为,我们可以实现一些很有视觉冲击力的动画效果,常用到的常常有放大(远近景拉伸),旋转,跳越等;
cocos2d中的动作远比上面这些要灵活的多,下回就介绍一下动作的一些修饰,动作序列,和动作序列中怎样加入一些回调方法;
用CCActionEase来对动作进行修饰
CCEaseBackIn
在正常runAction前会有一个拉后的动作;
示例:
CCEaseBackIn *ease = [CCEaseBackInactionWithAction:[CCMoveByactionWithDuration:3position:ccp(200,0)]];
[sprite runAction:ease];
//效果为精灵在往向移动200之前先向左移动一部分;
CCEaseBackInOut
修饰前的动作运行前向后,运行结束后回弹,注意,这里回弹是超过设定的移动距离再弹回;
CCEaseBackIn *ease = [CCEaseBackInOut actionWithAction:[CCMoveBy actionWithDuration:3 position:ccp(200,0)]];
[sprite runAction:ease];
CCEaseBackOut
修饰前的动作运行结束后弹回
CCEaseBackOut *ease = [CCEaseBackOut actionWithAction:[CCMoveBy actionWithDuration:3 position:ccp(200,0)]];
[sprite runAction:ease];
CCEaseBounceIn
修饰前的动作结束前有三次回到起点的跳跃(自己总结的,大家还是自己看看效果好)
CCEaseBounceIn *ease = [CCEaseBounceInactionWithAction:[CCMoveByactionWithDuration:10position:ccp(200,0)]];
[sprite runAction:ease];
CCEaseBounceOut
修饰前的动作结束后往之前的运行轨迹上跳跃三次
CCEaseBounceOut *ease = [CCEaseBounceOutactionWithAction:[CCMoveByactionWithDuration:10position:ccp(200,0)]];
[sprite runAction:ease];
CCEaseBounceInOut
结合了上面两种效果
CCEaseBounceInOut *ease = [CCEaseBounceInOutactionWithAction:[CCMoveByactionWithDuration:10position:ccp(200,0)]];
[sprite runAction:ease];
CCEaseElasticIn
与CCEaseBounceIn效果类似,不过不是跳跃,是渐快的移动;
CCEaseElasticIn *ease = [CCEaseElasticInactionWithAction:[CCMoveByactionWithDuration:10position:ccp(200,0)]];
[sprite runAction:ease];
CCEaseElasticOut
与CCEaseBounceOut效果类似,依然是渐快的弹性移动;
CCEaseElasticOut *ease = [CCEaseElasticOutactionWithAction:[CCMoveByactionWithDuration:10position:ccp(200,0)]];
[sprite runAction:ease];
CCEaseElasticInOut
结合了上面两种效果;
CCEaseIn
这是比较早的版本就存在的类库了,在运动的结尾突然加速
CCEaseOut
在运动一开始就突然加速;
CCEaseInOut
由慢到快,再由快到慢,注意这三个是CCEaseRateAction的子类,有一个方法
CCEaseIn actionWithAction:action rate:rate 是可以调节rate作为速率的
还有一些CCEase效果,不过因为不常用,或者我也把握不准,试不出来效果,这里就不列了;
使用动作序列CCSequence将动作组合起来
CCSequence从CCActionInterval继承而来,使用方法类似于一个array,可以在里面添加几个动作,使其动作一个接一个运行(one after another),例如
上面动作序列的效果为:sprite向右移动100,其中因为CCEaseBounceOut的原因水平方向往回弹三次,之后往向跳三次,每次50,高度为50;
注意添加动作序列时需要以nil为结尾,ios开发同学应该很熟悉这种操作;
使用回调动作CCCallFunc在动作序列中添加方法回调
一个动作序列中一个动作一个动作之间,如果我们想要调用某个方法,可以使用CCCallFunc来进行,使用方法如下:
先添加一个方法(无参数)
然后用CCCallFunc来生成一个可以添加到动作序列里的对象,并放到两个动作之间;
这样就会在执行完ease动作之后,执行jump动作之前,调用callBackTest方法,输出内容;
除了CCCallFunc,还有CCCallFuncN,CCCallFuncND可以使用,三者之间有一定的区别;CCCallFunc调用的方法没有参数,后两者分别有一个,两个参数且固定的第一个参数都是sender本身;
学习iOS开发由C/C++/OC语言到iOS项目实战阶段的学习。Objective-C编程语言,有C语言的基础加上有面向对象的思维,很容易学好Objective-C,Objective-C是iOS的开发语言。以下是iOS开发学习的大致阶段:
1、C/C++/OC语言,零基础学习iOS开发同样也是,以提高编写代码和变成调试能力,具有扎实的编程功底和思想。
2、iOS应用开发阶段,具有开发中大型iOS应用项目能力。
3、iOS游戏开发阶段,可以掌握iOS3D游戏开发的能力。
4、iOS项目实战阶段,提升创新、实战经验能力,拥有自己独立研发的几款产品。
5、iOS项目答辩,对学习成果有个总结,通过答辩锻炼表达能力。
学习iOS开发可以自学也可以选择参加iOS开发培训机构的学习,但自学中可能遇到什么问题不便于解决,往往自学效率不高,自己会感觉压力山大甚至就会选择放弃。自然参加iOS开发培训学习起来会比较快、容易掌握。零基础学习iOS开发是不用担心的,完全可以零基础学习iOS开发。iOS开发零基础学习培训四个月的时间足够。
基础是要过关的,oop、多线程、db、基本算法或数据结构是必须的。
还要熟练掌握Objective-C语言,C/C++语言;3.熟悉Cocoa开发框架,包括UI、网络等方面,熟悉IOS开发工具和相关开发测试工具的使用,掌握常用的数据结构与常用算法,较好的逻辑思维分析和表达和沟通能力,要有一定的自学能力,较强的团队协作意识。
更多关于ios游戏开发需要哪些知识,进入:查看更多内容
我是学游戏设计的,现在unity3d应用范围很广,很多手机游戏都是用它做的,非常实用,我们学校也教了这个软件,建议楼主学