  说明  

Bull's Eye小游戏是http://www.raywenderlich.com/store/ios-apprentice里非常酷的入门demo
跟着该教程一步步做下来便有了 Bull's Eye,源码可以在官网寻找,或者从我的github上clone, https://github.com/avenwu/bulleye.git

先来秀效果图:

规则很简单,每次产生一个1-100的随机数,玩家通过滑块滑动到最接近的位置后单击Hit me 按钮,弹出得分情况,得分累计到Scroe后面,Round显示当前为第几局, 左侧有重置按钮,可以清零得分和局数。

  目标  

  1. 了解xcode创建项目的过程
  2. 熟悉并使用ImageView, Button, Label, Horizontal Slider, WebView,为UI控件添加Action
  3. 3.5/4inch简单的尺寸适配
  4. 使用storyboard,添加view controller

开发环境:Xcode5.0.2/Mac Pro

  实现讲解  

游戏非常简单,通过xcode创建一个singleview的项目,勾选ARC,这样新建出来的项目已经包好了我们需要额绝大多数的文件,如果做过Android,其实会发现iOS应用开发还是比较上手的。下图是Bull‘s Eye的项目结构,

相比较新建的项目里面多了一个view controller,这个view controller按我的理解来看可以类比成Android里面Activity,他是主要是用来处理UI控件的交互逻辑,比如更新label的文本内容,添加Action事件,有一点不同的是不要我们显示地设置他对应的view,而是通过在storyboard里面拖出一个view controller然后制定它对应的class为我们的类文件。这里ViewController对应游戏主界面,AboutViewController对应的是说明页面。

单击左侧工程栏里的Main.storyboard,然后编辑区域将出现类似Android里面xml布局的编辑区域,我们就在这里选中需要的controller然后在上面添加所需UI控件,所有的控件可以在右侧的UIKit里找到,直接拖拽到页面内,然后调整参数,显示内容,大小颜色什么的都可以,拖一个新的view controller出来绑定为AboutViewController,同样放上相应控件,

现在页面的布局已经完成了,但是我们如何从代码里面控制某个控件呢?在Android里面我可为控件制定id然后再activity内findViewbyId, 在iOS里面通过OutLet和Action来做这件事,至于两者的涵义和操作,相关资料很多,这里不再啰嗦。

现在我们开始敲代码了,打开ViewController.h这是我们的头文件,里面声明了Slider, label, 和Action几个方法,都是和UI控件绑定好的,从其那面的同心圆小标记可以看出来

现在打开他的实现文件ViewController.m,实现各函数,showAlert在Hitme按钮单击的时候触发,我们让他弹出一个对话框,显示当前的得分情况

iOS 基础入门--Bull' Eye 小游戏 的更多相关文章

  1. [置顶] IOS 基础入门教程

    IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...

  2. iOS 类似2048、4096小游戏-OC

    大概思路(初步制作,粗工制造):demo 1.Collection 创建cell 2.cell上添加一个view,用来添加手势 3.字典用来存放数据->每次执行StarGame数组接收没有数字的 ...

  3. 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary

    int main(int argc, const char * argv[]) { @autoreleasepool { //字典, 存储的内存不是连续的 用key和value进行对应(键值) //k ...

  4. iOS基础 - 史上最难游戏

    步骤一:隐藏状态栏 步骤二:屏幕适配 步骤三:设置窗口的根控制器为导航控制器,并且设置导航条和状态栏. 步骤四:搭建设置界面 步骤五:控制器连线 步骤六:搭建关卡控制器 加载pilst文件 创建关卡模 ...

  5. iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码

    iOS精选源码 如丝般顺滑的微信朋友圈(点赞,评论,图文混排表情,... 动态菜单第三版本:动态项,自适应方向 仿appstore首页滚动效果 iOS 透明导航栏方案 TransparentNavig ...

  6. 了解python,利用python来制作日常猜拳,猜价小游戏

    初次接触python,便被它简洁优美的语言所吸引,正所谓人生苦短,python当歌.python之所以在最近几年越发的炽手可热,离不开它的一些特点: 1.易于学习:Python有相对较少的关键字,结构 ...

  7. 改进我们的小游戏 - 零基础入门学习Python004

    改进我们的小游戏 让编程改变世界 Change the world by program 改进我们的小游戏 很多鱼油对改善这个游戏提出了建议,小甲鱼做了一下总结,大概有以下几个方面需要改进: 猜错的时 ...

  8. Python基础入门-实现猜数字小游戏

    今天呢,我们来通过前面学过的一些知识点来完成一个猜数字大小的游戏程序设计.那么呢,一般人写代码直接上来就干,没有分析,这样的做法是没有产出的,除非你是大牛,今天呢,我会把我学习编程的思路分享给大家,我 ...

  9. 零基础入门学习Python(4)--改进我们的小游戏

    前言 在以前的博客中有做个一个小游戏,但是太简单了,所以这次就来对我们做的小游戏进行改进,改善从以下四个方面进行: 程序猜错的时候要给出提示,例如告诉用户输入的值是大了还是小了. 以前程序每运行一次只 ...

随机推荐

  1. TaskAsyncHelper

    public static class TaskAsyncHelper { /// <summary> /// 将一个方法function异步运行,在执行完毕时执行回调callback / ...

  2. (UML总结三)UML与软件project

    学习完UML.我们要把它和之前的软件project结合起来.软件project是从总体的角度说了软件开发的步骤.保证了所开发软件的质量.而UML作为一种统一建模语言.是用来设计软件蓝图的可视化建模语言 ...

  3. mysql中tinyint、smallint、int、bigint的区别

    tinyint 从 -2^7 (-128) 到 2^7 - 1 (123) 的整型数据.存储大小为 1 个字节. unsigned 是从 0 到 255 的整型数据. 所以建表的时候 只能是tinyi ...

  4. nginx 404 403等错误信息页面重定向到网站首页或其它事先指定的页面

    server { listen 80; server_name www.espressos.cn; location / { root html/www; index index.html index ...

  5. HHH

    https://data-artisans.com/flink-forward/resources/alibabas-common-algorithm-platform-on-flink https: ...

  6. Nan-boxing技术介绍

    NaN-boxing看起来像英文翻译的“南拳”,其实它是表示一个无效的double数.NaN-boxing技术:通过一个64位的数字来表示多种数据类型的技术,它通过一个nan浮点数来保存数据,根据IE ...

  7. (原创)C++11改进我们的程序之简化我们的程序(八)

    本次要讲的是如何通过泛型函数来简化我们的程序. 泛型函数除了之前介绍的一些优点外还有两个重要的优点 1.消除重复逻辑,提高程序的内聚性和健壮性 泛型函数在某种程度上用来弥补泛型类型的不足.通过泛型类型 ...

  8. 如何打开chrome中flash debug player

    If you’ve installed the latest version of Google Chrome, and you are having a problem debugging your ...

  9. ImportError: cannot import name 'main'的解决办法

    一.现象 使用pip出现如下提示: Traceback (most recent call last): File "/usr/bin/pip3", line 9, in < ...

  10. Mysql异常问题排查与处理——mysql的DNS反向解析和客户端网卡重启

    中午刚想趴一会,不料锅从天降!!!Mysql连不上了....... 现象如下: 现象1:登录mysql所在服务器,连接MySQL 成功: 现象2:通过客户端远程连接MySQL,返回失败,如下: Ent ...