// 當犛牛靠近時向右移動10米來躲避 // 躲避4頭犛牛完成此關 while(true) { // 獲取英雄當前位置的x和y坐標。 var x = hero.pos.x; var y = hero.pos.y; // 找到最近的耗牛。 var yak = hero.findNearestEnemy(); // 使用 "if" 來判斷在犛牛離你 10 公尺以內時,英雄才會移動 if (hero.distanceTo(yak) < 10) { // 向右移動,在英雄位置的x坐標值基礎上加10。 hero.moveXY(x+10, y); // 使用moveXY(x, y)來移動! } }
綠洲
// 向綠洲移動 // 但要向左移動來躲避靠近的犛牛。 while(true) { var x = hero.pos.x; var y = hero.pos.y; var enemy = hero.findNearestEnemy(); if (enemy && hero.distanceTo(enemy) < 10) { // 從你的 X 座標減掉 10 來向左移動。 hero.moveXY(x-10, y); // 使用moveXY移動到新的x,y位置。 } else { // 從你的 X 座標加上 10 來向右移動。 hero.moveXY(x+10, y); // 使用moveXY移動到新的x,y位置。 } }
盆地的踐踏
// 嗯哼,踐踏!用你的狡黠抵達綠洲。 while(true) { var enemy = hero.findNearestEnemy(); var xPos = hero.pos.x + 5; var yPos = 17; if(enemy) { // 你只要向上或向下移動1公尺就可以閃躲犛牛! if(enemy.pos.y > hero.pos.y) { // 如果犛牛在你上面,調整 yPos 往下跑! hero.moveXY(xPos, yPos - 5); } else if (enemy.pos.y < hero.pos.y) { // 如果犛牛在你下面,調整 yPos 往上跑! hero.moveXY(xPos, yPos + 5); } } }
薩文路
// 到達綠洲。小心新的敵人:食人魔偵察兵! // 對你目前的 X 及 Y 座標加 10 ,來向右上移動。 while(true) { // 攻擊你看見的任何敵人 var enemy = hero.findNearestEnemy(); var xPos = hero.pos.x +10 var yPos = hero.pos.y +10 if (enemy) { hero.attack(enemy); } // 否則,繼續向右上移動。 else { hero.moveXY(xPos, yPos); } }
十字路口
// 在食人魔攻擊的方向放置火焰陷阱("fire-trap")。 while(true) { var enemy = hero.findNearestEnemy(); if(enemy) { // 如果敵人在英雄的左側: if(enemy.pos.x < hero.pos.x) { // 如果敵人從左邊進攻,那就在左邊建置火焰陷阱("fire-trap")。 hero.buildXY("fire-trap", 25, 34); // 如果敵人在英雄的右側: } else if (enemy.pos.x > hero.pos.x) { // 如果敵人從右邊進攻,那就在右邊建置火焰陷阱("fire-trap")。 hero.buildXY("fire-trap", 55, 34); // 如果敵人在英雄下面。 } else if (enemy.pos.y < hero.pos.y) { // 如果敵人從下面進攻,那就在下面建置火焰陷阱("fire-trap")。 hero.buildXY("fire-trap", 40, 19); // 如果敵人在英雄上面。 } else if (enemy.pos.y > hero.pos.y) { // 如果敵人從上面進攻,那就在上面建置火焰陷阱("fire-trap")。 hero.buildXY("fire-trap", 40, 49); } } // 移動回中心。 hero.moveXY(40, 34); }
雷蹄
// 抵達綠洲 // 用柵欄"fence"擋住犛牛的道路並繼續前進 while(true) { var yak = hero.findNearestEnemy(); if (yak) { // 犛牛在你上面,可以用 if 犛牛的 y 座標大於你的 y 座標來判斷 if (yak.pos.y > hero.pos.y) { // 假如有犛牛在你上面,在犛牛下面 10 公尺建造一個柵欄"fence" hero.buildXY("fence", yak.pos.x, yak.pos.y - 10); } // 否則: if (yak.pos.y < hero.pos.y) { // 假如有犛牛在你下面,在犛牛上面 10 公尺建造一個柵欄"fence" hero.buildXY("fence", yak.pos.x, yak.pos.y + 10); } } else { // 向右移動 10 公尺前往綠洲 hero.moveXY(hero.pos.x + 10, hero.pos.y); } }
操弄 'Killdeer'
// 引誘食人魔掉入陷阱。 // 這些食人魔只會追殺受重傷的英雄。 // 此功能可以檢查英雄的血量和傳回一個布林值。 // 並返回一個布爾型(Boolean)的值。 function shouldRun() { if (hero.health < hero.maxHealth / 2) { return true; } else { return false; } } while (true) { var enemy = hero.findNearestEnemy(); // 使用 shouldRun() 撤退到 X標誌。 true if (shouldRun()) { hero.moveXY(75, 37); } // 否則,奮戰! else { hero.attack(enemy); } }
醫療注意
// 當你生命值少於一半時,請求醫療人員的治療。 while(true) { var currentHealth = hero.health; var healingThreshold = hero.maxHealth / 2; var enemy = hero.findNearestEnemy(); // 如果你當前的健康值少於下限, // move to the healing point and say, "heal me". // 否則的話,攻擊。你需要戰鬥的更狠點! if (hero.health < healingThreshold) { hero.moveXY(65, 46); hero.say("heal me"); } else if (enemy) { hero.attack(enemy); }{ } }
跟上時間
// 使用你的新技能來選擇你要做什麼 hero.time while(true) { var enemy = hero.findNearestEnemy(); var item = hero.findNearestItem() // 如果時間在10秒內,攻擊 if (hero.time < 10 && enemy) { hero.attack(enemy); } // 反之,如果是前35秒,收集金幣。 else if (hero.time < 35 && item) { hero.moveXY(item.pos.x, item.pos.y); } // 在35秒後,加入襲擊部隊! else { hero.attack(enemy); } }
囤積黃金
// 收集25金幣,然後告訴 Naria 總數 // 當金幣總數大於25,使用 break 來停止收集金幣。 var totalGold = 0; while(true) { var coin = hero.findNearestItem(); if(coin) { // 撿起金幣 hero.moveXY(coin.pos.x, coin.pos.y); // 將錢幣的價值加到 totalGold 裡。(導引提供更多提示) // 使用以下方法得到它的價值:: coin.value totalGold += coin.value; } if (totalGold >= 25) { // 這會中斷循環並且執行循環下面的語句 // 循環結束後,運行循環後的代碼。 break; } } // 完成收集金幣! hero.moveXY(58, 33); // 去告訴 Naria 你收集了多少金幣。 hero.say("你好 Naria,我收集了 " + totalGold + " 金幣!");
誘餌鑽
// 我們在測試一個新的戰鬥單位:誘餌。 // 創建4個誘餌,然後匯報給 Naria var decoysBuilt = 0; while(true) { var coin = hero.findNearestItem(); if(coin) { // 收集錢幣! hero.moveXY(coin.pos.x, coin.pos.y); } // 每個誘餌消費25個金幣。 // 來確認甚麼時候錢幣多於 25, 用 if (hero.gold >= 25) { // 用buildXY建造一個"decoy" hero.buildXY("decoy", hero.pos.x, hero.pos.y); // 製作進行時,要記得計算你製作的草人誘餌數量 decoysBuilt += 1; } if(decoysBuilt == 4) { // 當你創建了4個誘餌時跳出循環 break; } } hero.say("完成創建誘餌!"); hero.moveXY(14, 36); // 到 Naria 那裏並說 (say) 你製作了多少草人誘餌 hero.say("Naria我製作了" + decoysBuilt + "草人誘餌");
連續的鍊金術
// 誘騙口渴的敵人喝下毒藥, 或和敵人比賽, 看誰先搶到 Omarn Brewstone 法師 所蒸餾的水. // 使用`continue`來確認是否有敵人可以開始騙它喝毒藥 while(true) { var enemy = hero.findNearestEnemy(); var item = hero.findNearestItem(); // 如果沒有敵人, 不再進行後續的動作, 直接繼續下個迴圈 if(!enemy) { continue; } // 如果發現了敵人, 但法師尚未給予任何物品, 使用 `say` 請求法師, 並使用 `continue` 先進行下次迴圈, 等待法師. if(!item) { hero.say("給我點喝的!"); continue; } // 當有物品時, 使用 `if` 語句確認物品的類型, 如果是 毒藥 (`item.type == "poison"`), 不和怪物搶, 使用 continue 進行下個迴圈. if (item.type == "poison") { continue; } // 如果不是毒藥的話, 那就是水, 趕快去搶, 搶完後並回到原點 ( 你要記得原點的位置 ) // 使用moveXY移到藥水,然後回到起點! if (item.type != "poison") { hero.moveXY(item.pos.x, item.pos.y); hero.moveXY(34, 47); } }
雙臉頰
// 第一點,打敗6位ogres~ // 然後收集硬幣,直到你有 30 金幣。 // 變量用來對獸人計數 var defeatedOgres = 0; // 沒打敗6位獸人,就繼續打 while (defeatedOgres < 6) { var enemy = hero.findNearestEnemy(); if (enemy) { hero.attack(enemy); defeatedOgres += 1; } else { hero.say("獸人!"); } } // 移到地圖的右側。 hero.moveXY(49, 36); // 錢沒賺夠30塊,就繼續撿 while (hero.gold < 30) { // 尋找並收集金幣 var item = hero.findNearestItem(); hero.moveXY(item.pos.x, item.pos.y); // 去掉這行 say()。 } // 移動到出口。 hero.moveXY(76, 32);
沙漠戰役
// while循環重複直到條件為否。 var ordersGiven = 0; while (ordersGiven < 5) { // 在站場上移動和排列你的盟友。 (如果你是直接在他們面前,他們只能聽到你的。) hero.moveXY(hero.pos.x, hero.pos.y - 10); // 用 hero.say 命令你的盟友 "Attack!" (攻擊!) // 你只有站在X標誌上,他們才會聽你的命令。 hero.say("Attack!"); // 確保 ordersGiven 要加 1! ordersGiven += 1; } while(true) { var enemy = hero.findNearestEnemy(); // 當你下達完命令,立即加入戰鬥! hero.attack(enemy); }
塵埃
// 使用循環直到你有足夠的擊殺10個芒奇金人 var attacks = 0; while (attacks < 10) { // 攻擊最近的敵人! var enemy = hero.findNearestEnemy(); hero.attack(enemy); // 增量意味著增加1。 // 增加你的攻擊統計量。 attacks += 1; } // 當你完成後,撤退到伏擊點。 hero.say("I should retreat!"); // 別站在那兒說個不停!趕緊撤回伏擊點 hero.moveXY(79, 33);
別衝過去,安靜點
// 閃避大砲並收集 8 個寶石。 // 當心,大砲準備開火! // 以一個特殊的方式緩慢移動去迷惑敵人 // 這個函數必須回報 0 到 30 的值: function mod30(n) { if (n >= 30) { return n - 30; } else { return n; } } // 這一功能將會返回一個從0到40的值 function mod40(n) { // 使用一個 “if” 語句去返回正確的值 if (n >=40) { return n - 40 } else { return n; } } // 你不需要改變下面的代碼: while (true) { var time = hero.time; var x = mod30(time) + 25; var y = mod40(time) + 10; hero.moveXY(x, y); }
Z字行逃竄
// 從死亡峽谷逃出! // 使用真正的求餘函數走出Z字形路線。 // 該函數返回一個0到15之間的值: function mod15(n) { while (n >= 15) { n -= 15; } return n; } // 這個函數應該會反饋一個從0到9的值 function mod9(n) { // 在返回前使用 while 循環修改參數。 while(n >= 9) { n -=9 } return n; } // 不要更改以下代碼: while (true) { var time = hero.time; var x, y; if (time < 30) { y = 10 + 3 * mod15(time); } else { y = 20 + 3 * mod9(time); } x = 10 + time; hero.moveXY(x, y); }
最大公約數
// 計算秘密數字並進入寶庫。 // 這兩個人知道密碼的關鍵。 var friends = hero.findFriends(); var number1 = friends[0].secretNumber; var number2 = friends[1].secretNumber; // 只是為了確保第一個數字更大。 if (number2 > number1) { var swap = number1; number1 = number2; number2 = swap; } // 這是求gcd的簡單函數,但很慢。 function bruteforceGCD (a, b) { hero.say("樸素算法。"); var cycles = 0; // 我們枚舉了所有可能的除數。 var counter = b; while (true) { cycles++; if (cycles > 100) { hero.say("計算是困難的。我累了。"); break; } // 如果兩個數字都有"counter"除數。 if (a % counter === 0 && b % counter === 0) { break; } counter--; } hero.say("我使用了 " + cycles + " 周期"); return counter; } // 這是求出gcd的聰明方式。 function euclidianGCD (a, b) { var cycles = 0; while (b) { cycles++; var swap = b; b = a % b; a = swap; } hero.say("我使用了 " + cycles + " 周期"); return a; } // 也許你需要使用另一個函數? var secretNumber = euclidianGCD(number1, number2); // ∆ hero.moveXY(48, 34); hero.say(secretNumber); // 寶庫開了(希望如此)!進去! hero.moveXY(68, 34)
沙漠三角州
// 只攻擊在敵軍名稱(enemyNames)數組中的敵人 // 一定要按順序攻擊! 0→1→2→3 var enemyNames = ["Kog", "Godel", "Vorobun", "Rexxar"]; hero.attack(enemyNames[0]); hero.attack(enemyNames[1]); // 攻擊 enemyNames[2] hero.attack(enemyNames[2]); // 攻擊最後一個元素。 hero.attack(enemyNames[3]);
立方雷區
// 穿過雷區 // 這個函數返回乘以次數的數字。 function mult(number, times) { var total = 0; while (times > 0) { total += number; times--; } return total; } // 這個函數返回乘方的數字。 function power(number, exponent) { var total = 1; // 補全函數。 while(exponent > 0) { total *= number; exponent--; } return total; } // 別修改這些代碼 // 你可以在塔上找到方程的係數 var tower = hero.findFriends()[0]; var a = tower.a; var b = tower.b; var c = tower.c; var d = tower.d; var x = hero.pos.x; while (true) { // 用三次方程求路徑 var y = a * power(x, 3) + b * power(x, 2) + c * power(x, 1) + d * power(x, 0); hero.moveXY(x, y); x = x + 5; }
Sarven 救世主
// 一個數組(Array)就是物品的數列。 // 這個數組是一個朋友名字的數列。 var friendNames = ["Joan", "Ronan", "Nikita", "Augustus"]; // 數組從零開始計數,不是1! var friendIndex = 0; // 循環該數組中的每一個名字 // 使用.lenght 屬性來得到數組的長度。 while (friendIndex < friendNames.length) { // 使用方括號來獲得數組中的名字。 var friendName = friendNames[friendIndex]; // 告訴你的朋友回家。 // 使用+來連接兩個字符串。/* hero.say(friendName + ", go home!"); // 增加索引來獲取數組中的下一個名字 friendIndex += 1; } // 回去建造柵欄讓食人魔遠離。 hero.moveXY(26, 30); hero.buildXY("fence", 30, 30);
銀行突襲
// 等待獸人,擊敗他們並收集黃金。 while(true) { var enemies = hero.findEnemies(); // enemyIndex 用於迭代數組。 var enemyIndex = 0; // 當 enemyIndex 小於 enemies.length 時 while (enemyIndex < enemies.length) { // 攻擊索引為 enemyIndex 的敵人 var enemy = enemies[enemyIndex]; hero.attack(enemy); // 給 enemyIndex 加上 1。 enemyIndex++; } var coins = hero.findItems(); // coinIndex 用於迭代 coins 數組。 var coinIndex = 0; while (coinIndex < coins.length) { // 用 coinIndex 從 coins 數組得到一個金幣。 var coin = coins[coinIndex] // 收集那個金幣。 hero.moveXY(coin.pos.x, coin.pos.y); // 給 coinIndex 的值增加 1。 coinIndex++; } }
潛伏
// 用findEnemies把敵人存在數組enemies中 // 只攻擊薩滿巫師,不要攻擊犛牛! var enemies = hero.findEnemies(); var enemyIndex = 0; // 把這段代碼用一個while loop 功能循環遍歷所有的敵人 // 當 enemyIndex 小於 enemies 的長度時: while (enemyIndex < enemies.length) { var enemy = enemies[enemyIndex]; if (enemy.type == 'shaman') { while (enemy.health > 0) { hero.attack(enemy); } } // 記得增加 enemyIndex enemyIndex++; }
Sarven 牧羊人
// 使用 while 循環來對付食人魔。 while (true) { var enemies = hero.findEnemies(); var enemyIndex = 0; // 將攻擊邏輯放到 while 循環裡來攻擊所有的敵人。 // 用這個查找數組的長度: enemies.length while (enemyIndex < enemies.length) { var enemy = enemies[enemyIndex]; // "!=" 意思是 "不等於" if (enemy.type != "sand-yak") { // 當敵人的健康值大於0,攻擊它! while (enemy.health > 0) { hero.attack(enemy); } } enemyIndex++; } // 在兩波敵人之間,移動回中央。 hero.moveXY(40, 32); }
撿閃亮東西的人
// 很快的獲取最多的金幣 while(true) { var coins = hero.findItems(); var coinIndex = 0; // 把這個封裝進循環裡枚舉所有的硬幣 while(coinIndex < coins.length) { var coin = coins[coinIndex]; coinIndex += 1; } // 金幣價值3點。 if (coin.value == 3) { // 只撿金幣。 hero.moveXY(coin.pos.x, coin.pos.y); } }
瘋狂的 Maxer
// 優先殺掉最遠的敵人。 while(true) { var farthest = null; var maxDistance = 0; var enemyIndex = 0; var enemies = hero.findEnemies(); // 查看全部敵人,找出最遠的那個。 while (enemyIndex < enemies.length) { var target = enemies[enemyIndex]; enemyIndex += 1; // 是不是有敵人比我們能看到的最遠的敵人還要遠? var distance = hero.distanceTo(target); if (distance > maxDistance) { maxDistance = distance; farthest = target; } } if (farthest) { // 幹掉最遠的敵人! // 如果敵人血量大於0就保持攻擊。 while(farthest.health > 0) { hero.attack(farthest); } } }
沙蛇
// 這片區域佈滿了火焰陷阱。幸好我們之前派出了偵察員,他沿路在地上留下了寶石作為暗號,我們只需要順著最近的寶石走就能躲過這些陷阱。 // 沙漠峽谷似乎會干擾你使用眼鏡的findNearest技能! // 你需要自己找到離你最近的寶石。 while(true) { var coins = hero.findItems(); var coinIndex = 0; var nearest = null; var nearestDistance = 9999; // 搜索所有的寶石,找到離你最近的那一顆。 while(coinIndex < coins.length) { var coin = coins[coinIndex]; coinIndex++; var distance = hero.distanceTo(coin); // 如果寶石與你的距離小於“最近距離(nearestDistance)” if (distance < nearestDistance) { // 設置該寶石為離你最近的寶石 var nearest = coin // 設置該距離為“最近距離(nearestDistance)” var nearestDistance = distance } } // 如果找到離你最近的寶石,移動英雄島寶石的位置。你需要使用moveXY,不需要你抄近路,也不會踩到陷阱。 hero.moveXY(nearest.pos.x, nearest.pos.y) }
脆弱的士氣
// 你只有一個弓箭手,要發揮他的作用 // 這將返回一個最多生命值的敵人 function findStrongestEnemy(enemies) { var strongest = null; var strongestHealth = 0; var enemyIndex = 0; // 當 enemyIndex 少於敵人的長度 while(enemyIndex < enemies.length) { // 將enemy變量設置為enemies[enemyIndex] var enemy = enemies[enemyIndex]; // 如果 enemy.health 大於 strongestHealth if(enemy.health > strongestHealth) { // 將 strongest 賦值為 enemy // 將enemy.health賦值為strongestHealth strongest = enemy; strongestHealth = enemy.health; } // 讓 enemyIndex 遞增 enemyIndex += 1; } return strongest; } var enemies = hero.findEnemies(); var leader = findStrongestEnemy(enemies); if (leader) { hero.say(leader); }
一打寶石
// 打敗前來劫掠的食人魔,讓他們把金幣交出來! function findMostHealth(enemies) { var target = null; var targetHealth = 0; var enemyIndex = 0; while(enemyIndex < enemies.length) { var enemy = enemies[enemyIndex]; if(enemy.health > targetHealth) { target = enemy; targetHealth = enemy.health; } enemyIndex += 1; } return target; } function valueOverDistance(item) { return item.value / hero.distanceTo(item); } // 返回有最高 valueOverDistance(item) 的物品。 function findBestItem(items) { var bestItem = null; var bestValue = 0; var itemsIndex = 0; // 循環於 items 數組內。 // 發現這個物品的最高 valueOverDistance() while(itemsIndex < items.length) { var item = items[itemsIndex] var itemValue = valueOverDistance(item) if(itemValue > bestValue) { bestItem = item; bestValue = itemValue; } itemsIndex +=1; } return bestItem; } while(true) { var enemies = hero.findEnemies(); var enemy = findMostHealth(enemies); if(enemy && enemy.health > 15) { while(enemy.health > 0) { hero.attack(enemy); } } else { var coins = hero.findItems(); var coin = null; coin = findBestItem(coins); if(coin) { hero.moveXY(coin.pos.x, coin.pos.y); } } }
許願井
// 你需要104的金錢,不多也不少。 var less = "Nimis"; var more = "Non satis"; var requiredGold = 104; // 此函數計算所有的硬幣值的總和。 function sumCoinValues(coins) { var coinIndex = 0; var totalValue = 0; // 遍歷所有的金幣。 while (coinIndex < coins.length) { totalValue += coins[coinIndex].value; coinIndex++; } return totalValue; } function collectAllCoins() { var item = hero.findNearest(hero.findItems()); while (item) { hero.moveXY(item.pos.x, item.pos.y); item = hero.findNearest(hero.findItems()); } } while (true) { var items = hero.findItems(); // 獲得硬幣的總值 var goldAmount = sumCoinValues(items); // 如果有金幣,那麼金幣數目 (goldAmount) 不會是零 if (goldAmount !== 0) { // 如果 goldAmount 小於requiredGold if(goldAmount < requiredGold) { // 那就說“Non satis” hero.say(more); } else if(goldAmount > requiredGold){ // 如果 goldAmount 大於requiredGold hero.say(less); // 那麼說出"Nimis"。 } else { // 如果 “goldAmount” 等於 “requiredGold” collectAllCoins(); // 如果有剛好 104 金幣,就全部收集。 } } }
毒氣攻擊
// 計算所有食人魔的總生命值。 function sumHealth(enemies) { // 創建一個變量,將它設為0後開始運算 var totalHealth = 0; // 初始化循環索引為0 var enemyIndex = 0; // 雖然索引小於敵人數組的長度 while(enemyIndex < enemies.length) { // 將當前敵人的生命值添加到總生命值裡 totalHealth += enemies[enemyIndex].health; // 讓 index 遞增 enemyIndex ++; } return totalHealth; } // 使用加農炮來打敗食人魔。 var cannon = hero.findNearest(hero.findFriends()); // 加農炮可以穿透牆壁。 var enemies = cannon.findEnemies(); // 計算食人魔生命值的總和。 var ogreSummaryHealth = sumHealth(enemies); hero.say("使用 " + ogreSummaryHealth + " 克。");
公平之戰
// 直到你士兵的總生命值大於獸人的. // 在你的士兵取得優勢前不要發起進攻. // 此函數返回所有單位運行狀況的總和。 function sumHealth(units) { var totalHealth = 0; // 完成此功能: var unitIndex = 0; while(unitIndex < units.length) { totalHealth += units[unitIndex].health; unitIndex += 1; } return totalHealth; } while (true) { var friends = hero.findFriends(); var enemies = hero.findEnemies(); // 計算並比較你的士兵和獸人的總生命值. if (sumHealth(friends) <= sumHealth(enemies)) { hero.say("Wait"); } // 當你準備好後說“Attack”. else { hero.say("ATTACK!!!"); } }
Sarven 圍困
// 在可重複的挑戰中防守你的塔! // 如果你有20個金幣,就移動到X上建造一個士兵 function valueOverDistance(item) { return item.value / hero.distanceTo(item); } // 返回有最高 valueOverDistance(item) 的物品。 function findBestItem(items) { var bestItem = null; var bestValue = 0; var itemsIndex = 0; // 循環於 items 數組內。 // 發現這個物品的最高 valueOverDistance() while(itemsIndex < items.length) { var item = items[itemsIndex] var itemValue = valueOverDistance(item) if(itemValue > bestValue) { bestItem = item; bestValue = itemValue; } itemsIndex +=1; } return bestItem; } while(true) { if(hero.gold < 20) { var coins = hero.findItems(); var coin = null; coin = findBestItem(coins); if(coin) { hero.moveXY(coin.pos.x, coin.pos.y); } } else { var enemy = hero.findNearestEnemy(); if (enemy.pos.y < hero.pos.y) { hero.moveXY(84, 22); } else { hero.moveXY(84, 78); } } }
克隆衝突
processing...
沒有留言:
張貼留言