本站文章均为 李华明Himi 原创,转载务必在明显处注明:

转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-object/401.html

这段时间N忙,没办法,创业公司,当然抽时间也仍然再自学ios~OK,基础的语言基础,我就不多说了,从今天开始直接写游戏开发部分了;

声明一点:iOS游戏开发系列没有我写的Android游戏开发系列有权威性,因为我也是在学习中,只是拿出来给大家分享,希望大家不要较真,现在咱们都是一年级新生,咳咳,好啦,不多说了,下面开始进入正题;

绘制一个图形,首先我们肯定需要一个视图view,在iOS中是UIView,下面用两种方式介绍如何在iphone上显示视图;

首先创建一个项目:(Window-based Application)

然后新建一个自定义的GameView类,继承UIView类;

Ok,除了继承UIVIew,其他什么都不用修改和改动,下面介绍显示视图的两种方式:

第一种方式: 利用Interface Builder工具进行视图绑定

双击当前项目的,MainWindow.xib,启动 Interface Builder;

从Library中拖出一个VIew控件至Window中,(调整view填充屏幕即可),然后修改此View关联刚才创建的GameView的视图类,

关联其实就是在“Game View Identity”视图框中将Class 指向 GameView即可;然后保存;完成!

第二种方式: 直接把定义的UIView添加到Window中

(创建完项目,系统默认生成这两个类:MyViewTestAppDelegate.h,MyViewTestAppDelegate.m )
   修改 MyViewTestAppDelegate.h类,添加一个我们自定义的视图类:GameView *view;      
   然后修改MyViewTestAppDelegate.m,实例我们自定义的视图类并且添加到window视图中;
   //CGRect drawingArea=[window bounds];  //确定视图大小,这里默认为整个屏幕大小(除了状态栏)
   CGRect square = CGRectMake(0, 0, 320, 480);//自定义屏幕大小(除了状态栏)
  [window addSubview:[[GameView alloc] initWithFrame:square]];
    
    到此两种显示视图的方法都介绍完了,其实都是类似,第一种通过可视化操作,让系统为我们生成视图添加到window中的代码关系,第二种则是我们通过代码直接让window添加自定义的视图类的实例而已;当然到此是看不到任何效果的,因为视图中没有绘制任何的东西;

下面我们来在我们的视图GameView中绘制个三角形吧;

其实绘制很容易,只要重写UIView的   -(void) drawRect:(CGRect)rect; 函数即可;至于如何绘制三角形,这里直接提供代码,很简单就不再详细讲解了,每行代码我也有相对应的备注的;

GameView.m的完整代码:

  1. //
  2. //  GameView.m
  3. //  MyViewTest
  4. //
  5. //  Created by Himi on 11-7-25.
  6. //  Copyright 2011 __MyCompanyName__. All rights reserved.
  7. //
  8. #import "GameView.h"
  9. @implementation GameView
  10. -(void) drawRect:(CGRect)rect{
  11. //-------以下方式只用UIKIT 提供的画图类进行,此方式非常简单
  12. //  CGRect recte = [self bounds];//自定义绘图区域(大小默认屏幕大小)
  13. //  [[UIColor greenColor] set];//设置颜色为绿色
  14. //  UIRectFill(recte);//填充绿色区域
  15. //  CGRect square = CGRectMake(50, 50, 100, 100);//自定义区域
  16. //  [[UIColor yellowColor] set];//设置颜色为黄色
  17. //  UIRectFill(square);//填充黄色区域
  18. //  [[UIColor blackColor] set];//设置黑色
  19. //  UIRectFrame(square);//这里不是填充,为黄色区域绘制黑色边框
  20. //-------以下方式只用CG 提供的画图类进行,此方式可以绘制复杂的绘制
  21. //填充背景为绿色
  22. [[UIColor greenColor]set];
  23. UIRectFill([self bounds]);
  24. //拿到当前视图准备好的画板
  25. CGContextRef context = UIGraphicsGetCurrentContext();
  26. //利用path进行绘制三角形
  27. CGContextBeginPath(context);//标记
  28. CGContextMoveToPoint(context, 50, 30);//设置起点
  29. CGContextAddLineToPoint(context, 10, 150);
  30. CGContextAddLineToPoint(context, 100, 150);
  31. CGContextClosePath(context);//路径结束标志,不写默认封闭
  32. [[UIColor yellowColor] setFill];
  33. [[UIColor blackColor] setStroke];
  34. CGContextDrawPath(context, kCGPathFillStroke);//绘制路径path
  35. }
  36. @end

项目截图:

ok,本章节就介绍到这里,都22点了 - -,回家回家。。咳咳;

源码地址 :  http://www.himigame.com/iphone-object/401.html

【Iphone 游戏开发之一】创建视图并绘制简单图形相关推荐

  1. iPhone游戏开发 开始写日记

    上网多年来,第一次开博客写日记,作为自学iPhone游戏开发历程记录.做些必要的学习笔记,同时作为激励自己的手段. 首先回顾一下本人概况. 1 对游戏的兴趣 从小玩红白机.中学后玩PC游戏.网络游戏, ...

  2. iPhone游戏开发:使用到的工具和技术

    本文从开发过程中使用到的工具和技术的角度,介绍了iPhone游戏开发主要用到这些技术和工具:Objective-C或C/C++, Xcode, UIKit, Quartz 2D, Core Anima ...

  3. iPhone游戏开发实践指南

    <iPhone游戏开发实践指南>前言 编写游戏不是一项轻松的任务,即使你是个经验丰富的程序员,游戏的设计模式.术语和思考过程看上去也会有点奇怪和不合常规.由于我的大部分工作时间都投入到了创 ...

  4. iphone游戏开发_iPhone开发的10个步骤

    iphone游戏开发 We all want to be a coding superhero, and the number of people entering the profession ha ...

  5. (转载)如何学好iphone游戏开发

    转自:http://www.cnblogs.com/zilongshanren/archive/2011/09/19/2181558.html 自从发布<如何学习iphone游戏开发>到 ...

  6. 如何学习iphone游戏开发

    注意,我本人也是刚接触iphone游戏开发不久,之前完全没有mac开发相关经验,只有一些c/c++和java的编程经验. 所以,我想谈一谈我在学习过程中的一些心得和体会.当然,我还会继续学习下去,如果 ...

  7. 如何学好iphone游戏开发

    自从发布<如何学习iphone游戏开发>到现在,大概有半年时间了.其实在写<如何学习iphone游戏开发>的时候,我就写下豪言,说哪天学好了,再来写一篇<如何学好ipho ...

  8. 【iphone游戏开发】Iphone游戏开发之五:游戏场景切换,点阵字的实现和Hiero工具的利用

    Andy--清风 原创,转载请注明,谢谢 一.游戏场景切换 在iPhone游戏开发中,游戏之间的场景开发中有很多动画可以实现,具体实现的动画如下: CCTransitionRotoZoom//从大到小 ...

  9. 2D游戏开发 - SkyGameEngine2d 创建一个游戏项目

    2D游戏开发 - SkyGameEngine2d 创建一个游戏项目 一.前期准备 二.获取引擎工具 2.1 下载工具集 2.2 解压并且打开工具 三.使用工具 3.1 工具界面介绍 3.2 设置引擎路 ...

最新文章

  1. 配置Cassandra开机启动(CentOS 7)
  2. Nginx实用指南V1 (连载之四:流行CMS博客rewrite写法)
  3. android之 实现对搜索框输入内容(自动出现匹配内容)
  4. html制作主体部分,html – 使用CSS制作具有动态面板主体高度的面板填充父容器高度的其余部分...
  5. java 加密解密简单实现
  6. java实现人脸识别源码【含测试效果图】——Dao层(IBaseDaoUtil)
  7. vue-jest测试用例_用Jest快速介绍测试驱动的开发
  8. 机器视觉--图像形态学
  9. 前端开发~uni-app ·[项目-仿糗事百科] 学习笔记 ·005【设置全局属性globalStyle】
  10. [大妈吐糟] 虾米音乐的系列猜想
  11. 螺栓预紧力_斯姆勒知识讲解:螺栓预紧力的计算
  12. Bailian2739 计算对数【对数】
  13. Wannafly交流赛1: B. 白兔的式子(组合数)
  14. 计算机的常见故障及解决方法,最全的电脑开机常见故障及解决方法!
  15. 布鲁特-福斯算法(字符串匹配)
  16. python win32con_python win32 简单操作方法
  17. uni-app介绍及创建
  18. 客户期望,客户满意度,客户体验和客户忠诚度之间存在的联系
  19. 使用Navicat导入execl到mysql数据库中日期值显示0000-00-00的问题解决
  20. 【Adobe】Premiere pro 2023问题:文件导入器检测到xxxxx的文件结构不一致。已禁止读取和写入此文件的元数据(XMP)

热门文章

  1. 灯珠电路图_LED灯盘的实际电路到底长啥样,LDE灯珠又怎样检测?
  2. 联想a500手机驱动_一块砖也敢刷:联想手机A368T刷了三次才重新进入系统
  3. python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
  4. oracle服务器文件有哪些,Oracle服务器参数文件维护的技巧有哪些呢?
  5. cpu核心 线程 进程_科个普:进程、线程、并发、并行
  6. html宽度满屏,宽度满屏的代码怎么样写?
  7. python异常如何处理_python异常处理
  8. python里数字怎么表示_Python 中的数字—Python 学习笔记
  9. 孙鑫MFC笔记之八--文档串行化
  10. python 中的数据类型