2

Программирование. Азы. Урок 1

Добрый день. Хочу представить Вам курс по пониманию азов программирования. Учиться программированию мы с Вами будем на Javascipt. Но не просто Javascipt, который в силу не знания html и css, будет даваться с трудом, а графический фреймворк Phaser.


Для обучения Вам необходим любой браузер, но я бы порекомендовал бы Chrome (т.к. все уроки я буду демонстрировать в нем) и любой текстовый редактор (Sublime Text 3 подойдет без проблем).


Для корректной работы и дальнейшего обучения, необходимо использовать локальный сервер. Сервер можете использовать любой, для примера по нижеприведенной ссылки описанно как установить Denwer.

http://pyatilistnik.info/kak-ustanovit-denver-denwer-v-windo...


После установки качаем архив с первым уроком по ссылке и переносим содержимое архива на локальный сервер:

http://dssbox.[ орг тчк ]ua/download.php?file=0c364fff3be57fa4e00259f1ce8d6c87


В хроме открываем core.html или index.html через локальный сервер и видим результат:

На скриншоте включена консоль разработчика (для этого используйте клавишу F12 под Windows, а если у вас Mac, то Cmd+Opt+J.), постепенно я научу Вас ей пользоваться.


Как видите на страничке у нас выделенная черная область, а в ней летает печенюшка :)


Выделенная черная область - это полотно в области которого мы можем рисовать или выводить изображения. В эту область была загружена и выведена картинка. На следующей картинке представлен файл core.js.

Давайте же познакомимся с первым кодом который мы смогли выполнить и увидеть результат.


В каждом языке программирования есть переменные и функции. В нашей программе есть две переменных: Game и test. Переменные по своей сути - это область в памяти которая хранить какие-либо данные. В строке под номером 1 создается переменная с именем Game:


var Game = null;


Все переменные в языке программирования Javascipt создаются с использованием ключевого слова “var”. Ключевое слово - это слово зарезервированное языком программирования и его использовать как имя переменной или имя функции нельзя. На скриншоте исходного кода, все зарезервированные слова пишутся фиолетовым цветом. После создания переменной обращаться к ней нужно без использования слова “var”. В первой строке мы создали переменную, в 4, 8, 12 мы обращаемся к данной переменной без добавления “var”. Чтобы изменить значение переменной используется оператор присваивания “=”. Простой символ “=” заменить значения переменной. “null” - это просто ноль, очищает область в памяти. Хороший стиль программирования - когда каждая новая переменная будет обнулена принудительно. Были на моей практике случаи, когда писал под мобильные девайсы на С++, что иОС обнуляет переменные, Андроид частично обнуляет, частично - нет.


Функции используются для объединения логических участков кода. В нашем примере три функции:

document_loaded - выполняется когда страница в браузере загрузилась.

preload - выполняется перед тем, как мы начинаем рисовать. В данной функции будем загружать картинки и звуки.

create - функция с которой мы и начинаем все наши действия :)


function document_loaded(){

...

}


function - зарезервированное слово, говорит о том, что дальше программист будет описывать функцию. “document_loaded” - имя функции. Программист может сам придумывать любые имена функциям, кроме зарезервированных слов. Пустые круглые скобки говорят о том, что функция не принимает никаких данных. Далее идут фигурные скобки - между открывающейся и закрывающейся фигурными скобками помещается необходимый код (по сути часть программы).


Это если вкратце в теории, а теперь посмотрим на все как оно выглядит на практике.


В первой строке мы создали переменную и придумали ей имя Game. Т.к. эта переменная в данной строке создается нами, то мы перед ней пишем ключевое слово “var” и обнуляем ее, присвоив null.


В третьей строке мы сообщаем, что хотели бы создать функцию с именем “document_loaded” и без параметров (пустые круглые скобки). После этого открываем фигурную скобку и переходим в четвертую строку.


В четвертой строке уже созданной переменной присваивается объект игровой сцены

Phaser’а. Вас не должно смущать то, что и наша переменная и имя функции в Phaser имеет одинаковое имя Game, этот прием демонстрирует, что одинаковые имена переменных и функций могут встречать в разных классах.


Все что Вам необходимо знать на данный момент в 4-ой строке, это то, что 800 и 600 - размеры в пикселях рабочей области (черная область).


( 7 - 9 строки)

function preload() {

Game.load.image('bayan', 'images/pechenka.png');

}


В данных строках мы говорим, что хотим создать функцию с именем preload и которая не будет принимать параметры. Game.load.image - загружает картинку из папки 'images' с именем 'pechenka.png' и дает внутреннее имя данной картинке 'bayan'.


В 11 строке создаем функцию с именем “create”, которая не будет принимать никаких параметров. В данной функцие в строе 12 создаем новую переменную “test” в которую помещаем ссылку на прорисованную картинку. Картинка, которая была до этого загружена в 8 строке, добавляется на сцену следующим кодом: Game.add.sprite, где первые два параметра это координаты х и у, а третий параметр - внутрисистемное имя картинки. Т.к. переменная “test” создается впервые, то перед ней пишем ключевое слово “var”.


В Javascipt есть глобальные и локальные переменные. Переменная “Game” является глобальной, т.к. мы ее описали не внутри какой-либо функции, а вне этого. Поэтому получить данные из этой переменной мы сможем в любом месте программы. С другой стороны, переменная “test” описана внутри функции “create” и к ней можно обращаться (брать значение) только между фигурными скобками внутри которых она создана, т.е. между 11 и 13 строками.


Чтобы можно было двигать изображение, необходимо переменную в которую помещаем картинку, сделать не локальной, а глобальной:

Попробуйте сами найти изменения в коде и понять почему так произошло.

Если посмотреть на картинку справа в нижнем углу есть запись test.x = 0 и test.x = Game.width / 2. Это консоль в хроме с помощью нее можно изменять некоторые свойства у переменных. В данных примерах в начале для печеньки координата х присваивается 0, потом присваивается половина от ширины поля. Если вы попробуете то же самое у себя сделать, то в начале печенька как бы прилипнет к левому краю, а потом переместиться на позицию как на картинке. Кроме x есть также вторая координата y. Попробуйте поиграться с этими двумя координатами, задав в начале позицию (0,0), потом центр экрана и максимальные width и height области. Определите от какой точки идет позиционирование рисунка. Разберитесь как и куда смотрят оси координат, при этом x и y могут быть отрицательными числами тоже.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества