在C/C++中,~運算子的功能是求1的補數,也就是位元倒數
現在來看看32bit的整數是怎麼表現的
反轉0
二進位 十進位
00000000000000000000000000000000 0 反轉前
11111111111111111111111111111111 -1 反轉後
反轉1
二進位 十進位
00000000000000000000000000000001 1 反轉前
11111111111111111111111111111110 -2 反轉後
kgsprogrammer 發表在
痞客邦
留言(0)
人氣()
% 在C當中為取餘數(Mod)
Ex:
5 % 2 = 1
12 % 4 = 0
kgsprogrammer 發表在
痞客邦
留言(1)
人氣()

這是一個很古老,但是很有趣的問題
一個追逐者,一個獵物
怎麼樣才能夠讓追逐者追捕到獵物呢?
當S(追逐者)與T(獵物)皆不動的時候
我們只需要給定一個方向,即
Vector(T - S)
不論給予多少速度(當然要大於0),總有一天S會追到T
但是如果S和T都有自己的速度呢?
就是這篇文章的主題了!
kgsprogrammer 發表在
痞客邦
留言(1)
人氣()

作者:
彭國倫 出版社:
碁峰
kgsprogrammer 發表在
痞客邦
留言(0)
人氣()

最近在開發遊戲上一直碰到效能上的瓶頸。
目前的遊戲高畫質可以算是基本上的需求,傳統的640 x 480的解析度已經不能滿足玩家的眼睛。
1280 x 720以上的高清時代已經來臨。
面對這樣高清的解析度,Pixel Shader的負擔就越重,減少每個Pixel著色的次數將是首要目標。
kgsprogrammer 發表在
痞客邦
留言(0)
人氣()
一般來說Float轉成Int,編譯器都會幫我們執行轉換 但是由於平台特性的問題,往往都是會做最保守的轉換 對於遊戲開發注重效能的程式碼來說,常常轉換是很費時的 尤其是當你是開發硬體規格受限的平台時,更是錙銖必較 以下分享一個快速的方式給大家參考
kgsprogrammer 發表在
痞客邦
留言(0)
人氣()
一般化(Generalization)是很重要的一個步驟
卻也是常常被人忽略的一個細節
簡單來說,就是把特殊用途的程式碼
轉變成為一般用途的程式碼
舉個例子來說,我現在有20種怪物的AI要寫
直覺上我們會建立20個Class來分別實現
但是事實上,真的需要那麼多嗎?
仔細分析一下怪物的種類與特性
地上爬的,天上飛的,水裡游的,就分成三大類
攻擊模式,體型大小等等都可以是分類的依據
kgsprogrammer 發表在
痞客邦
留言(1)
人氣()

最近在天瓏看到一本新書叫做
Short Coding 寫出簡潔好程式-短碼達人的心得技法探討程式原始碼可以縮到多短,一邊研究資料結構、演算法、執行環境的過程。
程式高手可透過思考如何寫出簡捷好程式的過程,加強其邏輯思考與解決問題的能力,甚至對數學、資料結構與演算法等的活用有更多的體會。
kgsprogrammer 發表在
痞客邦
留言(0)
人氣()
什麼是程式碼壞味道(Code Bad Smell)?
簡單的說就是指程式碼中會讓你感覺不舒服的地方,比如說洛洛長的程式碼和重複性的程式碼沒有被提出來成為一個function來執行功能。
這樣的狀況是不是常常出現在你的程式碼中?
kgsprogrammer 發表在
痞客邦
留言(0)
人氣()
http://theflashgames.blogspot.com/2008/09/lightbot.html
寫程式讓機器人走到藍色框框點燈
通常第一次玩total command約180~190
kgsprogrammer 發表在
痞客邦
留言(0)
人氣()
今天由製作人那學到了關於美學的基本原則
他告訴我們那就是--[規律中有混亂,混亂中有規律]
為什麼會說到有關於美這個哲學層級的東西呢
通常我們在做遊戲時,為了讓遊戲有所變化,常常會加上很多亂數
感覺上會因為很多亂數不同而造成許多效果。
想想看
我們平常自然的走路時是以一種很規律的步伐、速度前進
看上去是很規律
實際上每一次踏出去的步伐距離與瞬間速度都不一樣
都會產生微小的偏差亂數
在做遊戲時也是要有這樣的模式
每一個AI的行為或是特效的表現
都是在一個規則之下給於微小的亂數產生自然的效果
之前玩過一款PS3的遊戲叫做--[秘境探險:黃金城秘寶] (這是個好Game,推薦一下)
這款遊戲利用Animation Blending的技術號稱你不會在遊戲中看到相同的動作
他在每一個動作的細微上都加上一些微小的亂數來Blending
比如人在走動時頭會左顧右盼,手的擺動也會有不同幅度等等
他呈現的效果就是生動自然
黃金矩形也是符合這個原則
圖片出處http://zh.wikipedia.org/wiki/%E9%BB%84%E9%87%91%E7%9F%A9%E5%BD%A2
它在每一個矩形中切出正方形另一邊也是一個黃金矩形
符合了--[規律中有混亂,混亂中有規律]
kgsprogrammer 發表在
痞客邦
留言(1)
人氣()
__FILE__ :取得目前的檔案名稱及路徑,回傳的是字串。
__LINE__ :取得該巨集呼叫的行數,回傳的是integer。
__DATE__:取得系統日期,格式為"Mmm dd yyyy"
__TIME__:取得系統時間,格式為"hh:mm:ss"
__TIMESTAMP__:取得系統日期與時間,格式為"Mmm dd yyyy hh:mm:ss"
__FUNCTION__:取得呼叫該巨集的函式名稱(包含類別名稱)。
kgsprogrammer 發表在
痞客邦
留言(1)
人氣()