Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите, возникла проблема с игрой [Delphi, Windows]


Cavalera ©   (2007-04-21 15:01:00) 

Я начал делать игру на Дельфи без применения DirectX и OpenGl. Всю программу разбил на две части: меню и сама игра. Меню включает в себя несколько форм и форму заставку, которая естественно появляется при загрузке. Сама игра сделана на двух формах: форма на которой происходит сама игра и форма-меню для выхода или начать заново, и модуль с классами. Начальные параметры(здоровье и т.п.) считываются из текстового файла. По отдельности и меню, и сама игра работают, но когда я добавляю в проект с меню модули самой игры и запускаю компиляцию происходит следующее: появляется заставка игры, исчезает (так и должно быть), потом появляется меню. Ещё секунда и игра виснет. Закрываю через диспетчер задач, у Дельфи сообщение об ошибке вроде Access Volitation  и появляется предложение отправить анонимный отчёт. Синяя полоска всегда оказывается в модуле с классами. И ещё, если запустить ехе-шник этого проекта, то происходит вот, что: появляется заставка игры, закрывается, появляется меню игры, секунда и выскакивает много сообщений об ошибке Access Volitation (вроде так) и звучит звук из самой игры, который должен воспроизводиться когда мало или нет здоровья игрока.
 Может кто знает что это и как это можно исправить?


Cavalera   (2007-04-28 11:52:00) [1]

Игра не DirectX  и не на OpenGl потому что это курсовая и она должна быть написана на основе изученного материала ( 3д мы не изучали). Никакие движки здесь не причём. Весь код написан мною от руки.
 Я слышал, что эта ошибка может возникать если в разных юнитах есть переменные с одинаковым именем, я перемеиновал те которые были одноимёнными, но эта фигня повторяется опять. Сделал ещё вот как: создал новый проект и добавил в него саму игру. Опять то же самое. Может кто-нибудь знает что это может быть?
 P.S. Пожалуйста, могли бы Вы не писать ответы, которые по сути никакого отношения к моему вопросу не имеют. Заранее Вам благодарен.


givigudze   (2007-04-26 10:22:00) [2]

Да че парня то парите так.
Слушай сюда
1 Если только начал прогить надо все реализовывать в одной форме
Все кнопки меню лабелы можно делать невидимыми, а можно самому написать в Канве - богатый опыт и не кто не вскроит текстовики а то есть любители
2 Игра без DirectX и OpenGL - это обогреватель а не игра, если ты конечно не продумаешь код и графика у тебя будет примитивной
3 Пиши код максимально просто разбивая на процедуры
4 В начале сделай игру без звука с ним можно напариться потому что ты в игре его сам не создаешь а рубишь из файла.


Rial   (2007-04-24 23:56:00) [3]

А во всем виноваты эти *поганые* движки типа GLScene...
Развращает это народ. Типа сел за комп, и пошел игрухи
писать, да трехмерные, да с крутыми моделями !
Сори... крик души. :D


@!!ex   (2007-04-24 20:15:00) [4]

Я в шоке....
И ведь не зная что такое указатели и как выделяется память народ умудряется писать игры с заставками и звуком....
.....


Плохиш   (2007-04-24 15:48:00) [5]


> Cavalera ©   (24.04.07 11:02) [7]
>
> > Ошибка в 16 строке
>
> Откуда ты знаешь, что там?

Он не прав, ошибка в следующей строке

> Cavalera ©   (24.04.07 11:21) [11]
> Что такое кривые указатели?

Это указатели, которых касались кривые руки при неработающем мозге...


Rial   (2007-04-24 15:42:00) [6]

> [10] Cavalera ©   (24.04.07 11:21)

Вобщем, если ты отловиш пару таких глюков, у тебя появится
ценный опыт. И другим путем тебе его не получить,
кроме как методом проб и ошибок сделать все самому.


Сергей М.   (2007-04-24 11:40:00) [7]


> Что такое кривые указатели?


Те которые заведомо не "прямые" - указывают черт-те куда, только не туда куда им положено указывать по твоей логике.


Cavalera   (2007-04-24 11:21:00) [8]

Что такое кривые указатели?


Cavalera   (2007-04-24 11:21:00) [9]

Что такое кривые указатели?


Rial   (2007-04-24 11:14:00) [10]


> Cavalera

> Откуда ты знаешь, что там?
> Что ты имеешь ввиду?

Тут либо код надо выкладывать, чтобы ошибку найти... но это
плохой способ, вряд ли кто то будет его лопатить.
Либо..
1. Отладчик
2. Try, Except/Finally
3. Range Checking (маловероятно)
4. Кривые указатели
5. Несозданные классы
6. Да куча есть способов находить ошибки такого рода,
только дело надо иметь с реальных кодом, а не с абстрактными
умозаключениями.


Cavalera   (2007-04-24 11:03:00) [11]


> зато есть адрес на проблемный код :/

Что ты имеешь ввиду?


Cavalera   (2007-04-24 11:02:00) [12]


> Ошибка в 16 строке

Откуда ты знаешь, что там?


Мистер Т   (2007-04-23 13:03:00) [13]

Ошибка в 16 строке.


antonn   (2007-04-23 13:01:00) [14]

зато есть адрес на проблемный код :/


Cavalera   (2007-04-23 11:02:00) [15]

в программе нет динамичческих массивов


RzCoDer   (2007-04-22 13:59:00) [16]


> cavaera   (22.04.07 13:23) [2]

не проинициализировал динамический массив и/или вышел за пределы массива при обращении


cavaera   (2007-04-22 13:23:00) [17]

А каким образом там могла появиться невыделенная память?


XProger   (2007-04-21 15:49:00) [18]

Прекратить лезть в невыделенную область памяти.
Как узнать где ты это делаешь поможет обычное "вырезание" относительно независимых кусков программы, и последующее разбиение этих кусков на более мелкие вплоть до самого источника ошибки :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо