|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.12.2010, 21:15 | #1 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
Проблема с гравитацией при написании игрушки
значится так тема содержит часть программы(игрушка Stack Attack) в которой описывается прорисовка и падение ящиков
последнего (т.е. падения не происходит) никак не могу исправить это программирование в графическом режиме в среде bc3.1 с использованием псевдо-графики вот код Код:
язык - читсый си в этом то и суть задания Последний раз редактировалось серг; 06.12.2010 в 21:19. |
06.12.2010, 22:36 | #2 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
как я понял никто не желает или не умеет не знаю какая формулировка уместнее
|
06.12.2010, 23:04 | #3 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Я мало понимаю в синтаксисе. Расшифруйте запись цикла:
Код:
Код:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
06.12.2010, 23:18 | #4 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
значит прикол такой все рисуется вручную с помощью функции drawfield и эти записи я применил для стирания и прорисовки кубиков в следующей клетке
хотя я не уверен что прав в реализации этого действия может предложите способ попроще а цикл от нуля до пятнадцати количество клеток падения вниз кстати его можно заменить циклом while пока клетка под ящиком не будет равна 3 т е другому ящику или 1 - нижний край стакана (поля) Последний раз редактировалось серг; 06.12.2010 в 23:22. |
06.12.2010, 23:32 | #5 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
вообще говоря полносьтю согласен эти записи оставляют на месте кубики но что то на более разумную реализацию цикла пока не пробивает предлжите хотя бы идею остальное опишу сам
с координатами было напутано но исправлено вследствие этого w- координата по оси y |
06.12.2010, 23:38 | #6 |
Форумчанин
Регистрация: 02.11.2009
Сообщений: 179
|
Код:
|
07.12.2010, 00:15 | #7 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Первым делом вам нужно основательно учить язык!
Код:
То же самое с death - вызов происходит, результат нигде не проверяется. Подозреваю, вы хотели изменить внешние переменные, только так у вас ничего не получится.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
07.12.2010, 00:59 | #8 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Вообще что есть гравитация в математическом понимании? ...это когда некоторый параметр начинает изменять свое положение в пространстве под действием какой-то силы, ...в данном случае силы притяжения, направленной вертикально вниз. У вас за это должна отвечать некоторая переменная, это обычно так и есть "g", она константа и всегда равна некоторому значению тяготения. Нужна так же переменная обычно типа Real, т.е. число с запятой, как отрицательное так и положительное, которое накапливает в себе гравитацию. Суть состоит в том, что если это точное воспроизведение гравитации, то некоторая переменная Real типа, пусть это "r" - накапливает в себе значение с ускорением, т.е. грубо r = 0.1, 0.2, 0.4, 0.8 и тд. так можно задавать баллистическую траекторию перемещения объектов.
У вас, я так понял, примитивное перемещение ящиков по оси-Y вниз, пока не появится "пол". Нужно создать проверку для ящиков в цикле, на условие: если клетка ниже ящика не равна полу, нарисовать ящик там, с этими координатами. Если бы это был Delphi, предложил бы в качестве примера исходник аркады.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
08.12.2010, 00:52 | #9 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,432
|
Цитата:
во-вторых - ваша программа не компилируется ввиду отсутствия в функции main переменных w и h. После этого как то совсем расхотелось даже дальше чего-то смотреть, уж извините. Про остальные безобразия Гром уже намекнул. Добавлено: Beermonza, да какая тут гравитация Тут w=w+1. Причём +1 это даже не точек, это шаг сетки, а он тут равен 16*16. К ТС - у меня сложилось впечатление, что это не ваша программа, ибо вы совершенно не понимаете, как работают написанные вами же функции. Вот вам рабочий майн, а что именно возвращает randomstack - это задание на дом (сюрприз так сказать). Код:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru Последний раз редактировалось Ulex; 08.12.2010 в 01:50. |
|
08.12.2010, 15:50 | #10 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Ulex, если человеку просто сказать, что он невежда, у него остаются все те же вопросы, плюс обида на сложный завуалированный ответ с сарказмом и язвлением внутри. Уже хорошо, что серг понимает принадлежность его вопроса к играм, а не к ЛБ, ...т.е. не все потеряно. Пусть знает о существовании модели гравитации теоретически, поймет - хорошо, не поймет - время лечит все, если есть желание дальше разбираться.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работаю над гонками с гравитацией. | Вадим Буренков | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 255 | 05.09.2011 13:40 |
Проблема при написании компонента на основе TCustomControl | Flip-er | Компоненты Delphi | 4 | 28.03.2010 19:27 |
Возникла проблема при написании чата HelP | mar4elo | Работа с сетью в Delphi | 12 | 29.11.2008 22:16 |
Помогите при написании WebBrowser | kuzmich | Компоненты Delphi | 17 | 15.12.2007 18:58 |
Как и с чего начать при создании 2д игрушки. | fis | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 17 | 14.05.2007 18:14 |