游戏编程“javascript语言”关卡代码交流持续更新---森林
codecombat吧
全部回复
仅看楼主
level 1
森林-森林保卫战
// 建立两个围栏保护村民
// 把鼠标放在地图上得到X,Y坐标
hero.buildXY("fence", 40, 52);
hero.buildXY("fence", 40, 20);
2017年06月30日 00点06分 1
level 1
森林-羊肠小道
// 到小路的尽头去,并在那儿修一个栅栏。
// 利用你的 moveXY(x, y)坐标移动功能。
// It's the first point of the path.
hero.moveXY(36, 59);
// Move at the next points of the path.
hero.moveXY(37, 13);
// Build a fence to stop the ogre.
hero.moveXY(74, 17);
hero.buildXY("fence", 72, 25);
2017年06月30日 00点06分 2
level 1
丛林里的隔间
// 在丛林里头探索,但务必提高警觉!
// 这些丛林角落隔间可能会藏有ogres!
hero.moveXY(19, 33);
var enemy = hero.findNearestEnemy();
// 条件判断式将会检查该变数是否参考到一个ogre
if(enemy) {
hero.attack(enemy);
hero.attack(enemy);
}
hero.moveXY(49, 51);
var enemy = hero.findNearestEnemy();
if(enemy) {
// 在这里撰写攻击敌人指令
hero.attack(enemy);
hero.attack(enemy);
}
hero.moveXY(58, 14);
var enemy = hero.findNearestEnemy();
// 使用条件判断式来确认敌人是否存在
if (enemy) {
// 如果敌人存在就攻击他
hero.attack(enemy);
hero.attack(enemy);
}
2017年06月30日 00点06分 3
level 1
IF-STRAVAGANZA
// 消灭从他们自己的营地里出来的食人魔
while(true) {
var enemy = hero.findNearestEnemy();
// 使用一个 “if” 语句去检查是否有敌人存在:
if (enemy) {
// 攻击敌人如果它存在的话
hero.attack(enemy);
hero.attack(enemy);
}
}
2017年06月30日 00点06分 4
level 1
背靠背
// 呆在中间防守!
while(true) {
var enemy = hero.findNearestEnemy();
if (enemy) {
// 亦或主动出击...
hero.attack(enemy);
}
else {
// 亦或回到你的阵地防守。
hero.say("我看不到敌人");
hero.moveXY(40, 35);
}
}
2017年06月30日 00点06分 5
level 1
森林劈裂者
// 尽可能经常使用你的新技能“cleave”
hero.moveXY(23, 23);
while(true) {
var enemy = hero.findNearestEnemy();
if (hero.isReady("cleave")) {
// “Cleave”掉敌人!
hero.cleave(enemy);
}
else {
// 否则(如果“cleave”还没准备好),就用你的普通攻击
hero.attack(enemy);
}
}
2017年06月30日 00点06分 6
level 1
边远地区的对峙
// 这些曼切堪食人魔害怕英雄!
// 说些什么,他们会吓得往后退。
// 但是,有足够的曼切堪食人魔,他们将联合起来伏击你!小心!
// 每当`cleave`(横劈)冷却时间完成,立即用它清除敌人。
var enemy = hero.findNearestEnemy();
while(true) {
// 使用 ‘isReady’ 中的一个 “if-statement” 的语句来检查 “cleave”
if (hero.isReady("cleave")) {
// 劈斩!
hero.cleave(enemy);
}
else {
// 或者,如果 cleave 还没准备好的话:
// 说一点什么来吓走曼切堪食人魔
hero.say("BOO");
}
2017年06月30日 00点06分 7
level 1
测距仪
// 瘦人正在森林里头巡逻!
// 使用distanceTo方法来计算敌人与英雄间的距离
// 说出每个敌人和英雄间的距离以告知大砲要轰炸哪里
var enemy1 = "Gort";
var distance1 = hero.distanceTo(enemy1);
hero.say(distance1);
var enemy2 = "Smasher";
var distance2 = hero.distanceTo(enemy2);
// 将distance2变数作为参数,传入say()方法
hero.say(distance2);
// 测量并说出剩余敌人与英雄间的距离
// 不要向你的友军进行射击!
var enemy3 = "Charles";
var distance3 = hero.distanceTo(enemy3);
var enemy4 = "Gorgnub";
var distance4 = hero.distanceTo(enemy4);
hero.say(distance4);
2017年06月30日 00点06分 8
level 1
保护农民
while(true) {
var enemy = hero.findNearestEnemy();
var distance = hero.distanceTo(enemy);
if (distance < 10) {
// 如果他们与农民太近,就攻击他们
hero.attack(enemy);
}
// 否则的话,呆在农民旁边!
else {
hero.moveXY(40, 37);
}
}
2017年06月30日 00点06分 9
level 1
疯狂的食人魔
// 地上另一个让英雄打开的宝箱!
// 攻击宝箱以打开它
// 有些食人魔可不会呆呆地站着挨打!
// 当食人魔离你太近时,你得学着保护你自己
while(true) {
var enemy = hero.findNearestEnemy();
var distance = hero.distanceTo(enemy);
if(hero.isReady("cleave")) {
// 首先,定期使用旋风斩(cleave)当技能就绪的时候:
hero.cleave(enemy);
} else if(distance < 5) {
// 攻击靠近并离你最近的食人魔
hero.attack(enemy);
} else {
// 否则,试着打破宝箱看看:
hero.attack("Chest");
}
}
2017年06月30日 00点06分 10
level 1
跃火林中
// 在这关,别碰恶魔石!往其他方向移动避开它们!
while (true) {
var evilstone = hero.findNearestItem();
if (evilstone) {
var pos = evilstone.pos;
if (pos.x == 34) {
// 如果恶魔石在右边,走到左边。
hero.moveXY(46, 22);
} else {
// 如果恶魔石在右边,走到左边。
hero.moveXY(34, 22);
}
} else {
// If there's no evilstone, go to the middle.
hero.moveXY(40, 22);
}
}
2017年06月30日 00点06分 11
level 1
村庄漫游者
// 这定义了一个函数调用findandattackenemy
function findAndAttackEnemy() {
var enemy = hero.findNearestEnemy();
if (enemy) {
hero.attack(enemy);
}
}
// 此代码不是函数的一部分.
while(true) {
// 现在你可以使用findandattackenemy巡逻村庄
hero.moveXY(35, 34);
findAndAttackEnemy();
// 现在移到右边入口.
hero.moveXY(60, 31);
// 使用findandattackenemy
findAndAttackEnemy();
}
2017年06月30日 00点06分 12
level 1
边远地区交叉口
// 一大波兽人正在到来!
// 使用 checkAndAttack 函数让代码易读。
// 这个函式有一个参数
// 参数是一种给函数传递信息的方式。
function checkAndAttack(target) {
// 'target'参数只是一个变数!
// 它包含了函数调用时的参数。
if(target) {
hero.attack(target);
}
hero.moveXY(43, 34);
}
while(true) {
hero.moveXY(58, 52);
var topEnemy = hero.findNearestEnemy();
checkAndAttack(topEnemy);
// 移动到底部的X标记处。
hero.moveXY(58, 16);
// 创建名为 bottomEnemy 的变量,寻找最近敌人。
var bottomEnemy = hero.findNearestEnemy();
// 使用 checkAndAttack 函数,并包括 bottomEnemy 变量。
checkAndAttack(bottomEnemy);
}
2017年06月30日 00点06分 13
level 1
无敌旋风斩
// 這裡顯示如何定義一個稱為cleaveWhenClose的函式
// 函式定義了一個參數稱為target
function cleaveWhenClose(target) {
if (hero.distanceTo(target) < 4) {
// 把你的攻擊程式碼放在這裡
// 如果旋風斬就緒,對目標施放旋風斬
hero.cleave(enemy);
} // 否則,直接攻擊目標!
else {
hero.attack(enemy);
hero.attack(enemy);
}
}
// 這裡的程式碼不是函式的一部份.
while (true) {
var enemy = hero.findNearestEnemy();
if (enemy) {
// 記得在cleaveWhenClose函式裡面,我們改用target作為指向敵人的變數.
cleaveWhenClose(enemy);
}
}
2017年06月30日 08点06分 14
level 1
边远地区的小伙伴
// You now have a pet!
function speak(event) {
// 你的宠物应该用pet.say()来回应
pet.say("Meow!");
}
// 这告诉你的宠物去执行speak()函式当她听到什么
pet.on("hear", speak);
// 和你的宠物说话!
hero.say("Hello Kitty");
2017年06月30日 08点06分 15
1 2 尾页