Тема:
Базовый синтаксис
Аргументы
Переменные
Условные операторы
Циклы
Массивы
Цели:
Догони Пендер Проклинательницу.
Руководство:
Вступление:
move отличается от moveXY!
move(pos) имеет один аргумент pos, вместо двух у moveXY(x, y).
Вы можете использовать move, что бы переместиться на позицию монетки move(coin.pos), вместо moveXY(coin.pos.x,coin.pos.y).
И наконец moveXY перемещает юнита, пока он не достигнит пункта назначения. move же делает только один шаг в сторону пункта назначения. Теперь вы можете совершать действия во время движения.
Описание:
moveXY против move
Данный уровень показывает различие между старым способом передвижения moveXY и новым move.
(x, y) против (pos)
C move, вы указываете позицию перемещения.
Позиция объекта имеет свойства x и y. Вы использовали их с moveXY, как:
Python:
1 |
self.moveXY(coin.pos.x, coin.pos.y) |
JavaScript:
1 |
this.moveXY(coin.pos.x, coin.pos.y); |
CoffeScript:
1 |
@moveXY(coin.pos.x, coin.pos.y) |
LUA:
1 |
self:moveXY(coin.pos.x, coin.pos.y) |
но с move вы моежете просто передать pos объекта, как параметр, например:
Python:
1 |
self.move (coin.pos) |
JavaScript:
1 |
this.move(coin.pos); |
CoffeScript:
1 |
@move(coin.pos) |
LUA:
1 |
self:findEnemies() |
Блок на выполнение или продолжать обработку?
С moveXY ваша программа прекратит выполнение, пока ваш герой не достигнет указанного местороложения (x, y).
С move ваш герой будет двигаться в сторону pos которое вы передадите, но ваша программа будет продолжать выполнятся.
Это означает, что ваш герой будет делать шаги в направлении pos, но ваша программа будет продолжать работать, так что вы сможете прервать данное движение с следующем витке цикла вашего кода.
От себя:
Пришлось купить ботинки. Купил ботинки скачков.
Игра в Салки, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Поймай Пендер Проклинательницу чтобы узнать её секреты. loop: # Пендер единственный друг на уровне, поэтому она всегда ближайшая. pender = hero.findNearest(hero.findFriends()) if pender: # moveXY() переместит тебя в место где была Пендер, # но она постоянно будет убегать при твоем приближении. #self.moveXY(pender.pos.x, pender.pos.y) # move() передвигает тебя лишь на шаг в единицу времени, # поэтому ты сможешь преследовать свою цель. hero.move(pender.pos) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// Поймай Пендер Проклинательницу чтобы узнать её секреты. loop { // Пендер единственный друг на уровне, поэтому она всегда ближайшая. pender = hero.findNearest(hero.findFriends()); if (pender) { // moveXY() переместит тебя в место где была Пендер, // но она постоянно будет убегать при твоем приближении. //hero.moveXY(pender.pos.x, pender.pos.y); // move() передвигает тебя лишь на шаг в единицу времени, // поэтому ты сможешь преследовать свою цель. hero.move(pender.pos); } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Поймай Пендер Проклинательницу чтобы узнать её секреты. loop # Пендер единственный друг на уровне, поэтому она всегда ближайшая. pender = @findNearest @findFriends() if pender # moveXY() переместит тебя в место где была Пендер, # но она постоянно будет убегать при твоем приближении. #@moveXY pender.pos.x, pender.pos.y # move() передвигает тебя лишь на шаг в единицу времени, # поэтому ты сможешь преследовать свою цель. @move pender.pos else @say "... where'd you go?"Q |
Clojure:
1 |
;; |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
-- Поймай Пендер Проклинательницу чтобы узнать её секреты. loop -- Пендер единственный друг на уровне, поэтому она всегда ближайшая. local pender = self:findNearest(self:findFriends()) if pender then -- moveXY() переместит тебя в место где была Пендер, -- но она постоянно будет убегать при твоем приближении. -- self:moveXY(pender.pos.x, pender.pos.y) -- move() передвигает тебя лишь на шаг в единицу времени, -- поэтому ты сможешь преследовать свою цель. self:move(pender.pos) end end |
Комментарии: