
游戏
码农老关【关东升】
关东升,国内著名技术专家,架构师,项目经理、技术顾问,技术图书作家,51CTO学院金牌讲师。
擅长技术:
移动开发、前后端技术、游戏开发、数据库开发与设计、软件架构设计等多种IT技术。
20多年教学经验:
教授近万名学员,近期为中国移动、中国联通、南方航空、中石油、工商银行、平安银行和天津港务局等企事业单位授课。
著有50本多部畅销书:
《看漫画学Python》
《看漫画学Python2》
《极简ChatGPT: 如何利用AI提高办公效率》
《极简ChatGPT:如何利用AI实现Python自动编程》
《AI时代程序员开发之道:ChatGPT让程序员插上翅膀》
展开
-
Android网络游戏之神农诀项目开发--视频
Android网络游戏之神农诀项目开发下载地址:http://product.china-pub.com/3502350 Android作为一款为移动终端打造的开源手机操作平台,其引领破除技术垄断、拥有自主知识产权、降低开发成本之潮流,引起业界的高度关注。在2原创 2011-10-15 11:44:21 · 3380 阅读 · 0 评论 -
《iPhone与iPad开发实战——iOS 经典应用剖析》出版在即,敬请期待
《iPhone与iPad开发实战——iOS 经典应用剖析》出版在即,敬请期待作者:关东升 赵志荣出版社:机械工业出版社目录第1章 开篇综述1.1iOS概述1.2App Store1.3iOS应用程序分类1.3.1实用性应用场景1.3.2效率性应用场景1.3.3沉浸式系统应用场景1.4 HIG和什么是好的iOS应用 1.5 xcode的安装1.原创 2011-10-20 16:17:46 · 2130 阅读 · 0 评论 -
objective-c ——代码块
通过代码块(block)功能,你就能像对待对象一般,指定要在方法和函数中传递任意代码部分。代码块的声明:int main (int argc, const char * argv[]){@autoreleasepool {void (^myBlock) (NSString *x);//声明变量/*代码块是存储在一个变量中,并且需要参数和声明的返回类型。返回类型:转载 2012-10-24 12:28:14 · 4983 阅读 · 2 评论 -
Android网络游戏之神农诀项目开发--视频观看地址
Android网络游戏之神农诀项目开发观看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240570课程要求:熟悉java,android,有相关工作经验。项目平台:演示:XP版本:Eclipse3.5,Android2.2工具:Eclipse涉及知识:语言:java操作系统:Android手机操作原创 2011-10-29 16:02:19 · 3151 阅读 · 2 评论 -
iPhone与iPad开发实战——iOS 经典应用剖析视频--观看地址
iPhone与iPad开发实战——iOS 经典应用剖析视频试看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=241038课程要求熟悉C,C++,Objective C,有相关工作经验。项目平台:演示:mac os版本:xcode3.25,iOS4.2工具:xcode涉及知识:语言:Objective原创 2011-10-25 10:50:01 · 2440 阅读 · 0 评论 -
iPhone与iPad开发实战——iOS 经典应用剖析--视频
iPhone与iPad开发实战——iOS 经典应用剖析视频观看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=241038 ios作为一款为移动终端打造的手持设备操作平台,其引领技术前沿、时尚前沿、拥有自主知识产权,引起业界的高度关注。在2011年股市动荡“经济寒流”中,苹果公司一跃成为原创 2011-10-23 12:04:04 · 2338 阅读 · 0 评论 -
Swift使用闭包表达式
Swift中的闭包表达式很灵活,其标准语法格式如下:{ (参数列表) ->返回值类型 in 语句组}其中,参数列表与函数中的参数列表形式一样,返回值类型类似于函数中的返回值类型,但不同的是后面有in关键字。Swift提供了多种闭包简化写法,这一节我们将介绍几种不同的形式。1.类型推断简化类型推断是Swift的强项,Swift可以根据上下文环境推断出参数类型和返回值类型。以下代码是标准形式的闭原创 2014-09-04 20:34:07 · 5915 阅读 · 0 评论 -
Swift内存管理-示例讲解
具体而言,Swift中的ARC内存管理是对引用类型的管理,即对类所创建的对象采用ARC管理。而对于值类型,如整型、浮点型、布尔型、字符串、元组、集合、枚举和结构体等,是由处理器自动管理的,程序员不需要管理它们的内存。一、引用计数每个Swift类创建的对象都有一个内部计数器,这个计数器跟踪对象的引用次数,称为引用计数(Reference Count,简称RC)。当对象被创建的时候,引用计数为1,每次原创 2014-09-04 20:13:57 · 3931 阅读 · 2 评论 -
Swift数字类型之间的转换
Swift数字类型之间的转换Swift是一种安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换。一、整型之间的转换在C和Objective-C等其他语言中,整型之间有两种转换方法:从小范围数到大范围数转换是自动的;从大范围数到小范围数需要强制类型转换,有可能造成数据精度的丢失。而在Swift中这两种方法是行不通的,我们需要通过一些函数进行显式地转换,代码如下:let historySco原创 2014-09-05 09:59:54 · 6899 阅读 · 0 评论 -
使用Playground编写第一个Swift程序
从控制台输出“HelloWorld”是我学习C语言的第一步,也是我人生中非常重要的一步。多年后的今天,我仍希望以HelloWorld作为第一步,与大家共同开启一个神奇、瑰丽的世界——Swift编程。本章以HelloWorld作为切入点,向大家系统介绍如何使用Xcode的Playground编写和运行Swift程序代码。编写和运行Swift程序有多种方式,我们可以通过在Xcode中创建一个iOS或M原创 2014-08-08 20:01:21 · 41151 阅读 · 0 评论 -
Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课
Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课本课程采用QQ群直播方式进行直播,价值99元视频课程免费直播。完整的基于Swift项目实战,手把手教你做一个Swift版iPhone计算器。(直播过程也有惊喜!)直播QQ群:362298485(直播时点击群视频即可进入直播课堂)直播时间:8月26日(周二),9月2日(周四),每天20:00-22:00欢迎咨询客服QQ:157原创 2014-08-21 14:52:57 · 4074 阅读 · 0 评论 -
Swift标识符和关键字
任何一种计算机语言都离不开标识符和关键字,下面我们将详细介绍Swift标识符和关键字。标示符标识符就是给变量、常量、方法、函数、枚举、结构体、类、协议等指定的名字。构成标识符的字母均有一定的规范,Swift语言中标识符的命名规则如下:区分大小写,Myname与myname是两个不同的标识符;标识符首字符可以以下划线(_)或者字母开始,但不能是数字;标识符中其他字符可以是下划线(_)、字母或数字。例原创 2014-08-09 19:59:25 · 10190 阅读 · 0 评论 -
关于《Swift开发指南》背后的那些事
时间轴(倒叙)2014年8月底在图灵出版社的大力支持下,全球第一本全面、系统、科学的,包含本人多年经验的呕心沥血之作《Swift开发指南》(配有同步视频课程和同步练习)全线重磅推出2014年7月5日苹果宣布Swift语言二十天后,《Swift开发指南》第一稿交予图灵出版社2014年6月9日苹果宣布Swift语言三天后,启动《Swift开发指南》撰写2014年6月2日凌晨1点(北京时间:)在苹果开发原创 2014-08-22 19:07:24 · 8473 阅读 · 5 评论 -
Swift字典集合
字典表示一种非常复杂的集合,允许按照某个键来访问元素。字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合。键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的。如下图所示是字典结构的“学号与学生”集合,学号是键集合,不能重复,学生是值集合,可以重复。 提示 字典中键和值的集合是无序的,即便在添加的时候是按照顺序添加的,当取出这些键或值的时候,也会变得无序。字原创 2014-09-07 20:47:38 · 4561 阅读 · 0 评论 -
Swift字典类
在Foundation框架中提供一种字典集合,它是由“键-值”对构成的集合。键集合不能重复,值集合没有特殊要求。键和值集合中的元素可以是任何对象,但是不能是nil。Foundation框架字典类也分为NSDictionary不可变字典和NSMutableDictionary可变字典。一、NSDictionary类NSDictionary有很多方法和属性,下面总结其常用的方法和属性。initWith原创 2014-09-07 21:56:16 · 20844 阅读 · 0 评论 -
Swift常量和变量以及命名规范
我们在上一章中介绍了如何使用Swift编写一个HelloWorld小程序,其中就用到了变量。常量和变量是构成表达式的重要组成部分。常量在声明和初始化变量时,在标识符的前面加上关键字let,就可以把该变量指定为一个常量。顾名思义,常量是其值在使用过程中不会发生变化的量,实例代码如下:let_Hello = "Hello"_Hello标识符就是常量,只能在初始化的时候被赋值,如果我们再次给_Hello原创 2014-08-11 20:39:01 · 6894 阅读 · 0 评论 -
Swift中的循环语句
循环语句能够使程序代码重复执行。Swift编程语言支持4种循环构造类型:while、do while、for和for in。for和while循环是在执行循环体之前测试循环条件,而do while是在执行循环体之后测试循环条件。这就意味着for和while循环可能连一次循环体都未执行,而do while将至少执行一次循环体。for in是for循环的变形,它是专门为集合遍历而设计的。一、while原创 2014-09-09 14:09:01 · 9583 阅读 · 0 评论 -
Swift中的注释以及表达式
Swift程序有两类注释:单行注释(//)和多行注释(/*...*/)。注释方法与C、C++和Objective-C语言都是类似的,下面详细介绍一下。1. 单行注释单行注释可以注释整行或者一行中的一部分,一般不用于连续多行的注释文本。当然,它也可以用来注释连续多行的代码段。以下是两种注释风格的例子:if x > 1 { //注释1} else { return false; //原创 2014-08-15 14:03:50 · 4678 阅读 · 0 评论 -
Swift泛型和泛型函数
泛型(generic)可以使我们在程序代码中定义一些可变的部分,在运行的时候指定。使用泛型可以最大限度地重用代码、保护类型的安全以及提高性能。在Swift集合类中,已经采用了泛型。一、一个问题的思考怎样定义一个函数来判断两个参数是否相等呢?如果参数是Int类型,则函数定义如下:func isEqualsInt(a:Int, b:Int) -> Bool { return (a == b)}这原创 2014-08-28 18:54:55 · 11032 阅读 · 1 评论 -
Objective-C调用Swift
Objective-C调用Swift如果已经有了一个老的iOS应用,它是使用Objective-C编写的,而它的一些新功能需要采用Swift来编写,这时就可以从Objective-C调用Swift。Objective-C调用Swift时不需要桥接头文件,而是需要Xcode生成的头文件。这种文件由Xcode生成,不需要我们维护,对于开发人员也是不可见的。如图18-11所示,它能够将Swift原创 2014-08-17 17:04:59 · 24852 阅读 · 5 评论 -
Swift构造器重载
与函数一样,方法也存在重载,其重载的方式与函数一致。那么作为构造器的特殊方法,是否也存在重载呢?答案是肯定的。一、构造器重载概念Swift中函数重载的条件也适用于构造器,条件如下:函数有相同的名字;参数列表不同或返回值类型不同,或外部参数名不同;Swift中的构造器可以满足以下两个条件,代码如下:class Rectangle { var width : Double v原创 2014-08-30 20:04:57 · 3851 阅读 · 0 评论 -
Swift结构体与类
在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了。这是因为结构体能够做的事情,类完全可以取而代之。而Swift语言却非常重视结构体,把结构体作为实现面向对象的重要手段。Swift中的结构体与C++和Objective-C中的结构体有很大的差别,C++和Objective-C中的结构体只能定义一组相关的成员变量,而Sw原创 2014-08-30 20:14:51 · 6763 阅读 · 1 评论 -
Swift静态属性
在介绍静态属性之前,我们先来看一个类的设计,有一个Account(银行账户)类,假设它有3个属性:amount(账户金额)、interestRate(利率)和owner(账户名)。在这3个属性中,amount和owner会因人而异,不同的账户这些内容是不同的,而所有账户的interestRate都是相同的。amount和owner属性与账户个体有关,称为实例属性。interestRate属性与个体原创 2014-09-01 22:09:40 · 14509 阅读 · 1 评论 -
Swift类型检查与转换
继承会发生在子类和父类中,如图15-4所示,是一系列类的继承关系类图,Person是类层次结构中的根类,Student是Person的直接子类,Worker是Person的直接子类。这个继承关系类图的具体实现代码如下:class Person { var name : String var age : Int func description() -> String {原创 2014-09-04 19:40:18 · 9239 阅读 · 0 评论 -
Cocos2d-x中触摸事件
理解一个触摸事件可以从时间和空间两方面考虑。1、触摸事件的时间方面触摸事件的在时间方面,如下图所示,可以有不同的“按下”、“移动”和“抬起”等阶段,表示触摸是否刚刚开始、是否正在移动或处于静止状态,以及何时结束,也就是手指何时从屏幕抬起。此外,触摸事件的不同阶段都可以有单点触摸或多点触摸,是否支持多点触摸还要看设备和平台。 触摸事件有两个事件监听器:EventListenerTouchOneByO原创 2014-07-23 20:01:08 · 3887 阅读 · 1 评论 -
Cocos2d-x开发实例介绍帧动画使用
下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画。 下面我们再看看具体的程序代码,首先看一下看HelloWorldScene.h文件,它的代码如下:#ifndef __HELLOWORLD_SCENE_H__#define __HELL原创 2014-07-15 16:14:39 · 4596 阅读 · 0 评论 -
Cocos2d-x实例:单点触摸事件
为了让大家掌握Cocos2d-x中的事件机制,下面我们以触摸事件为例,使用事件触发器实现单点触摸事件。该实例如图8-3所示,场景中有三个方块精灵,显示顺序如图8-3所示,拖拽它们可以移动它们,事件响应优先级是按照它们的显示顺序。下面我们再看看具体的程序代码,首先看一下HelloWorldScene.h文件,它的代码如下: #ifndef __HELLOWORLD_SCENE_H__#define原创 2014-07-24 20:37:54 · 11474 阅读 · 0 评论 -
Cocos2d-x开发实例:使用Lambda 表达式
Cocos2d-x开发实例:使用Lambda 表达式在Cocos2d-x 3.0之后提供了对C++11标准[1]的支持,其中的Lambda[2]表达式使用起来非常简洁。我们可以使用Lambda表达式重构上一节的实例。我们可以将下面的代码:listener->onTouchBegan =CC_CALLBACK_2(HelloWorld::onTouchBegan, this);... ...原创 2014-07-26 20:00:24 · 6810 阅读 · 0 评论 -
Cocos2d-x开发实例介绍特效演示
下面我们通过一个实例介绍几个特效的使用,这个实例下图所示,下图是一个操作菜单场景,选择菜单可以进入到下图动作场景,在下图动作场景中点击Go按钮可以执行我们选择的特性动作,点击Back按钮可以返回到菜单场景。 下面我们再看看具体的程序代码,首先看一下看HelloWorldScene.h文件,它的代码如下:#ifndef __HELLOWORL原创 2014-07-13 21:10:34 · 4715 阅读 · 2 评论 -
Cocos2d-x如何控制动作速度
基本动作和组合动作实现了针对精灵的各种运动和动画效果的改变。但这样的改变速度匀速的、线性的。通过ActionEase及其的派生类和Speed 类我们可以使精灵以非匀速或非线性速度运动,这样看起了效果更加逼真。ActionEase的类图如下图所示。 下面我们通过一个实例介绍一下这些动作中速度的控制的使用,这个实例如下图所示,上图是一个操作菜单原创 2014-07-12 11:03:17 · 6961 阅读 · 0 评论 -
《iOS开发指南》要改iOS8版本了,听听您的意见?
《iOS开发指南》要改iOS8版本了,听听您的意见?参加问卷同学均可获得智捷课堂50元代金卡一张,同时抽取一名同学赠送即将出版的基于iOS8的《iOS开发指南》一本,欢迎大家填写问卷http://www.diaochapai.com/survey/17a0cd7b-ef61-40ec-b51f-4e85acdd9fb5原创 2014-12-30 11:00:58 · 2526 阅读 · 2 评论 -
申请TexturePacker免费注册码(TP:68D951F8)
如果你是人开发人员,你需要使用TexturePacker工具制作精灵表,则可以通过https://www.codeandweb.com/request-free-license申请免费的注册码。请真实填写你的信息,主要是需要提供你的技术博客。提交申请后返回信息如下:Please prove that you are the blog's owner by placing this code som原创 2015-04-29 20:12:24 · 12815 阅读 · 0 评论