blog.Ring.idv.tw

Articles

星海爭霸II - Starcraft II

上圖是2010年7月27日星海爭霸II在Yahoo所宣傳的Flash廣告

星海爭霸是一款我十年前很常玩的即時戰略遊戲~ 經過了十年~ 終於在今年的7月27日推出它的2代了「星海爭霸II」,由於目前仍然在封測中,所以可以免費的試玩~ 而我當然也在第一天就下載開始玩嚕~ (其實我已經約十年沒有玩電腦遊戲了..),由於有了一代的基礎,所以當安裝完成之後,馬上就選了蟲族(Zerg)來和電腦打一場,主要用來熟悉該種族的科技、兵種,打完這場之後~ 就立即切換到多人連線模式開始進行真人實戰PK,想當然在五場預選賽的成績也就沒有很好~ 結果3勝2負,一開始被分配到「白銀聯賽」對戰,經過了三天從「白銀」升級到「黃金」再到「白金聯賽」,哦哦~ 卡關了~ 因為在白金聯賽的實力其實有些已經都還不錯,畢竟再升上去就是最高等級的「鑽石聯賽」,加上有一兩天都沒辦法突破針對各種族的戰術設計~ 所以嚕~ 而今晚筆者終於奮鬥成功跳到「鑽石」的等級了,呃~ 不過也凌晨四點了... 好久沒有玩遊戲玩到那麼瘋了,接下來應該會有所收斂了~ 畢竟還是有「正當」的事情要做,不過至少要維持在「鑽石」等級不要降級就好 ^^ 關於等級的描述可以參考官網說明:戰階與天梯的問與答。

從上圖鑽石聯賽前十二名的種族分佈可以發現,神族居然佔掉了1/2,而我愛用的蟲族只有1/4.. 哦哦~

2010-08-07 05:41:45 | Add Comment

東海夜市-毒家冰窖

址址:台中縣龍井鄉新東村台中港路東園巷2弄23號

價格:60元

這是位於東海夜市裡頭的一間「毒家冰窖」所賣的「超級芒果牛奶冰」~ 想吃芒果冰的話可以去那品嚐看看~

2010-07-25 18:31:05 | Comments (2)

有心機的摺耳貓

昨天去「東海-毒家冰窖」吃芒果冰~ 一進去店裡就會看到店長所飼養的「摺耳貓」~ 拍它時還會偷瞄~ 呵~ 形成一個有趣的畫面!

另外店長也收留了兩隻小野貓~ 而其中有一隻剛好直接將頭伸進小啤酒杯裡試著要喝東西~ 可惜沒拍到,不然就經典了~

2010-07-25 17:28:09 | Add Comment

Accelerometer in iPhone

(圖片來源:UIAcceleration Class Reference)

上圖是iPhone所俱備三維空間的加速度感應器,在App Store有許多的小遊戲都是用它來控制的,使用的方法很簡單,不過筆者不太喜歡用Interface Builder來學習iPhone上的開發技巧,所以此範例都是純手工。

主要程式

UIAccelerometer *acc = [UIAccelerometer sharedAccelerometer];
acc.updateInterval = 1.0f/20.0f;
acc.delegate = self;

由於UIAccelerometer class是一個Singleton pattern,所以需要透過「[UIAccelerometer sharedAccelerometer]」的方式來取得,在Java上就是一些「getInstance()」的方法。

這裡需要設置兩個property,它們分別為:updateInterval、delegate

updateInterval:代表加速度感應器更新的頻率。

delegate:用來註冊哪一個class有實作「UIAccelerometerDelegate」Protocol

UIAccelerometerDelegate

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration 
{
	xx.text = [NSString stringWithFormat:@"%f",acceleration.x];
	yy.text = [NSString stringWithFormat:@"%f",acceleration.y];
	zz.text = [NSString stringWithFormat:@"%f",acceleration.z];
}

此範例純粹將X, Y, Z三個軸的值顯示出來。

.範例下載

2010-06-18 14:57:02 | Add Comment

Polymorphism in Objective-C

最近開始試著熟悉一些Objective-C的語法,不過其實一開始蠻排斥Obj-C,因為覺得它的語法和其它程式語言差異太多了.... 要熟悉需要花一段時間,而現在和它妥協了,或者應該是說被Steve Jobs強迫學習,而且也被強迫要買一台Mac機器... Orz (謎之音:這應該才是Steve Jobs的主要目的,因為要開發iphone/ipad/ipod touch... 請先來買一台Mac機器唷!)

本文只是筆者試著將Java的一些OO觀念套用在Obj-C,看看多型(Polymorphism)操作是如何用Obj-C來實現:

Human.h

定義一個Human Protocol,相當於Java中的Interface,裡頭只定義一個sayHello method。

@protocol Human
-(void) sayHello;
@end

Shen.h

定義一個Shen class,它繼承NSObject且會遵從Human這個Protocol (很奇怪吧~ 明明是個class卻是用interface的字眼)

#import "Human.h"
@interface Shen : NSObject <Human>
@end

Shen.m

實作Shen class的程式碼,sayHello方法只透過NSLog印出一些字串。

#import "Shen.h"
@implementation Shen
-(void) sayHello
{
	NSLog(@"Hello, I'm Shen.");
}
@end

Jack.h

另一個遵從Human Procotol的Jack class。

#import "Human.h"
@interface Jack : NSObject <Human>
@end

Jack.m

#import "Jack.h"
@implementation Jack
-(void) sayHello
{
	NSLog(@"Hello, I'm Jack.");
}
@end

YourDelegate.m

分別建立Shen和Jack這兩個物件,並傳給「say:(id<Human>)」這個方法來進行多型操作。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

	Shen *shen = [[Shen alloc] init];
	if([shen conformsToProtocol:@protocol(Human)] == YES)
	{
		NSLog(@"Shen conforms to Human\n");
	}
	[self say:shen];
	Jack *jack = [[Jack alloc] init];
	[self say:jack];

	[shen release];
	[jack release];

	[window makeKeyAndVisible];
	return YES;
}
-(void) say:(id<Human>) n
{
	[n sayHello];
}

輸出結果:

Shen conforms to Human
Hello, I'm Shen.
Hello, I'm Jack.

在這個範例中,筆者還用了一個NSObject的「conformsToProtocol」方法,可以使用它來判斷該物件是否有遵從特定的Protocol。

2010-06-15 09:40:38 | Add Comment

Next Posts~:::~Previous Posts
Copyright (C) Ching-Shen Chen. All rights reserved.

::: 分類 :::

::: 最新文章 :::

::: 最新回應 :::