|
|
|
| Концепции программирования. Модель взаимодействия.
Работая с 1С я освоил статическую модель взаимодействия, когда программа совершает определенную последовательность действий после того, как задействован один из обрабочиков. До этого и после выполнения этой последовательности, она не подает никаких признаков жизни.
Хотелось бы узнать, каким образом устроены динамические программа, ну пусть на примере "Арканоида"(такой древнючей игрушки где внизу экрана палочка бегает, а сверху шарик такой об стенку тычится).
Если несложно, то можно это как то описать человеческим языком ?
Ну может вам мой вопрос покажется странным и не понятно, почему я раньше этого не знал, но реально, у меня такой способ познания, я сперва должен концепцию понять, а потом остальное на ее основе достраивать. | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 19:33)
| | В большинстве случаев, за какой бы вы язык не взялись вы так и будете создавать статические последовательности, только не одну последовательность, а сразу несколько версий для разных событий. Грубо говоря, когда мышь движется - одна последовательность действий, когда кнопка мыши нажимается - другая, когда клавиша Esc - третья. Т.е. три мини-программы, но выполненные в том же статическом ключе. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 20:40)
| | Ну незнаю, у меня форма открылась, чет в ней поменяли или ничего не меняли, и закрыли. А вот как игры в этом смысле устроены ? | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 21:22)
| | Форма у вас открылась по щелчку мыши - этот щелчек является событием, т.е. в программе или в операционной систем работает бесконечный цикл, который проверяет не нажал ли оператор кнопку мыши. Обычно этот цикл-обработчик скрыт и вам предоставляется писать функции, которые вызываются, когда событие срабатывает. Игры штука достаточно сложная, там приходится самостоятельно реализовывать цикл обработки событий - вводить собственные события. Т.е. создаете цикл с обработкой событий, дальше начинается то же самое, что у вас - разработка процедур реакций на события.
PS Впрочем в последние годы разработчикам игр даже этого делать не приходится, они используют готовые движки с готовым циклом-обработчиком. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 21:33)
| | Ну а морфологически описать "Арканоид" ? Как он устроен, не вдаваясь в технику дела ? | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 21:51)
| | Опишите сначала морфологически что вам знакомо, например, 1С. Задача немного необычная, нужна вводная. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 22:16)
| | Ну это звучало бы примерно так.
Методом "круг" библиотеки "граф.аш" рисуется круг небольшого диаметра. Ему присваивается метод "двигайся"... вобщем я не понимаю, как это работает, оттого трудно что либо сочинить.
Не понятно, как он будет двигаться, почему он будет взаимодействовать со стенками и битой. Ну вобщем как-то так. | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 22:29)
| | Хорошо. Выбираем вектор движения. Рисуем круг, тут же стираем и через надцать милисенкуд перерисовываем его в новой точке по вектору движения. На каждой итерации цикла проверяем находится ли центр круга + его радиус внутри координат экрана, если нет - проверяем куда уперлись - если это подложка или верхняя, боковые стенки - меняем направление вектора движения. Если это нижняя стенка - заканчиваем игру. В том же цикле перерисовки, следим за событиями движения клавиш влево и вправо, если зажата одна из клавиш начинаем стирать и перерисовывать подложку в соответствующем направлении. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 22:40)
| | >Хорошо. Выбираем вектор движения. Рисуем круг, тут же стираем и через надцать милисенкуд перерисовываем его в новой точке по вектору движения. .
Жуткий "геморрой", а проще нельзя ? К тому-же я не понял, что стоит за фразой "выбираем вектор движения", да и со скоростью движения непонятно.
Поидее в некоторых старых играх скорость зависила от быстродействия процессора (я еще застал такие времена). | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 22:42)
| | Нет, проще нельзя, игры - это хорошая математика, а если вы программируете трехмерные игры, ещё и физика и высшая алгебра. В игрушки только играть приятно - создавать их - ещё та работенка. Наряду с СУБД - это одно из самых сложных направлений в программировании. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 22:47)
| | >Нет, проще нельзя, игры - это хорошая математика, а если вы программируете трехмерные игры, ещё и физика и высшая алгебра. В игрушки только играть приятно - создавать их - ещё та работенка. Наряду с СУБД - это одно из самых сложных направлений в программировании.
А сами СУБД сложно писать или приложения на основе СУБД сложно писать ? | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 22:52)
| | Сами СУБД, приложения на основе СУБД писать - просто праздник, настолько все просто и приятно (SQL правда нужно знать и чуть-чуть администрировать СУБД уметь). | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 22:57)
| | >Сами СУБД, приложения на основе СУБД писать - просто праздник, настолько все просто и приятно (SQL правда нужно знать и чуть-чуть администрировать СУБД уметь).
Ну вы то их не пишете, не писали и писать не будете. Чего вам волноваться то ? :) | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 22:59)
| | >Ну вы то их не пишете, не писали и писать не будете. Чего вам волноваться то ? :)
Да собственно программирование - это не повод для волнения :))) СУБД действительно разрабатывать пока не собирался, предпочитаю пользоваться готовыми, как и добрые 98% остальных программистов. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 23:20)
| | >Да собственно программирование - это не повод для волнения :)))
Для меня таки повод, как вы могли заметить.
Эх, пора анализы крови и мочи засылать :))) | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 22:16)
| | >Опишите сначала морфологически что вам знакомо, например, 1С. Задача немного необычная, нужна вводная.
1С я бы мог описать, но писать пришлось-бы очень много. Начал-бы с метаданных, что это такое, что такое атрибуты и реквизиты, как они связаны с формой. Как задаются методы и их обработчики. Показал бы простенький пример вывода строки в панель вывода.
Попросил-бы обучаемого сделать форму с кнопкой, на нее подвесить кусок кода с методом "сообщить" . Таким способом, он бы осознал что программа ему послушна, а он создал нечто вполне вменяемое. | |
|
|
|
|
|
|
|
для: Borec
(26.03.2009 в 22:33)
| | Хм... если описывать как писать такую игру на DirectX тоже сначала придется объяснить как работает DirectX. Почему книги по конкретным языкам программирования и библиотекам так популярны.
В книгах по 1С тоже не описывается как стать классным высокооплачиваемым главным бухгалтером, как отмывать деньги и выплачивать серую зараплату, чтобы все было шито крыто. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2009 в 22:44)
| | >В книгах по 1С тоже не описывается как стать классным высокооплачиваемым главным бухгалтером, как отмывать деньги и выплачивать серую зараплату, чтобы все было шито крыто.
Аналогия, конечно еще та, но lol :)
Да как, как ее выплачивать ? Деньги отмывать, вот как :) Потом минимизировать прибыль за счет фиктивных заказов от фирмы-однодневки чтоб налогов не платить.
Потом жалко директора, получается, что он с главбухом и финдиректором "повязан". У нас в одном месте финдиректорша такая афца была, мне при общении с ней все время ей пинка хотелось дать, вот честное слово, а фиг ее выгонишь - слишком много знает ! Бедный директор :( | |
|
|
|