李華明Himi 原創,轉載務必在明顯處註明:
轉載自 【黑米GameDev街區】 原文連接: http://www.himigame.com/iphone-object/401.html
這段時間N忙,沒辦法,創業公司,固然抽時間也仍然再自學ios~OK,基礎的語言基礎,我就很少說了,從今天開始直接寫遊戲開發部分了;css
聲明一點:iOS遊戲開發系列沒有我寫的Android遊戲開發系列有權威性,由於我也是在學習中,只是拿出來給你們分享,但願你們不要較真,如今我們都是一年級新生,咳咳,好啦,很少說了,下面開始進入正題;html
繪製一個圖形,首先咱們確定須要一個視圖view,在iOS中是UIView,下面用兩種方式介紹如何在iphone上顯示視圖;ios
首先建立一個項目:(Window-based Application)iphone
而後新建一個自定義的GameView類,繼承UIView類;函數
Ok,除了繼承UIVIew,其餘什麼都不用修改和改動,下面介紹顯示視圖的兩種方式,工具
第一種方式: 利用Interface Builder工具進行視圖綁定;學習
雙擊當前項目的,MainWindow.xib,啓動 Interface Builder;ui
從Library中拖出一個VIew控件至Window中,(調整view填充屏幕便可),而後修改此View關聯剛纔建立的GameView的視圖類,spa
關聯其實就是在「Game View Identity」視圖框中將Class 指向 GameView便可;而後保存;完成!.net
第二種方式: 直接把定義的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的完整代碼:
// // GameView.m // MyViewTest // // Created by Himi on 11-7-25. // Copyright 2011 __MyCompanyName__. All rights reserved. // #import "GameView.h" @implementation GameView -(void) drawRect:(CGRect)rect{ //-------如下方式只用UIKIT 提供的畫圖類進行,此方式很是簡單 // CGRect recte = [self bounds];//自定義繪圖區域(大小默認屏幕大小) // [[UIColor greenColor] set];//設置顏色爲綠色 // UIRectFill(recte);//填充綠色區域 // CGRect square = CGRectMake(50, 50, 100, 100);//自定義區域 // [[UIColor yellowColor] set];//設置顏色爲黃色 // UIRectFill(square);//填充黃色區域 // [[UIColor blackColor] set];//設置黑色 // UIRectFrame(square);//這裏不是填充,爲黃色區域繪製黑色邊框 //-------如下方式只用CG 提供的畫圖類進行,此方式能夠繪製複雜的繪製 //填充背景爲綠色 [[UIColor greenColor]set]; UIRectFill([self bounds]); //拿到當前視圖準備好的畫板 CGContextRef context = UIGraphicsGetCurrentContext(); //利用path進行繪製三角形 CGContextBeginPath(context);//標記 CGContextMoveToPoint(context, 50, 30);//設置起點 CGContextAddLineToPoint(context, 10, 150); CGContextAddLineToPoint(context, 100, 150); CGContextClosePath(context);//路徑結束標誌,不寫默認封閉 [[UIColor yellowColor] setFill]; [[UIColor blackColor] setStroke]; CGContextDrawPath(context, kCGPathFillStroke);//繪製路徑path } @end項目截圖:
![]()
ok,本章節就介紹到這裏,都22點了 - -,回家回家。。咳咳;