锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
3 // 鏇存柊鏀誨嚮鐩爣錛屾病鏈夌洰鏍囧鎵?/span>
4 UpdateTarget()錛?br>5 // 鏇存柊鎴樻枟
6 UpdateCombat()錛?br>7 // 鏇存柊縐誨姩
8 UpdateMove();
9 }
鍦ㄧ浉搴旂殑Update涓幓媯(gè)嫻嬫湁娌℃湁鐘跺喌鍙戠敓錛屾瘮濡傚湪UpdateTarget錛堬級(jí)涓紝榪欎釜鎬墿鍙戠幇涓涓帺瀹惰繘鍏ヤ簡(jiǎn)鑷繁鐨勫湴鐩橈紝瑕佹涔嬶紝鍒欏彂閫佷竴涓簨浠剁粰涓涓鐞嗕簨浠剁殑鍑芥暟ProcessEvent(int nEvent),榪欎釜浜嬩歡鍙兘浼?xì)杩涘叆涓涓姸鎬佹満鐒跺悗鍦ㄦ洿鏀瑰埌涓涓繘鍏ユ垬鏂楃殑鐘舵侊紝璋冪敤鐩稿簲鐨勮剼鏈嚱鏁幫紝鍦ㄨ繖涓剼鏈嚱鏁伴噷灝卞幓鍋氳嚜宸辨兂鍋氱殑浜嬨?br> 浣嗘槸榪欐牱鐨刄pdate騫朵笉濂斤紝鎬濊冧簡(jiǎn)涓涓嬭寰楄繕鏄浠I鐘舵佷負(fù)鍩哄噯鏉pdate姣旇緝閫傚悎鍜岃剼鏈氦浜掋?br>
2 {
3 switch(m_nState)
4 {
5 case IDLE:
6 {
7 // 璋冪敤鑴氭湰錛屽彲鑳戒細(xì)璋冪敤瀵繪壘鐩爣鐨勬帴鍙?/span>
8 }
9 break;
10 case COMBAT:
11 {
12 // 璋冪敤鑴氭湰錛岃皟鐢ㄦ垬鏂楁帴鍙?/span>
13 }
14 break;
15 }
16 }
濮嬪寲鐨勫叏灞鍙橀噺涔熶笉浼?xì)鍑洪敊锛屽彧涓崢q囧緱鍒扮殑緇撴灉鏄細(xì)nil.
-e錛氱洿鎺ュ皢鍛戒護(hù)浼犲叆Lua
prompt> lua -e "print(math.sin(12))" --> -0.53657291800043
-l錛氬姞杞戒竴涓枃浠?
-i錛氳繘鍏ヤ氦浜掓ā寮?
絎? 绔?nbsp; 綾誨瀷鍜屽?br>Lua 鏄姩鎬佺被鍨嬭璦錛屽彉閲忎笉瑕佺被鍨嬪畾涔夈侺ua 涓湁8 涓熀鏈被鍨嬪垎鍒負(fù)錛歯il銆乥oolean銆?br>number銆乻tring銆乽serdata銆乫unction銆乼hread 鍜宼able銆傚嚱鏁皌ype 鍙互嫻嬭瘯緇欏畾鍙橀噺鎴栬呭?br>鐨勭被鍨嬨?br>
涓や釜鍙栧糵alse 鍜宼rue銆備絾瑕佹敞鎰廘ua 涓墍鏈夌殑鍊奸兘鍙互浣滀負(fù)鏉′歡銆傚湪鎺у埗緇撴瀯鐨勬潯
浠朵腑闄や簡(jiǎn)false 鍜宯il 涓哄亣錛屽叾浠栧奸兘涓虹湡銆傛墍浠ua 璁や負(fù)0 鍜岀┖涓查兘鏄湡銆?
絎? 绔?nbsp; 琛ㄨ揪寮?
a and b -- 濡傛灉a涓篺alse錛屽垯榪斿洖a錛屽惁鍒欒繑鍥瀊
a or b -- 濡傛灉a涓簍rue錛屽垯榪斿洖a錛屽惁鍒欒繑鍥瀊
涓涓緢瀹炵敤鐨勬妧宸э細(xì)濡傛灉x 涓篺alse 鎴栬卬il 鍒欑粰x 璧嬪垵濮嬪紇
x = x or v
絳変環(huán)浜?
if not x then
x = v
end
and 鐨勪紭鍏堢駭姣攐r 楂樸?br>
not 鐨勭粨鏋滀竴鐩磋繑鍥瀎alse 鎴栬卼rue
print(not nil) --> true
閫昏緫榪愮畻絎﹁涓篺alse 鍜宯il 鏄亣錛坒alse錛夛紝鍏朵粬涓虹湡錛? 涔熸槸true.
and 鍜宱r 鐨勮繍綆楃粨鏋滀笉鏄痶rue 鍜宖alse錛岃屾槸鍜屽畠鐨勪袱涓搷浣滄暟鐩稿叧銆?
a and b -- 濡傛灉a涓篺alse錛屽垯榪斿洖a錛屽惁鍒欒繑鍥瀊
a or b -- 濡傛灉a涓簍rue錛屽垯榪斿洖a錛屽惁鍒欒繑鍥瀊
渚嬪錛?
print(4 and 5) --> 5
print(nil and 13) --> nil
print(false and 13) --> false
print(4 or 5) --> 4
print(false or 5) --> 5
涓涓緢瀹炵敤鐨勬妧宸э細(xì)濡傛灉x 涓篺alse 鎴栬卬il 鍒欑粰x 璧嬪垵濮嬪紇
x = x or v
絳変環(huán)浜?
if not x then
x = v
end
and 鐨勪紭鍏堢駭姣攐r 楂樸?
C 璇█涓殑涓夊厓榪愮畻絎?
a ? b : c
鍦↙ua 涓彲浠ヨ繖鏍峰疄鐜幫細(xì)
(a and b) or c
not 鐨勭粨鏋滀竴鐩磋繑鍥瀎alse 鎴栬卼rue
print(not nil) --> true
print(not false) --> true
print(not 0) --> false
print(not not nil) --> false
榪炶繛鎺ユ帴榪愯繍綆楃畻絎︾
.. --涓や釜鐐?
瀛楃涓茶繛鎺ワ紝濡傛灉鎿嶄綔鏁頒負(fù)鏁板瓧錛孡ua 灝嗘暟瀛楄漿鎴愬瓧絎︿覆銆?
print("Hello " .. "World") --> Hello World
print(0 .. 1) --> 01
w = {x=0, y=0, label="console"}
x = {sin(0), sin(1), sin(2)}
w[1] = "another field"
x.f = w
print(w["x"]) --> 0
print(w[1]) --> another field
print(x.f[1]) --> another field
w.x = nil -- remove field "x"
鍦ㄦ瀯閫犲嚱鏁頒腑鍩熷垎闅旂閫楀彿錛?,"錛夊彲浠ョ敤鍒嗗彿錛?;"錛夋浛浠o紝閫氬父鎴戜滑浣跨敤鍒嗗彿鐢ㄦ潵
鍒嗗壊涓嶅悓綾誨瀷鐨勮〃鍏冪礌銆?
{x=10, y=45; "one", "two", "three"}
print(not false) --> true
print(not 0) --> false
print(not not nil) --> false
絎? 绔?nbsp; 鍩烘湰璇硶
Lua 鍙互瀵瑰涓彉閲忓悓鏃惰祴鍊鹼紝鍙橀噺鍒楄〃鍜屽煎垪琛ㄧ殑鍚勪釜鍏冪礌鐢ㄩ楀彿鍒嗗紑錛岃祴鍊艱
鍙ュ彸杈圭殑鍊間細(xì)渚濇璧嬬粰宸﹁竟鐨勫彉閲忋?
a, b = 10, 2*x <--> a=10; b=2*x
閬囧埌璧嬪艱鍙ua 浼?xì)鍏堣绠楀弻櫨规墍鏈夌殑鍊肩劧鍚庡啀鎵ц璧嬪兼搷浣滐紝鎵浠ユ垜浠彲浠ヨ繖鏍?br>榪涜浜ゆ崲鍙橀噺鐨勫鹼細(xì)
x, y = y, x -- swap 'x' for 'y'
a[i], a[j] = a[j], a[i] -- swap 'a[i]' for 'a[i]'
褰撳彉閲忎釜鏁板拰鍊肩殑涓暟涓嶄竴鑷存椂錛孡ua 浼?xì)涓鐩翠互鍙橀噺涓暟涓哄熀紜閲囧彇浠ヤ笅絳栫暐錛?
a. 鍙橀噺涓暟>鍊肩殑涓暟 鎸夊彉閲忎釜鏁拌ˉ瓚硁il
b. 鍙橀噺涓暟<鍊肩殑涓暟 澶氫綑鐨勫間細(xì)琚拷鐣?
渚嬪錛?
a, b, c = 0, 1
print(a,b,c) --> 0 1 nil
a, b = a+1, b+1, b+2 -- value of b+2 is ignored
print(a,b) --> 1 2
a, b, c = 0
print(a,b,c) --> 0 nil nil
澶氬艱祴鍊肩粡甯哥敤鏉ヤ氦鎹㈠彉閲忥紝鎴栧皢鍑芥暟璋冪敤榪斿洖緇欏彉閲忥細(xì)
a, b = f()
f()榪斿洖涓や釜鍊鹼紝絎竴涓祴緇檃錛岀浜屼釜璧嬬粰b銆?br>
鎴戜滑緇檅lock 鍒掑畾涓涓槑紜殑鐣岄檺錛歞o..end 鍐呯殑閮ㄥ垎銆?br>
鎺у埗緇撴瀯鐨勬潯浠惰〃杈懼紡緇撴灉鍙互鏄換浣曞鹼紝Lua 璁や負(fù)false 鍜宯il 涓哄亣錛屽叾浠栧間負(fù)鐪熴?
repeat-until 璇彞錛?br>repeat
statements;
until conditions;
鏈夋椂鍊欎負(fù)浜?jiǎn)璋冭瘯鎴栬呭叾浠栫洰鐨勯渶瑕佸湪block 鐨勪腑闂翠嬌鐢╮eturn 鎴栬卋reak錛屽彲浠ユ樉寮?br>鐨勪嬌鐢╠o..end 鏉ュ疄鐜幫細(xì)
function foo ()
return --<< SYNTAX ERROR
-- 'return' is the last statement in the next block
do return end -- OK
... -- statements not reached
end
璋冪敤鍑芥暟鐨勬椂鍊欙紝濡傛灉鍙傛暟鍒楄〃涓虹┖錛屽繀欏諱嬌鐢?)琛ㄦ槑鏄嚱鏁拌皟鐢ㄣ?
print(8*9, 9/8)
a = math.sin(3) + math.cos(10)
print(os.date())
涓婅堪瑙勫垯鏈変竴涓緥澶栵紝褰撳嚱鏁板彧鏈変竴涓弬鏁板茍涓旇繖涓弬鏁版槸瀛楃涓叉垨鑰呰〃鏋勯犵殑鏃?br>鍊欙紝()鏄彲閫夌殑錛?
print "Hello World" <--> print("Hello World")
dofile 'a.lua' <--> dofile ('a.lua')
print [[a multi-line <--> print([[a multi-line
message]] message]])
f{x=10, y=20} <--> f({x=10, y=20})
type{} <--> type({})
Lua 鍑芥暟瀹炲弬鍜屽艦鍙傜殑鍖歸厤涓庤祴鍊艱鍙ョ被浼鹼紝澶氫綑閮ㄥ垎琚拷鐣ワ紝緙哄皯閮ㄥ垎鐢╪il 琛ヨ凍銆?
function f(a, b) return a or b end
CALL PARAMETERS
f(3) a=3, b=nil
f(3, 4) a=3, b=4
f(3, 4, 5) a=3, b=4 (5 is discarded)
Lua 鍑芥暟涓紝鍦╮eturn 鍚庡垪鍑?guó)櫐仒q斿洖鐨勫煎緱鍒楄〃鍗沖彲榪斿洖澶氬鹼紝濡傦細(xì)
function maximum (a)
local mi = 1 -- maximum index
local m = a[mi] -- maximum value
for i,val in ipairs(a) do
if val > m then
mi = i
m = val
end
end
return m, mi
end
print(maximum({8,10,23,12,5})) --> 23 3
Lua 鎬繪槸璋冩暣鍑芥暟榪斿洖鍊肩殑涓暟鍘婚傜敤璋冪敤鐜錛屽綋浣滀負(fù)涓涓鍙ヨ皟鐢ㄥ嚱鏁版椂錛屾墍
鏈夎繑鍥炲艱蹇界暐銆傚亣璁炬湁濡備笅涓変釜鍑芥暟錛?
function foo0 () end -- returns no results
function foo1 () return 'a' end -- returns 1 result
function foo2 () return 'a','b' end -- returns 2 results
絎竴錛屽綋浣滀負(fù)琛ㄨ揪寮忚皟鐢ㄥ嚱鏁版椂錛屾湁浠ヤ笅鍑犵鎯呭喌錛?
1. 褰撹皟鐢ㄤ綔涓鴻〃杈懼紡鏈鍚庝竴涓弬鏁版垨鑰呬粎鏈変竴涓弬鏁版椂錛屾牴鎹彉閲忎釜鏁板嚱鏁板敖鍙兘
澶氬湴榪斿洖澶氫釜鍊鹼紝涓嶈凍琛il錛岃秴鍑?guó)檲嶅巺R?
2. 鍏朵粬鎯呭喌涓嬶紝鍑芥暟璋冪敤浠呰繑鍥炵涓涓鹼紙濡傛灉娌℃湁榪斿洖鍊間負(fù)nil錛?
x,y = foo2() -- x='a', y='b'
x = foo2() -- x='a', 'b' is discarded
x,y,z = 10,foo2() -- x=10, y='a', z='b'
x,y = foo0() -- x=nil, y=nil
x,y = foo1() -- x='a', y=nil
x,y,z = foo2() -- x='a', y='b', z=nil
x,y = foo2(), 20 -- x='a', y=20
x,y = foo0(), 20, 30 -- x='nil', y=20, 30 is discarded
絎簩錛屽嚱鏁拌皟鐢ㄤ綔涓哄嚱鏁板弬鏁拌璋冪敤鏃訛紝鍜屽鍊艱祴鍊兼槸鐩稿悓銆?
print(foo0()) -->
print(foo1()) --> a
print(foo2()) --> a b
print(foo2(), 1) --> a 1
print(foo2() .. "x") --> ax
絎笁錛屽嚱鏁拌皟鐢ㄥ湪琛ㄦ瀯閫犲嚱鏁頒腑鍒濆鍖栨椂錛屽拰澶氬艱祴鍊兼椂鐩稿悓銆?
a = {foo0()} -- a = {} (an empty table)
a = {foo1()} -- a = {'a'}
a = {foo2()} -- a = {'a', 'b'}
a = {foo0(), foo2(), 4} -- a[1] = nil, a[2] = 'a', a[3] = 4
鍙﹀錛宺eturn f()榪欑綾誨瀷鐨勮繑鍥瀎()榪斿洖鐨勬墍鏈夊?
function foo (i)
if i == 0 then return foo0()
elseif i == 1 then return foo1()
elseif i == 2 then return foo2()
end
end
print(foo(1)) --> a
print(foo(2)) --> a b
print(foo(0)) -- (no results)
print(foo(3)) -- (no results)
鍙互浣跨敤鍦嗘嫭鍙峰己鍒朵嬌璋冪敤榪斿洖涓涓箋?
print((foo0())) --> nil
print((foo1())) --> a
print((foo2())) --> a