2011年8月29日 星期一

as3 FLIXEL FINDPATH DEFAULT自訂路徑

如果利用flixel底下的findPath,自訂自已想要的行走路線?
我的作法如下
1.利用tilemap,定義出每條路線的起點跟終點,還有所經過的所有點
2.將每條路徑的點,利用FlxPath轉化成node
3.接著把enemy套上followPath,並把我們自訂的path丟進去,enemy就會跟著自訂的路線走啦

2011年8月28日 星期日

FLIXEL介紹

flixel是一套專為flash as3打造的game engine
其特色是使用pixel成像,完全不使用向量圖檔,
除此之外 他以下的幾項功能也很好用: p

  1. 動畫播放:因為沒有支援向量圖,所以作法是你將一連串的圖片組合成成一張大圖(現在很多game都是這樣做的哦,因為這樣比較省效能),而且flixel把它作的很棒!假設你這張圖分成10個區塊,你在1~3張是往右走的動畫,4~6是往上跳的動畫,7~10是攻擊,你可以直接在flixel裡將它分成三個動畫,而且每個動畫還有事件通知。而且flixel還有提供一些動畫的特效,比如該物件死掉之後會爆炸開來...
  2. 運動:完全遵循 向量力的作法,你可以將一個物件設置他的向量力、跟最大的向量力,也可以設置加速度,當然要設置阻力也是沒問題的。
  3. 碰撞:由於整個flixel是使用bitmap繪製而成,而且它用大量使用了四叉樹,所以碰撞非常不傷效能。(不過原生的不是真實碰撞,我後來有改寫~)
  4. tilemap:使用tilemap,可以快速的把你製造出一張地圖,我不得我說它的地圖很有巧思!?它可以使用九宮格的方式來填充地圖,蛤?咡不懂?沒關係,快來下載tilemap 編輯器 http://dambots.com/dame-editor 製作地圖,放置角色 簡簡單單~:P
  5. 除此之外 他還支援一大堆其他的API,詳細請上官網查詢XD

as3 rtmfp service OpenRTMFP

OpenRTMFP 是一個可以提供as3 rtmfp 連線的service,
使用此open source service,你可以自定義port,也可以新增white list。


安裝方式如下:
安裝環境:
centos 5.4
1.到https://github.com/OpenRTMFP/Cumulus  下載OpenRTMFP-Cumulus-112ade5.tar.gz
2.將解壓縮後的資料夾放到/root底下(你可以放到你想要的地方)
3.安裝OpenSSL
4.安裝poco ※我用yum找不到poco,所以直接到官網下載並安裝http://pocoproject.org/
5.poco安裝後之後,將poco中的lib資料夾底下的檔案復製到/lib底下
6.安裝gcc
7.切換目錄到OpenRTMFP-Cumulus-112ade5\CumulusLib底下,執行 make(可參考文件的readme)
8.切換目錄到OpenRTMFP-Cumulus-112ade5\OpenRTMFP-Cumulus-112ade5\CumulusService執行make
9.安裝成功之後,執行 ./CumulusService 就完成了!!
10.接著你可以在rtmfp中連線的server_adress填上你剛剛架的Cumulus的ip
至於developer key,沒有設置的話 就不用填了 : p











as3 RTMFP SAMPLE

overview
adobe的rtmfp Protocol,是基於p2p的架構,使用udp方式進行資料傳輸
程序會在一開始跟adobe提供的Cirrus service(Stratus service)進行連線,
取得group的連線資訊.
連線時需要一組developer key,
可到https://www.adobe.com/cfusion/entitlement/index.cfm?e=cirrus
註冊取得。
※若是使用自架的service 可以不用申請developer key,請參考 「as3 rtmfp server 架設」
以下為sample

2011年8月27日 星期六

AS3 SOCKET[client]

aS3使用socket連線,這裡提供client端的作法
基本上 client沒有要注意的事項
as3在建立socket連線之後,會自動發送給server(如果有連上的話) <policy-file-request/> 的訊息
之後server會回傳 <cross-domain-policy>...
確定允許連線之後就可正常連線了。
我在寫這個sample的時後,是使用c#當server,由client主動發送<policy-file-request/>的訊息
而server回傳<cross-domain-policy>的這段訊息 則是以字串的方式直接回傳
※官方文件上有說明,正常的流程是在server domain底下放置crossdomain.xml,
以自動確定允許連線。
client也可以自已載入policy檔,方式如下
import flash.system.Security;
Security.loadPolicyFile("http://" + serverURL + "/crossdomain.xml");
但我沒這麼做,我直接以字串的方式將policy的資訊回傳給client~
以下是sample

as3 繪製中空的圓

這個example主要是應用在,做新手教學時用的。
遮敝掉不能按的部份~










2011年8月23日 星期二

facebook add testuser

PHP SDK VER:facebook-php-sdk-v3.1.1-5-gf2a8588

test users overview:
test users 除了可以大量建立測試帳號之外,其保密的功能簡直到家!
所建立的test users,除了所在的group之外,無法存取其他app或user
當然別人也連不到該test user。這在開發app時,可以防止開發資料外洩!!
而且也不用像以前那樣大量註冊facebook,來提供測試帳號;
更麻煩的是當新開一個專案,還要一個一個測試帳號加進test user list,並且等待對方接受邀請~
這些問題 通通不會再有了

php 不重覆亂數~其他語言也可以參考

function rand($i)
{
while($i--)
{
if(isset($arr[$i]))continu​e;
$r=rand(0,$i);
$arr[$i]=isset($arr[$r])?$​arr[$r]:$r;
$arr[$r]=$i;
}
return $arr;
}
優點: 速度夠快、不用先建立array並填滿每個值
缺點: 因為第一句if(isset($arr[$i]))continu​e;所以"有可能"有跡可尋...不過把第一句拿掉就好了:p