今日ai搞掂
(搞到我爆炸!!)
亦搵到save data係iphone既方法
意未著存下level再唔係難事!
gotta sleep..
2011年1月30日 星期日
2011年1月29日 星期六
一個天大白痴的bug
不是說現在的path finding 還有bug嗎?
終於發現問題所在
從來沒有麼白痴過
花了一個小時找到bug
就是
fix前
for (var m:int = openA.length-1; m>0; m--)
{
fix後
for (var m:int = openA.length-1; m>=0; m--)
{
看得出有什麼分別嗎?
就是m>0
讓它永遠讀不到array[0]的數據!!!!!!!!!!!!!!!!!!!!!!!!
fuck me!
終於發現問題所在
從來沒有麼白痴過
花了一個小時找到bug
就是
fix前
for (var m:int = openA.length-1; m>0; m--)
{
fix後
for (var m:int = openA.length-1; m>=0; m--)
{
看得出有什麼分別嗎?
就是m>0
讓它永遠讀不到array[0]的數據!!!!!!!!!!!!!!!!!!!!!!!!
fuck me!
2011年1月23日 星期日
一個遊戲的偉大
有感而發寫了這篇文章..
小弟一生裡也玩過很多遊戲了(基本上我是半個宅男吧)
從super mario,逃獄金剛,到aoc,到world of warcraft,之後有了錢,upgrade了配置玩的hitman, crysis, need for speed..etc and etc
現在才明白到一個遊戲入面的可怕
一個很簡單的function, 就是尋路, 也是一種大學問..
可是人家20年前就搞好了這樣的演算法..
發展到了今天,那些gta4,dirt2,那些仿真得跟現實分別不大的物理系統
很難想像裡面幾百萬行的code在電腦裡運行的樣子..
付了多少的心血去畫,去寫..
小弟一生裡也玩過很多遊戲了(基本上我是半個宅男吧)
從super mario,逃獄金剛,到aoc,到world of warcraft,之後有了錢,upgrade了配置玩的hitman, crysis, need for speed..etc and etc
現在才明白到一個遊戲入面的可怕
一個很簡單的function, 就是尋路, 也是一種大學問..
可是人家20年前就搞好了這樣的演算法..
發展到了今天,那些gta4,dirt2,那些仿真得跟現實分別不大的物理系統
很難想像裡面幾百萬行的code在電腦裡運行的樣子..
付了多少的心血去畫,去寫..
又辛苦了一晚
2011年1月22日 星期六
a star
既然得寫點東西, 就在這寫吧
3可能的bug
1.全block, unit動彈不得的情況
2.中途block, unit能走到最近target的地方嗎?
3.弓
先有一個seq
var dir_seq:Array
如target.x >= unit.x
先左,後右
先x後y嗎?
不,以distance決定
然後推進了
對!
個人感覺我的寫法可以改變一點
就是說,我找的不是最快的路徑,
不
這樣會造成unit會走到盡頭才轉彎
like this
if target.x >= unit.x
and target.y >= unit.y
and x distance>y distance
seq is
right
bottom
left
up
result:
1. no-block, 斜者可行曲線
2. 中間有block,
===
想了一個小時
自己的方法有點不行
唉..
明天還是繼續研究一下那些中文網站吧
有點像陷入了pure maths那時候的困境...
對,了解一個新的理論和應用它
3可能的bug
1.全block, unit動彈不得的情況
2.中途block, unit能走到最近target的地方嗎?
3.弓
先有一個seq
var dir_seq:Array
如target.x >= unit.x
先左,後右
先x後y嗎?
不,以distance決定
然後推進了
對!
個人感覺我的寫法可以改變一點
就是說,我找的不是最快的路徑,
不
這樣會造成unit會走到盡頭才轉彎
like this
if target.x >= unit.x
and target.y >= unit.y
and x distance>y distance
seq is
right
bottom
left
up
result:
1. no-block, 斜者可行曲線
2. 中間有block,
===
想了一個小時
自己的方法有點不行
唉..
明天還是繼續研究一下那些中文網站吧
有點像陷入了pure maths那時候的困境...
對,了解一個新的理論和應用它
2011年1月19日 星期三
天!A-star!!
今天繼續fyp的programming
之前的ai有點不完美, 遇到障礙還是有點笨
所以決定重寫了... (累)
看了一些a star的介紹, 還是決定用了
看來又得腦力操勞.........
2011年1月13日 星期四
上午又fix了一個小bug
這小bug說起來影響真大
亦很難察覺
最初以為是iphone的問題, 跟flash不相容
有點心灰意冷的惑覺..
最後修改了一點code, 終於解決了問題!
所以說, testing這步驟真的很重要...
期中present前進展 (1)
2011年1月7日 星期五
01-08
核心的部份快完工了
現在單位可以自由自動地行動
什麼drag and drop的bug都解決了
還差弓兵的attack程序
code變得越來越複雜
快到了除了我誰都不明白的地步了
之前用了pang的方法來dynamically引用number of unit等variable
比方說:
if (unit.x_pos > unit.closest_enenmy.x_pos && unit_pos[unit.camp][unit.x_pos - 1][unit.y_pos] == -1)
呵呵
完全是動態的連結
第一次寫這麼繁複的程序
let's keep going
現在單位可以自由自動地行動
什麼drag and drop的bug都解決了
還差弓兵的attack程序
code變得越來越複雜
快到了除了我誰都不明白的地步了
之前用了pang的方法來dynamically引用number of unit等variable
比方說:
if (unit.x_pos > unit.closest_enenmy.x_pos && unit_pos[unit.camp][unit.x_pos - 1][unit.y_pos] == -1)
呵呵
完全是動態的連結
第一次寫這麼繁複的程序
let's keep going
2011年1月4日 星期二
unit auto moving
今天下午終於搞掂了unit auto moving
auto detect enemy 也ok
現在的問題是其他alternative,比如說當旁邊有盟存怎辦?
那個if 的括括將會挺大的..
讓我想想:
case1: 旁邊是盟友 (或block)
case2: unit是馬
case3: 準備attack
case4: 原來的enemy死了/distance增了
還有很多可能性..
case5: 弓準備attack
這基本搞店後就是defense狀態的處理
想到了
馬的寫法就是, if unit=horse, then loop unit move again
這個行
現在搞原來的enemy死了吧
應該在最開始搞
auto detect enemy 也ok
現在的問題是其他alternative,比如說當旁邊有盟存怎辦?
那個if 的括括將會挺大的..
讓我想想:
case1: 旁邊是盟友 (或block)
case2: unit是馬
case3: 準備attack
case4: 原來的enemy死了/distance增了
還有很多可能性..
case5: 弓準備attack
這基本搞店後就是defense狀態的處理
想到了
馬的寫法就是, if unit=horse, then loop unit move again
這個行
現在搞原來的enemy死了吧
應該在最開始搞
2011年1月3日 星期一
yup! got it!
今天終於搞掂drag and drop的所有部份
也為即將來臨的enemy detection ai 作好準備了
其實不用tree也可以, 畢竟只是detect distance
每一個loop只是 absolute(x1-x2) + absolute(y1-y2), 不耗太多時間
就這樣
也為即將來臨的enemy detection ai 作好準備了
其實不用tree也可以, 畢竟只是detect distance
每一個loop只是 absolute(x1-x2) + absolute(y1-y2), 不耗太多時間
就這樣
2011年1月2日 星期日
思考
現在很簡單的問題,怎樣令p1的兵自動走到p2的兵。
第一步是找到target.
all unit must contain one variable: target enemy.
this variable determine who to attack.
and then is attack process.
and then is defense states.
第一步是找到target.
all unit must contain one variable: target enemy.
this variable determine who to attack.
and then is attack process.
and then is defense states.
訂閱:
文章 (Atom)
