star-o-0 发表于 2010-5-31 09:45:13

什麼為架構良好的腳本

寫了那麼久的腳本

參考了無數的範例

才發現自己的腳本很難管理



假如我要寫一個畫出正方形的腳本

不良範例
draw_square
{
x=argument0
y=argument1
side =argument2
color = argument3
draw_rectangle_color(x,y,x+side,y+side,c_black,c_black,c_black,c_black,true)
draw_rectangle_color(x,y,x+side,y+side,color ,color ,color ,color,false)
}
這個腳本有4個參數
x,y為要在哪裡畫出正方形,x,y代表為正方形左上角的點的位置
side為正方形的邊長,color為正方形裡的顏色
draw_square(0,0,32,c_blue)=>這樣子我就可以畫出一個有著黑邊且顏色為藍色的正方形

但是這個腳本有幾個致命的錯誤
1.就是x與y是實例原本就有的變數,如果你執行此腳本的實例為透明的你可能看不出來
但是這樣會讓實例的位置移到你給的x,y位置
2.雖然將argument先指定給一個變數很好,這樣腳本比較好看,但是腳本結束後這些變數並不會消失,依然占著記憶體
3.假如我今天不想要黑色的邊框呢?
正確的寫法如下:
draw_square
{
var temp_x,temp_y,side,color,board_color; //注意一定要加;分號
temp_x=argument0
temp_y=argument1
side =argument2
color = argument3
board_color=argument4
draw_rectangle_color(temp_x,temp_y,temp_x+side,temp_y+side,board_color,board_color,board_color,board_color,true)
draw_rectangle_color(temp_x,temp_y,temp_x+side,temp_y+side,color ,color ,color ,color,false)
}
宣告為var的變數只會在script的區塊中存在,離開之後就消失了
增加了一個board_color來增加script的功能
其實腳本的功能越多越好,雖然你要給的參數會很多,key_in的時候會覺得很麻煩
但也許這個腳本不只是給你直接使用,其他的腳本也會用到這個腳本

franniss 发表于 2010-5-31 18:48:56

正确

保证扩展性的脚本创作方法~

star-o-0 发表于 2010-5-31 19:02:05

而且自己常用的腳本最好自己編成一個擴展包!
還有變數提示功能!
页: [1]
查看完整版本: 什麼為架構良好的腳本