Помогите с delphi 7!!
| |
020ee | Дата: Вторник, 24 Августа 2010, 14:10 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Я делаю программу,потом ее сохроняю и выключаю delphi а потом когда запускаю проект его запустить нельзя Помогите плиз!
|
|
| |
Angevengelist | Дата: Вторник, 24 Августа 2010, 14:19 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Чтобы сохранить нужно нажимать "Save All"
|
|
| |
020ee | Дата: Вторник, 24 Августа 2010, 14:24 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Спасибо
|
|
| |
Deadly-man | Дата: Пятница, 10 Сентября 2010, 10:29 | Сообщение # 4 |
Дай мне редимер!
Сейчас нет на сайте
| Не буду плодить темы... Каким образом можно сделать что-то вроде твердых объектов? Т.е поставили два компонента, заставили один из них двигаться, он врезался во второй и остановился.
|
|
| |
Angevengelist | Дата: Пятница, 10 Сентября 2010, 10:35 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Делфи это не конструктор игр. Нужно описать физику объектов. Это элементарно. Какой формы объекты?
|
|
| |
Deadly-man | Дата: Пятница, 10 Сентября 2010, 18:11 | Сообщение # 6 |
Дай мне редимер!
Сейчас нет на сайте
| Angevengelist, я знаю, я просто хотел сделать свой конструктор. А формы квадратной.
|
|
| |
XimikS | Дата: Пятница, 10 Сентября 2010, 18:36 | Сообщение # 7 |
участник
Сейчас нет на сайте
| тебе Drag&Drop чтоле?
|
|
| |
ezhickovich | Дата: Пятница, 10 Сентября 2010, 18:59 | Сообщение # 8 |
[Великий и могучий хозяинъ]
Сейчас нет на сайте
| Deadly-man, причём тут делфи - погугли и построй математическую модель задачи потом сможешь переписать её на любой ЯП - делфи тут не причём...
Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
|
|
| |
Deadly-man | Дата: Пятница, 10 Сентября 2010, 19:11 | Сообщение # 9 |
Дай мне редимер!
Сейчас нет на сайте
| ezhickovich, модель действий понятна - есть два объекта A и B. Если положение по оси X объекта A становится равно B.X + B.widht/B.X- B.widht , то объект A останавливается. Это просто. А как сделать так, чтобы не надо было описывать для каждого объекта такую процедуру.
|
|
| |
ezhickovich | Дата: Пятница, 10 Сентября 2010, 19:35 | Сообщение # 10 |
[Великий и могучий хозяинъ]
Сейчас нет на сайте
| Не хочу заикаться за делфи т.к. знаю его не очень хорошо... Нуу... примерно так: Допустим объект представлен так Code struct CObject { bool isSolid; // Указывает твёрдый объект или нет... int x, y, width, height; // И так понятно... // -- void OnCollision (CObject otherObject); }; То есть у каждого объекта есть свойство solid которое указывает твёрдый он или нет... И функция которая будет обрабатывать столкновение с другим объектом... Также есть функция для проверки столкновения... bool isCollided (CObject first, CObject secondID); // В которой и будет происходить проверка столкновений... К примеру нам нужно проверить столкнулись ли два объекта ( к примеру объекты A и B ) Code if (isCollided (A, B)) { A.OnCollision (B); B.OnCollision (A); } Это самый простейший пример ВООБЩЕ без примудростей... Лучше поискать статьи на эту тему...
Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
Сообщение отредактировал ezhickovich - Пятница, 10 Сентября 2010, 19:36 |
|
| |
Angevengelist | Дата: Пятница, 10 Сентября 2010, 19:52 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| Вообщем, самым лучшим советом будет, дать тебе статьи по которым я когда то учился. http://pascalgames.net/index.php?action=articles;cat=10 Они именно для новичков, много написано не совсем точно. Но тем не менее работает. Как поймешь могу скинуть статьи и примеры по написанию физики
|
|
| |
snam | Дата: Суббота, 11 Сентября 2010, 12:26 | Сообщение # 12 |
частый гость
Сейчас нет на сайте
| Deadly-man. Не очень понятно, что тебе надо. "А как сделать так, чтобы не надо было описывать для каждого объекта такую процедуру." Описывать для каждого, естественно не надо, а вот прогонять, каждого через нее, увы, придется. Вопрос другой, относительно кого? Если герой и куча роботов, герой свободен, роботы заранее запрограммированы (рпг), цикли всех относительно героя и нет проблем. Если живой мир (реал время), билиардик типа, 100000 шаров и все в движении, как, (100000x100000)? Решишь эту задачку - получишь нобелевку + полцарства. Проверять каждого, относительно каждого, это даже для пошаговых игр - мощный перебор. Прямых решений нет (?). Но, когда то, кого то, осенило использовать двухмерный массив. Представь, массив 50x50, цикл 50x50, проверяем каждую ячейку, если 2 - рисуем в этой ячейке дерево, если 5 - монстра и смотрим соседние с ним ячейки, если там проход - монстр бежит туда, стена - обходит, зайчик - обед. если 6 - зайчик, опять смотрим его окружение, рядом монстр - зайчик делает ноги в свободную ячейку, если успеет, дело здоровья. если 0 - свободно, 53 - стена. На этом принципе строятся динамические игры, всякие кавеманы и бамбермены, но игровое поле не может быть большим, появятся тормоза (двойной цикл). Подход немного другой, Марио, тот же массив, но большой. Здесь циклим только ту область массива, которая выводится на экране, недостаток - все, что за пределами экрана - мертво. Если Марио сдвинуть назад - вперед, он снова встретит ту же черепаху. Все что выше, только для того, чтобы понять следующее. Двухмерный массив 100x100 (мало), равносилен одномерному 10000 (это уже кое-что). В каждой ячейке одномерного, один объект и все его характеристики, включая X, Y. Круг замкнулся, опять та же проблема взаимодействия объектов. И опять берем двухмерный массив, скажем 5000x5000 (=игровое поле), фишка в том, что циклить нужно только одномерный, а двухмерный используется как база данных. Каждый объект постоянно заносит туда свое местоположение и проверяет близкое ему окружение (близкое! иначе тормоза), соответственно реагируя. А как быть с дальними дистанциями? Типа 100 лазерных пушек ведут обстрел половины игрового поля. Просто запоминаем X и Y (и еще что нужно) первого объекта, и сравниваем с остальными, когда циклим одномерный массив, на следующем заходе, запоминаем и сравниваем второго, третьего и тд., (Но нельзя делать из этого двойной цикл!) Для близких дистанций эта штука, увы, не подходит, слишком большая задержка на реагирование. Должны быть и еще варианты (трансляторы слежения, нейронные сети...), но я их не знаю.
|
|
| |
Deadly-man | Дата: Суббота, 11 Сентября 2010, 18:10 | Сообщение # 13 |
Дай мне редимер!
Сейчас нет на сайте
| snam, Angevengelist, большое спасибо. Буду изучать.
|
|
| |
|