![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите, возникла проблема с игрой [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]Прекратить лезть в невыделенную область памяти.
Как узнать где ты это делаешь поможет обычное "вырезание" относительно независимых кусков программы, и последующее разбиение этих кусков на более мелкие вплоть до самого источника ошибки :)