2012年5月29日 星期二

如何開始 cocos2d-x Visual Studio 新專案

不是英文苦手的請參考 Cocos2d-x Application Wizard for Visual Studio User Guide

0.請先安裝好Visual Studio 2008 、2010 (廢話)  沒有序號的用這個頂著先

1. 下載 cocos2d-x sourse code
      寫這文章時最新版本為 ccocos2d-1.0.1-x-0.13.0-beta @ Mar 29, 2012
    (1)  直接下載 
    (2) git :  https://github.com/cocos2d/cocos2d-x

2. 下載後,找個好目錄解壓縮 ,先建置一次,有兩種方式
   (1)
  (2)


  人品好就可以在  \Debug.win32 或 \Release.win32目錄下找到 HelloWorld.exe  、tests.exe

    運行畫面


   
 
3.安裝精靈
  
4.使用精靈創建新專案

5.依所選的功能
   (1)把原始專案 copy  到相對資料匣下
   (2)把 lib、dll  copy 到 Debug.win32 或 Release.win32 下
   (3)把圖放到 到 Debug.win32 或 Release.win32 下


6.建置

2011年11月8日 星期二

XCode 4 says “finished running ” on the device , but nothing happens ,iPhone 3g 真機測式

最近借到一隻 iphone 3G 來玩玩
結果沒辦法在執行在Device上

情怳是~編譯後在 title 上出現 finished running "程式"  on ”裝置名稱”,
滿心期待的等了30秒後~確一直沒有出現在裝置上
重覆試了幾次結果也是一樣


只好上網google了
最後找到一篇討論~~ link


解法一:
Project -> Clean then Project -> Run again

解法二:
修改  architectures  armv7 =>  armv6

而且我遇到的看來因該是要解法二了,
因為這專案新創的、因該沒有做到個設定
設定方法





















OK~~終於出現在 iphone 3G 上面了

2011年10月12日 星期三

(iOS)如何新增AdMob (圖文教學)

前言:免費的應用程式記得設計區塊給廣告用來增加收入吧


1. get admob acount 申請admob申號 

2.get publish id
(1)點選新增網站/應用程式










(2)choice iPhone / iPad 跟樣式
















(3) get publish id 發佈商ID.






3. download SDK
Google AdMob Ads SDK for iOS



4. get code
You can download an
example project

or see see Google AdMob Ads iOS Fundamentals to code

5.define MY_BANNKER_UINT_ID as your AdMob Publish ID







6. build























PS:第一次執行是看不到廣告的 ,要等至少2分鐘才會接收成功


7not wait to test 不想等可以這麼做
find

[bannerView_ loadRequest:[GADRequest request]];

replace

[GADRequest *testRequest = [GADRequest request];
testRequest.testing = YES;
[bannerView_ loadRequest:testRequest];


so you can see










最後不負責任預測~不久之後也許會改~因為目前AdMob被Google買下不久而已目前因該整合中

2011年10月4日 星期二

In App Purchase 交易通用機制

最近開始研究In App Purchase
以下教學都寫的很好

In App Purchase 學習筆記 (1)

In App Purchase 學習筆記 (2)

In App Purchase 學習筆記 (3)




其中交易通用機制 ~用成中文圖解來記錄
希望對大家有所幫助

1. 內置產品類型





























2. 服務器類型



2011年9月1日 星期四

read write plist 存讀取plist

//讀檔

- (void)readPlist
{
//取得檔案路徑
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"/data.plist"];
//
NSFileManager *fileManager = [NSFileManager defaultManager];
NSMutableDictionary *plistDict;
if ([fileManager fileExistsAtPath: filePath]) //檢查檔案是否存在
{
plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
}else{
plistDict = [[NSMutableDictionary alloc] init];
}
NSString *value;
value = [plistDict objectForKey:@"version"];

[plistDict release];

}

//================================================================
//存檔

//存檔
- (void)writePlist
{
//取得檔案路徑
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"/data.plist"];

//
NSFileManager *fileManager = [NSFileManager defaultManager];
NSMutableDictionary *plistDict;
if ([fileManager fileExistsAtPath: filePath]) //檢查檔案是否存在
{
plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
}else{
plistDict = [[NSMutableDictionary alloc] init];
}


[plistDict setValue:@"1.0.0" forKey:@"version"];

//存檔
if ([plistDict writeToFile:filePath atomically: YES]) {
NSLog(@"writePlist success");
} else {
NSLog(@"writePlist fail");
}
[plistDict release];

}

//================================================================
注意事項
1.未存過的檔案的第一次建構
2.檔案的路徑


2011年8月30日 星期二

UIDevice detect the specific model ~識別設備機型


#import <sys/utsname.h>
NSString*
machineName()
{
    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
}

結果:
@"i386" on the simulator  (我的出現x86_64)
@"iPod1,1" on iPod Touch
@"iPhone1,1" on iPhone
@"iPhone1,2" on iPhone 3G
@"iPhone2,1" on iPhone 3GS
@"iPad1,1" on iPad
@"iPhone3,1" on iPhone 4.
@"iPad2,1" on iPad2

UIRequiredDeviceCapabilities 指定程序需要那些設備







Key 說明

telephony(電話) Include this key if your application requires (or specifically prohibits) the presence of the Phone application. You might require this feature if your application opens URLs with the tel scheme

wifi Include this key if your application requires (or specifically prohibits) access to the networking features of the device.

sms Include this key if your application requires (or specifically prohibits) the presence of the Messages application. You might require this feature if your application opens URLs with the sms scheme.

still-camera Include this key if your application requires (or specifically prohibits) the presence of a camera on the device. Applications use the UIImagePickerController interface to capture images from the device’s still camera.

auto-focus-camera Include this key if your application requires (or specifically prohibits) auto-focus capabilities in the device’s still camera. Although most developers should not need to include this key, you might include it if your application supports macro photography or requires sharper images in order to do some sort of image processing.

front-facing-camera Include this key if your application requires (or specifically prohibits) the presence of a forward-facing camera. Applications use the UIImagePickerController interface to capture video from the device’s camera.

camera-flash(相機閃光燈) Include this key if your application requires (or specifically prohibits) the presence of a camera flash for taking pictures or shooting video. Applications use the UIImagePickerController interface to control the enabling of this feature.

video-camera Include this key if your application requires (or specifically prohibits) the presence of a camera with video capabilities on the device. Applications use the UIImagePickerController interface to capture video from the device’s camera.

accelerometer(加速度計) Include this key if your application requires (or specifically prohibits) the presence of accelerometers on the device. Applications use the classes of the Core Motion framework to receive accelerometer events. You do not need to include this key if your application detects only device orientation changes.

gyroscope(陀螺儀) Include this key if your application requires (or specifically prohibits) the presence of a gyroscope on the device. Applications use the Core Motion framework to retrieve information from gyroscope hardware.

location-services(定位服務) Include this key if your application requires (or specifically prohibits) the ability to retrieve the device’s current location using the Core Location framework. (This key refers to the general location services feature. If you specifically need GPS-level accuracy, you should also include the gps key.)

gps Include this key if your application requires (or specifically prohibits) the presence of GPS (or AGPS) hardware for greater accuracy when tracking locations. If you include this key, you should also include the location-services key. You should require GPS only if your application needs more accurate location data than the cell or Wi-fi radios might otherwise allow.

magnetometer(磁力儀) Include this key if your application requires (or specifically prohibits) the presence of magnetometer hardware. Applications use this hardware to receive heading-related events through the Core Location framework.

microphone Include this key if your application uses the built-in microphone or supports accessories that provide a microphone.

opengles-1 Include this key if your application requires (or specifically prohibits) the presence of the OpenGL ES 1.1 interfaces.

opengles-2 Include this key if your application requires (or specifically prohibits) the presence of the OpenGL ES 2.0 interfaces.

armv6 Include this key if your application is compiled only for the armv6 instruction set. (iOS v3.1 and later.)

armv7 Include this key if your application is compiled only for the armv7 instruction set. (iOS v3.1 and later.)

peer-peer Include this key if your application requires (or specifically prohibits) peer-to-peer connectivity over Bluetooth. (iOS v3.1 and later.)


提交app時可以在info.plist設置