2011/3/21

FLASH - 精準的Timer

我們知道 flash 裡面內建的 Timer 是不精準的(有痛苦過的就知道)
為此我用 EnterFrame 事件和 new Date() 取得系統時間
做了一個精準的Timer (比較吃效能是當然的)

當然也可以用一個高速的 Timer 去取代 EnterFrame
不過原理是一樣的,就是儲存 Timer 產生的誤差

以下是程式碼
http://paste.plurk.com/show/403072/

這個就是以系統時間為基礎的精準的Timer


如果今天我們想要讓flash動畫和音樂同步
那麼就應該做一個 SoundTimer 是以 SoundChannel.position 的值為基礎
而不是以系統時間為基礎

那麼他的建構式大概就會長這樣 new SoundTimer(soundChannel:SoundChannel)
然後我們就可以用這個 SoundTimer 來做音樂遊戲了

plurk api test

http://cgm.cs.ntust.edu.tw/etrex/etrexJs/plurk/plurkjsonpdemo.html

2011/3/17

[企劃] MMORPG 裝備合成 強化 鑲嵌 煉丹模組

基於大部分遊戲都是提供一個介面

讓使用者點選要合成的武器和要消耗的道具

選好之後按下OK 最後根據機率決定結果

我認為這樣對玩家來說是枯燥的 或者說是不寫實

無法感受到創造物品的感覺


從小說改編成線上遊戲的例子很多

但是關於小說裡面描述煉丹的過程是很有趣的

在遊戲中玩家卻得不到煉丹的樂趣


而有些小遊戲 有做到這個部分

比方說廚師遊戲之類的

所以說如果把遊戲中的生產行為

變成是以小遊戲的形式進行

一樣是同一個介面 但是按下合成後進行小遊戲

根據小遊戲的分數 可以影響成功的機率值和結果的品質


如此一來

就會有真正的煉丹大師玩家

而不只是人人有錢人人可以做大師


小遊戲也可以是音樂節奏遊戲

比方說鍛造要有節奏地敲打什麼的


如果有這種的中文版線上遊戲 我一定會玩的

2011/3/16

程式語言的熟練度分級

新手級:
有google, 有文件的情況下 使用IDE還是擠不出幾行程式

進階級:
有google, 有文件的情況下 使用IDE正確無誤地寫出程式

大師級:
無google, 無文件的情況下 使用記事本正確無誤地寫出程式

2011/3/14

ㄚ服被盜帳號



程式語言的奧妙之處在於提出重複程式碼

提出重複的程式碼段落,或者說提出需求變更
透過class method 的包裝後,就可以變成相同型態的變數

一般人可能都懂新手程度的提出重複程式碼

但是這種程度的提出程式碼就不一定

以上是 Command Pattern 正規的作法,但是這種做法喪失了語言特性(一般物件導向程式沒有 Function Class)

這種善用語言特性的這種作法,是可以考慮的,不必按照教科書上的方式走

2011/3/10

Design Pattern & 重構筆記

==重構==
目的:
1.提出需求變更,增加彈性
2.增加程式碼可讀性

缺點:
1.class 數量增加
2.目的1和目的2有時候是衝突

作法:
提出需求變更



==Design Pattern==
Strategy Pattern
作法:
將狀態變數從 Enum 或 String 改為 Class
使得狀態身上可以攜帶方法



Null Pattern
作法:
建立 Null 狀態 Class
使得 Null 狀態身上可以攜帶空白方法
可避免 if ( status == null) 等程式

2011/3/3

google search api

http://searchetrex.appspot.com/?q=關鍵字&callback=函數名稱&start=(頁碼-1)*10

範例:http://searchetrex.appspot.com/?q=科科&callback=alert

第二頁:http://searchetrex.appspot.com/?q=科科&callback=alert&start=10

原始程式碼:http://paste.plurk.com/show/387610/

google dictionary api

http://www.google.com/dictionary/json?callback=parseObject&q=phone&sl=en&tl=en&restrict=pr,de&client=te