網頁

2013年4月30日 星期二

Cocos2D學習筆記-Timers改用[schedule: interval:]

使用nstimer太習慣,不知不覺在cocos2d中就用起了nstimer,但在換sence後,若又換回同一個sence時,重覆個兩次就會發生無法invalidate的狀況(應該說我的做法不知道為什麼會init兩個timer),最後發現還是用schedule: interval:比較正確,理由有二

  1. 比較沒有延遲問題
  2. 不用手動unschedule,除非有必要(我的狀況正好是有必要)
使用方式如官方提供的範例:
/**********************************************************/
// OK OK OK OK OK
/**********************************************************/
-(id) init
{
    if( (self=[super init] ) ) {
        // schedule a callback
        [self scheduleUpdate];  // available since v0.99.3
        [self schedule: @selector(tick2:) interval:0.5];
    }

    return self;
}

-(void) update: (ccTime) dt
{
    // bla bla bla
}

-(void) tick2: (ccTime) dt
{
    // bla bla bla
}


非常簡單

參考網址:
cocos2d Best Practices

2013年4月24日 星期三

Wordpress開發筆記-利用post_name取得post


想用get_post取得,但不知道為什麼放入post_name,就是不行,即使用urlencode也不行,最後手段只好直接抓資料庫及取得url的post_name,code如下,不過總覺得資安問題存在....

$post_name = $_GET['(post_type的名稱)'];
       
global $wpdb;
$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".urlencode($post_name)."'");


參考網址:
get_id_by_post_name()

2013年4月22日 星期一

Wordpress開發筆記-超易用不顯示不必要admin menu的方式

有些menu在後台並不想讓使用者看到,免增加麻煩,這時就只要用下列的code就可以看是要拿掉工具、媒體庫呢~ 還是文章等等,還蠻方便的

function remove_menus () {
global $menu;
// $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
$restricted = array( __('Posts'), __('Comments'), __('Links'), __('Tools'));
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}
}
add_action('admin_menu', 'remove_menus');



參考網址:
How to remove menus in WordPress dashboard

2013年4月21日 星期日

Cocos2D學習筆記-使用Accelerometer

發生了個問題,在CCLayer的init中將isAccelerometerEnabled設成YES,並實作了底下的code

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    self.accelerationY = acceleration.y * 10;
    CCLOG(@"acceleration.y: %f",acceleration.y);
    CCLOG(@"accelerationY: %f",self.accelerationY);
}

-(void) update:(ccTime)deltaTime
{
    CCLOG(@"__accelerationY: %f",self.accelerationY);
    CGFloat x = __human.position.x;
    if (self.accelerationY != 0) {
        x += self.accelerationY;
    }
    __human.position = ccp( x , __human.position.y);
}


本以為可以正常的執行,卻發現__accelerationY的值一直是0,非常奇怪,找了下資料才發現要在OnEnter中再設定delegate

-(void) onEnter
{
    [super onEnter];
 
    if( self.isAccelerometerEnabled )
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
}


這樣就ok了

參考網址:
weird issue with accelerometer

2013年4月18日 星期四

iOS開發筆記 - 讓app中的檔案可以借由iTunes取得

其實只要加入Application supports iTunes file sharing,設成YES,重新安裝app,並連上iTunes,就可以在檔案共享中,看到剛安裝的app的圖示在裡頭,點選後就可以用了


2013年4月16日 星期二

2013年4月5日 星期五

Parallel還真好用

原來將之前用Parallel做好的作業系統檔案copy到要放的位置,點兩下選確定複製個mac address,就可以直接使用了,不用再重安裝或重新確認是否開通等有的沒的步驟,方便多了