版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 筆記:大概從第五章開始 p95球員自身屬性/射門 p98獲得其他球員屬性/傳球動作 p100其他函數(shù) p113返回當(dāng)前環(huán)境信息函數(shù) p116我最近我去搶球 p117球員原子動作 p119 3種帶球速度 p120沒人防守快速帶球有人防守慢速 p122踢球/傳給最近隊友 p123移動到某點(diǎn)轉(zhuǎn)身體 p124截球 p132綜合策略(根本看不懂) p199 附錄linux基本操作 p203踢向某點(diǎn) p204帶球 p206射向球門 /帶球+傳球 p207 一些射門傳球時需要的函數(shù)參考P208 實驗內(nèi)容截球/要更改worldmodel.h p209左有人向右45度帶球反之課本5個實驗代碼:/ 1/VecP
2、osition posGoal(0,0);/踢到場中間/ 2/VecPosition posGoal =WM- getPosOpponentGoal();/3/VecPosition posGoal=WM-getPosOpponentGoal();/向球門方向慢速帶球/AngDeg ang=(posGoal-posAgent).getDirection(); /soc=dribble(ang,DRIBBLE_SLOW);/ 4/soc=kickTo(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent), SS-getBallSpeedMax()
3、+200);/最大速踢給最近球員/5/ soc=leadingPass(OBJECT_TEAMMATE_9,1);/踢給9號,誤差范圍119 / 19下載文檔可編輯/ 6/else if(posBall.getY()0) VecPosition pos(40,20); double speed=1.0; soc=kickTo(pos,speed);else VecPosition pos(40,-20); double speed=1.0; soc=kickTo(pos,speed); ACT-putCommandInQueue(soc);ACT-putCommandInQueue( turn
4、NeckToObject( OBJECT_BALL, soc ) );/球員在左踢到右反之。考試題目:/拿球后行為,利用已有Worldmodel(20) (playerteams.cpp大約130行位置改)(1) 在playOn模式下,拿到球以后朝前方快速帶球。 (p204中間)(2) 在PlayOn模式下,拿到球以后朝球門方向慢速帶球。 (參考p204中間要加kickto函數(shù),快速帶球改為慢速)(3) 在playOn模式下,拿到球以后把球圍繞自己身體逆時針轉(zhuǎn)。 (p206中間)(4) 在playOn模式下,拿到球后,有人逼搶(自身周圍7米范圍有至少1名對方球員),則把球踢到距離對手的另外一側(cè)
5、,安全帶球(如對手在右側(cè),把球踢到左側(cè),如對手仔左側(cè),把球踢到右側(cè))。 (5) playOn模式下,拿到球以后,有人逼搶,傳球給最近的隊友;否則向球門方向快速帶球。(if判斷+p122傳隊友)(6) 在playOn模式下,如果有人逼搶(自身周圍7米范圍有至少1名對方球員),則安全帶球;否則向球門方向快速帶球。 (p120下面)(7) 在PlayOn模式下,若前方?jīng)]有對方球員,則直接以最大速度向?qū)Ψ角騿T方射門(周期數(shù)為偶數(shù),球門的右側(cè)射門,周期為奇數(shù),向球門方向左側(cè)射門)。 (p96下面按周期射門+if判斷對手)(8) 在playOn模式下,拿到球后,在本方半場踢到球場中心點(diǎn);過了半場,快速帶球
6、到對方球門。 (9) 在PlayOn模式下,拿到球后,傳給最近的周圍沒人防守的隊友(沒有人防守以其周圍5米范圍是否有對方球員為準(zhǔn))腳下。(p122上+一條if判斷防守隊員)(10) 在playOn模式下,拿到球后,傳給最靠近自己的前方的沒人防守的隊友(判斷隊友身邊5米范圍是否有對方防守隊員)。 (p122中+一條if判斷防守隊員)(11) 在playOn模式下,拿到球后以后,在本方半場傳給次近的隊友;在對方半場,非10號球員傳球給10號球員,10號球員則快速向球門方向帶球。 (12) 在playOn模式下,如果在本方場,則朝前方慢速帶球,如果在對方半場,則朝球門快速帶球。(P96 上)獲得坐標(biāo)
7、,if判斷球員位置 + p119 上 帶球) (13) 在playOn模式下,拿到球后,如果是2號,則把球踢到左側(cè)邊線,如果是5號,則把球踢到右側(cè)邊線,并把脖子方向轉(zhuǎn)向球;其他球員則向前帶球。(球可踢+判斷球號是否為2,獲得球員號碼(p95 中)+絕對坐標(biāo),踢+)(14) 在playOn模式下,拿到球后,如果我是4號,則傳球給7號; 否則的話,傳球給最近的隊友;到對方禁區(qū)后以最大速度射向空隙大的球門一側(cè)。(判斷號碼,傳球,P209下 看不太懂,自求多福吧)(15) 在playOn模式下,垂直帶球。 (16) 在playOn模式下,拿到球后帶球到達(dá)球場中心,然后傳給最近的球員。(見頂部) (17
8、) 在playOn模式下,10號帶球前進(jìn),然后5號跟著10號一起前進(jìn),兩球員在同一水平線 上,且距離為5。 (18) 在playOn模式下,5號球員與拿球的對方球員的距離始終為5。 (19) 在playOn模式下,2號和4號一起去盯防對方拿球隊員 (20) 在playon模式下,如果是10號球員,在可踢球的狀態(tài)下,如果自身的x軸坐標(biāo)大于30,則直接朝著里對方球員遠(yuǎn)的球門點(diǎn)射門。(獲取坐標(biāo),兩個球門柱的周邊找人,人少踢哪邊)/拿球以后,需要自己添加WorldModel函數(shù)(12) (下面在三部分修改WorldModel.h 264行左右加類成員,WorldModel.cpp加聲明,playert
9、eams.cpp加應(yīng)用)defaltlscdkdeveloppwd當(dāng)前目錄cd主目錄rcsssmonitormkdir.新建文件夾touch.新建空文件.上層目錄mv.把.移動到.rm刪除rmdir刪除目錄tar-cvfa.taraaa創(chuàng)建tar壓縮文件chmod777*提升權(quán)限/拿球后行為,利用已有 Worldmodel(20) (1) 在 playOn 模式下,拿到球以后朝前方快速帶球。 AngDeg ang=0.0;soc=dribble(ang, DRIBBLE_FAST);(2) 在 PlayOn 模式下,拿到球以后朝球門方向慢速帶球。 AngDeg ang=(VecPosition
10、(52.5,0)-posAgent).getDirection(); soc=dribble(ang, DRIBBLE_SLOW);(3) 在 playOn 模式下,拿到球以后把球圍繞自己身體逆時針轉(zhuǎn)。 soc=kickBallCloseToBody(-120); (4) 在 playOn 模式下,拿到球后,有人逼搶(自身周圍 7 米范圍有至少1名對方球員),則把球踢到距離對手的另外一側(cè),安全帶球(如對手在右側(cè),把球踢到左側(cè),如對手仔左側(cè),把球踢到右側(cè))。 Circle cir(posAgent,7); int num=WM-getNrInSetInCircle(OBJECT_SET_OPPO
11、NENTS,cir) AngDeg ang=0;if(num0) if(WM-getGlobalPosition(WM-getClosestInSetTo(OBJECT_SET_OPPONENTS.posAgent)-posAgent).getDirection()=0) ang+=45; soc=dribble(ang, DRIBBLE_WITHBALL); else ang-=45; soc=dribble(ang, DRIBBLE_WITHBALL); elseAngDeg ang=(VecPosition(52.5,0)-posAgent).getDirection(); soc=dr
12、ibble(ang, DRIBBLE_WITHBALL); (5) 在 playOn 模式下,拿到球以后,有人逼搶,傳球給最近的隊友;否則向球門方向快速帶球。 Circle cir(posAgent,7); int num=WM-getNrInSetInCircle(OBJECT_SET_OPPONENTS,cir) if(num0) soc=leadingPass(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent) ,1); elseAngDeg ang=(VecPosition(52.5,0)-posAgent).getDirection
13、(); soc=dribble(ang, DRIBBLE_FAST); (6) 在 playOn 模式下,如果有人逼搶(自身周圍 7 米范圍有至少 1名對方球員),則安全帶球;否則向球門方向快速帶球。 Circle cir(posAgent,7); int num=WM-getNrInSetInCircle(OBJECT_SET_OPPONENTS,cir) AngDeg ang=(VecPositoin(52.5,0)-posAgent).getDirection();if(num0) soc=dribble(0,DRIBBLE_WITHBALL); else soc=dribble(ang
14、,DRIBBLE_FAST); (7) 在 PlayOn 模式下,若前方?jīng)]有對方球員,則直接以最大速度向?qū)Ψ角騿T方射門(周期數(shù)為偶數(shù),球門的右側(cè)射門,周期為奇數(shù),向球門方向左側(cè)射門)。 if(WM-isOpponentAtAngle(30,30)=false) VecPosition posGoal(PITCH_LENGTH/2.0, (-1+2*(WM-getCurrentCircle()%2)*0.4*SS-getGoalWidth(); soc=kickTo(posGoal,SS-getBallSpeedMax(); (8) 在 playOn 模式下,拿到球后,在本方半場踢到球場中心點(diǎn);
15、過了半場,快速帶球到對方球門。 if(WM-getBallPos().getX()getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent),5); int num=WM-getNrInSetInCircle(OBJECT_SET_OPPONENTS,cir); if(num=0) soc=leadingPass(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES, posAgent) ,1.0) ;else soc=dribble(0,DRIBBLE_WITHBALL); return soc;(10) 在 playOn
16、模式下,拿到球后,把球傳給最靠近自己的前方的沒人防守的隊友(判斷隊友身邊 5 米范圍是否有對方防守隊員)。 Circle cir(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent),5); int num=WM-getNrInSetInCircle(OBJECT_SET_OPPONENTS,cir);VecPosition diff=WM-getGlobalPosition(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent);AngDeg ang=(diff-posAgent).getDir
17、ection();if(num=0&ang=-90&anggetClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent) ,1.0);(11) 在 playOn 模式下,拿到球后以后,在本方半場傳給次近的隊友;在對方半場,非 10 號球員傳球給 10 號球員,10 號球員則快速向球門方向帶球。 if(WM-getBallPos().getX()getSecondClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent),1.0);if(WM-getBallPos().getX()=0) if(WM-getAgentObjectT
18、ype()!=OBJECT_TEANMATE_10) soc=leadingPass(OBJECT_TEANMATE_10 ,1.0)if(WM-getAgentObjectType()=OBJECT_TEANMATE_10) AngDeg ang=(VecPositoin(52.5,0)-posAgent).getDirection(); soc=dribble(ang,DRIBBLE_FAST); (12) 在 playOn 模式下,如果在本方半場,則朝前方慢速帶球,如果在對方半場,則朝球門快速帶球。 if(WM-getBallPos().getX()getBallPos().getX()
19、=0) AngDeg ang=(VecPositoin(52.5,0)-posAgent).getDirection(); soc=dribble(ang,DRIBBLE_FAST); (13) 在 playOn 模式下,拿到球后,如果是 2 號,則把球踢到左側(cè)邊線,如果是 5 號,則把球踢到右側(cè)邊線,并把脖子方向轉(zhuǎn)向球;其他球員則向前帶球。 if(WM-getAgentObjectType()=OBJECT_TEAMMATE_2) soc=kickTo(VecPosition(WM-getBallPos().getX(),-34),1.0);ACT-putCommandInQueue(tur
20、nNeckToObject(OBJECT_BALL,soc);else if(WM-getPlayerNumber()=5) soc=kickTo(VecPosition(WM-getBallPos().getX(),34),1.0);ACT-putCommandInQueue(turnNeckToObject(OBJECT_BALL,soc);else soc=dribble(0,DRIBBLE_WITHBALL); (14) 在 playOn 模式下,拿到球后,如果我是 4 號,則傳球給 7 號; 否則的話,傳球給最近的隊友;到對方禁區(qū)后以最大速度射向空 隙大的球門一側(cè)。if(WM-get
21、AgentObjectType()=OBJECT_TEANMATE_4) soc=leadingPass(OBJECT_TEAMMATE_7,1.0); elsesoc=leadingPass(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent) ,1.0) AngDeg ang=(VecPositoin(52.5,0)-posAgent).getDirection(); soc=dribble(ang,DRIBBLE_FAST);if(WM-isInTheirPenaltyArea(WM-getBallPos() if(WM-getGloba
22、lPosition(WM-getOppGoalieType().getY()getBallSpeedMax();else soc=kickTo(VecPosition(52.5,-6.0),SS-getBallSpeedMax(); (15) 在 playOn 模式下,垂直帶球。 if(WM-getBallPos().getY()getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent) ,1.0) (17) 在 playOn 模式下,10 號帶球前進(jìn),然后 5 號跟著 10 號一起前進(jìn),兩球員在同一水平線 上,且距離為 5。 /把球給10號,(134行)
23、if(WM-getAgentObjectType()!=OBJECT_TEANMATE_10) soc=leadingPass(OBJECT_TEAMMATE_10,1.0);soc=dribble(0,DRIBBLE_SLOW);/180行if(WM-getAgentObjectType()=OBJECT_TEAMMATE_5) VecPosition pos(WM-getBallPos().getX()-5,WM-getBallPos().getY()soc=moveToPos(pos,20); (18) 在playOn模式下, 5號球員與拿球的對方球員的距離始終為5。/180行 if(W
24、M-getAgentObjectType()=OBJECTTEAMMATE5)VecPosition pos(WM-getBallPos().getX()-5,WM-getBallPos().getY()soc=moveToPos(pos,20); (19) 在 playOn 模式下,2 號和 4 號一起去盯防對方拿球隊員 /180行 if(WM-getAgentObjectType()=OBJECTTEAMMATE2)VecPosition pos(WM-getBallPos().getX()-5,WM-getBallPos().getY()soc=moveToPos(pos,20);if(
25、WM-getAgentObjectType()=OBJECTTEAMMATE4)VecPosition pos(WM-getBallPos().getX(),WM-getBallPos().getY()-5)soc=moveToPos(pos,20);(20) 在 playon 模式下,如果是 10 號球員,在可踢球的狀態(tài)下,如果自身的 x 軸坐標(biāo)大于 30,則直接朝著里對方球員遠(yuǎn)的球門點(diǎn)射門。 if(WM-getAgentObjectType()!=OBJECT_TEAMMATE_10) soc=leadingPass(OBJECT_TEAMMATE_10,1.0);if(WM-getAge
26、ntObjectType()=OBJECT_TEAMMATE_10&posAgent.getX()30) soc=kickTo(VecPosition(52.5,0),PS-getPlayerWhenToTurnAngle(); ACT-putCommandInQueue( soc ); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); return soc;/拿球以后,需要自己添加 WorldModel 函數(shù)(12) (21) 在 playOn 模式下,拿球后傳球給更靠近對方球門的最近隊友。 soc=leadPass
27、(WM-getClosestInSetTo (OBJECTSETTEAMMATES, WM-getPosOpponentGoal(),1.0) (22) 在 playOn 模式下,拿球后,搜索前方-3030 之間距離自己 20 米內(nèi)是否有隊友,如果有則傳給該隊友,否則自己帶球。 Page 209;(23).在 playOn 模式下,如果在我方半場拿到球,則向中場線以最大的速度踢,如果在敵方半場拿到球,則向敵方球門處以最大的速度踢 if(WM-getBallPos().getX()0VecPosition pos(0,WM-grtBallPos().getY());soc=kickTo(pos,
28、SS-getBallSpeedMax();if(WM-getBallPos().getX()=0 soc=kickTo(VecPosition(52.5,0),SS- getBallSpeedMax();(24).在 playOn 模式下,如果是 9 號拿到球,則令 9 號和 10 號同時沖至敵方球門處,在球門前,9 號傳給 10 號,由 10 號進(jìn)行射門 /把球給9號,(134行)if(WM-getAgentObjectType()!=OBJECT_TEANMATE_9) soc=leadingPass(OBJECT_TEAMMATE_9,1.0); AngDeg ang=(VecPosit
29、oin(52.5,0)-posAgent). getDirection(); soc=dribble(ang,DRIBBLE_FAST);if(WM-isInTheirPenaltyArea(WM-getBallPos() soc=leadingPass(OBJECT_TEAMMATE_10,1.0);if(WM-getAgentObjectType()=OBJECT_TEANMATE_10) soc=kickTo(VecPosition(52.5,0),SS-getBallSpeedMax(); /180行if(WM-getAgentObjectType()=OBJECT_TEANMATE_
30、10)soc=kickTo(VecPosition(52.5,0),SS-getBallSpeedMax();(25).在 playOn 模式下,如果我是 4 號球員并且拿到了球,則傳給 7號球員,同時 7 號球員再傳給 9 號球員,9 號球員繼續(xù)以最大速度沖到球門處射門。if(WM-getPlayerNumber()=4&WM-isBallKickable() soc=leadingPass(OBJECT_TEAMMATE_7,1); if(WM-getPlayerNumber()=7&WM-isBallKickable() soc=leadingPass(OBJECT_TEAMMATE_9
31、,1); if(WM-getPlayerNumber()=9&WM-isBallKickable() soc=moveToPos(VecPosition(40,0),1); soc=ShootToGoalex(OBJECT_GOAL_L); ACT-putCommandInQueue(soc); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); (26)在 playon 模式下,求出 y 軸等于 0 的兩側(cè)的對方球員數(shù)量,將球傳向?qū)κ稚俚囊环?,并?x 軸值最大的隊友。twopart Rect *p1,*p2; Obj
32、ectT pret; p1-setRectanglePoints(WM-getGlobalPosition(OBJECT_FLAG_L_T),WM-getGlobalPosition(OBJECT_FLAG_R_0); p2-setRectanglePoints(WM-getGlobalPosition(OBJECT_FLAG_L_B),WM-getGlobalPosition(OBJECT_FLAG_R_0);if(WM-getNrInSetInRectangle(OBJECT_SET_OPPONENTS,p1)WM-getNrInSetInRectangle(OBJECT_SET_OPPO
33、NENTS,p2) if(WM-getAgentGlobalPosition().getY()0) if(WM-getAgentObjectType()=WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,OBJECT_LINE_R) pret=WM-getAgentObjectType(); (27)在 playon 模式下,如果自身 7 米范圍內(nèi)有兩個或兩個以上的對手的話,則傳球到 x 軸值最大的隊友。if(WM-isBallKickable() Circle cir(posAgent,7); int num=WM-getNrInSetInCircle(OB
34、JECT_SET_OPPONENTS,cir); if(num=2) ObjectT ClosestG; ClosestG=WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,VecPosition(52.5,0); soc=leadingPass(ClosestG,1); ACT-putCommandInQueue(soc); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); (28)在 playon 模式下,求出己方的越位線,存在可以踢球的隊友的話,如果自身是 10 號。那么 10
35、球員垂直跑向越位線的 x 軸值-2米,y 軸不變的點(diǎn)。 (29)在 playon 的模式下,求出球運(yùn)動方向的直線方程,并且求出自己到該直線的距離,如果距離小于 4 的話,那么就垂直跑向該條直線。 (30)在 playon 的模式下,如果是自己可以踢球的狀態(tài)下,如果自身 7 米內(nèi)沒有對方球員的話,則快熟帶球,帶球方向是朝著點(diǎn)(53,0)方向。if(WM-isBallKickable() Circle cir(posAgent,7); int num=WM-getNrInSetInCircle(OBJECT_SET_OPPONENTS,cir); if(num=0) AngDeg angDribb
36、le=(VecPosition(53.0,0)-posAgent).getDirection(); soc=dribble(angDribble,DRIBBLE_FAST); ACT-putCommandInQueue(soc); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); (31)在 playon 的模式下,如果距離球最近的是我方隊友的話,如果我的 x 坐標(biāo)小于 30 的話,并且我是 10 號,那么我跑向球的坐標(biāo)加上(0,10)的坐標(biāo)位置。 (32)在 playon 的模式下,發(fā)現(xiàn)前方?jīng)]有隊友的時候,如果自身
37、5米內(nèi)有兩個及兩個以上的對手的話,那么將球傳給最近的隊友。 /其他比賽模式下,進(jìn)攻行為(8) 33 在本方角球模式下,如果自己是 10 號球員,則跑向角球點(diǎn),并開球(球可踢,則踢球給 9 號);如果自己是 9 號球員,則跑向距離角球點(diǎn)附近(隨機(jī)選一點(diǎn)),準(zhǔn)備接應(yīng)球,其他球員跑本位點(diǎn). else if(WM-isCornerKickUs() if(WM-getPlayerNumber()=10) soc=moveToPos(posBall,PS-getPlayerWhenToTurnAngle(); kickTo(OBJECT_TEAMMATE_9,1); if(WM-getPlayerNumb
38、er()=9) soc=moveToPos(posBall+VecPosition(3,-3),PS-getPlayerWhenToTurnAngle(); else if(WM-getPlayerNumber()!=10|WM-getPlayerNumber()!=9) soc=moveToPos(posAgent,PS-getPlayerWhenToTurnAngle(); ACT-putCommandInQueue( soc ); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); return soc; 34 在
39、本方邊線球模式下,如果自己是距離球最近的隊員,跑向球;并開球(球在自己腳下則把球傳給最近的隊友)。else if(WM-isOffsideUs() if(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posBall)=WM-getAgentObjectType() soc=moveToPos(posBall,1); if(WM-isBallKickable() soc=kickTo(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent),SS-getBallSpeedMax(); ACT-putCommand
40、InQueue( soc ); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); return soc; 35 在本方邊線球模式下,在本方半場左側(cè),則由 2 號去發(fā);如果是本方半場右側(cè),則由 5 號去發(fā);球在 2 號或者 5 號腳下,則踢向距離自己最近的隊友。else if(WM-isOffsideUs() Circle cir(posBall,20); double dist; ObjectT obj=WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,WM-getAgentObjec
41、tType(),&dist); VecPosition posTea=WM-getGlobalPosition(obj); if(WM-getBallPos().getY()0) if(WM-getPlayerNumber()=2) soc=moveToPos(posBall,PS-getPlayerWhenToTurnAngle(); else if(WM-getBallPos().getY()getPlayerNumber()=5) soc=moveToPos(posBall,PS-getPlayerWhenToTurnAngle(); if(WM-isBallKickable()&(WM
42、-getPlayerNumber()=2|WM-getPlayerNumber()=5) soc=kickTo(posTea,SS-getBallSpeedMax(); ACT-putCommandInQueue( soc ); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); return soc; 36.在本方邊線球的模式下,如果我是距離第二近的隊友的話,那么我也跑朝著球的位置跑,直到距離球 7 米的范圍。else if(WM-isOffsideUs() Circle cir(posBall,20); double
43、 dist; ObjectT obj=WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,WM-getAgentObjectType(),&dist); VecPosition posTea=WM-getGlobalPosition(obj); if(WM-getSecondClosestInSetTo(OBJECT_SET_TEAMMATES_NO_GOALIE,posBall)=WM-getAgentObjectType() soc=moveToPos(posBall+VecPosition(-7,-7),1); ACT-putCommandInQueue(
44、soc); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); return soc; 37 在本方邊線球的模式下,如果我是 4 號的話,并且距離球最近的隊友不是我,那么我將跑向球的坐標(biāo)加上(5,0)的位置上去。 else if(WM-isOffsideUs() if(WM-getPlayerNumber()=4) if(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES_NO_GOALIE,posBall)!=WM-getAgentObjectType() soc=moveToPos(p
45、osBall+VecPosition(5,0),1); ACT-putCommandInQueue(soc); ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); return soc; 38 在本方邊線球的模式下,如果我是距離球第二近的隊友,那么我跑向距離球 12 米的范圍內(nèi),并且距離對方球門點(diǎn)(53,0)最近的點(diǎn)。 39 在本方邊線球的模式下,距離球最近的隊果我不是距離球第二近的隊友,那么我向自身向量(5,0)的方向跑去。else if(WM-isOffsideUs() Circle cir(posBall,20);
46、 double dist; ObjectT obj=WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,WM-getAgentObjectType(),&dist); VecPosition posTea=WM-getGlobalPosition(obj); if(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES_NO_GOALIE,posBall)=WM-getAgentObjectType() soc=moveToPos(posBall,1); else if(WM-getSecondClosestInSetTo(OBJEC
47、T_SET_TEAMMATES,posBall)!=WM-getPlayerType() soc=moveToPos(posAgent+VecPosition(5,0),1); ACT-putCommandInQueue(soc); return soc; 40 在本方邊線球的模式下,距離球最近的隊友跑向球并開球,如果我不是距離球第二近的隊友,那么求出距離球第二近的隊友的坐標(biāo)加友跑向球并開球,如上(10,5)的點(diǎn)跑。如果該點(diǎn)在球場內(nèi),則跑向該點(diǎn)。/*else if(WM-isOffsideUs() if(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES_NO_
48、GOALIE,posBall)=WM-getAgentObjectType()/璺戝悜鐞 soc=moveToPos(posBall,1); else if(WM-getSecondClosestInSetTo(OBJECT_SET_TEAMMATES,posBall)!=WM-getPlayerType() WM-getSecondClosestInSetTo(OBJECT_SET_TEAMMATES,posBall); soc=moveToPos(posAgent+VecPosition(5,0),1); ACT-putCommandInQueue(soc); ACT-putCommand
49、InQueue( turnNeckToObject( OBJECT_BALL, soc ) ); return soc; /playOn 模式下,防守行為(5) 41 在 playOn 模式下,如果對方 10 號拿球,如果我是 2、3、4 號,則去盯防 10 號 if(WM-getOppGoalieType()=OBJECT_OPPONENT_10)if(WM-getPlayerType()=OBJECT_TEAMMATE_2|WM-getPlayerType()=OBJECT_TEAMMATE_3|WM-getPlayerType()=OBJECT_TEAMMATE_4)soc=mark(OBJECT_OPPONENT_10,0.0,MARK_BALL); ACT-putCommandInQueue(soc);ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); 42 在 playOn 模式下,如對方 9 號拿球,我方 2、3、4 號距離球最近的球員去盯防 9 號,其他隊員盯防距離自己最近的對方球員 Obje
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024微股東眾籌入股教育培訓(xùn)機(jī)構(gòu)入股協(xié)議2篇
- 2024版本個人掛靠建筑業(yè)務(wù)協(xié)議模板版B版
- 2025標(biāo)識技術(shù)升級改造項目采購合同3篇
- 2024校園交通安全管理合同
- 浙大城市學(xué)院《信息化開發(fā)與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 工商財稅知識培訓(xùn)課件
- 實體店裝修知識培訓(xùn)課件
- 評優(yōu)評先制度的建立與運(yùn)行計劃
- 2024年鍋爐銷售渠道合作協(xié)議
- 環(huán)保行動學(xué)生實踐模板
- (高清版)DZT 0284-2015 地質(zhì)災(zāi)害排查規(guī)范
- 駕駛員勞務(wù)派遣車輛管理方案
- 山東省濟(jì)南市市中區(qū)2022-2023學(xué)年二年級上學(xué)期期末數(shù)學(xué)試卷
- CSCO胃癌診療指南轉(zhuǎn)移性胃癌更新解讀
- 充電樁建設(shè)項目預(yù)算報告
- 《網(wǎng)絡(luò)安全等級保護(hù)條例》
- 宜昌市夷陵區(qū)2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)評估卷(含答案)
- 企劃品宣部人員架構(gòu)及職責(zé)
- 高效復(fù)習(xí)+期末動員+高二上學(xué)期考前動員主題班會
- 鉛鋅礦資源的勘查與儲量評估
- 非遺傳統(tǒng)手工藝教學(xué)總結(jié)
評論
0/150
提交評論