Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

Помогите, возникла проблема с игрой   Найти похожие ветки 

 
Cavalera ©   (2007-04-21 15:01) [0]

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


 
XProger ©   (2007-04-21 15:49) [1]

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


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

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


 
RzCoDer ©   (2007-04-22 13:59) [3]


> cavaera   (22.04.07 13:23) [2]

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


 
Cavalera ©   (2007-04-23 11:02) [4]

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


 
antonn ©   (2007-04-23 13:01) [5]

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


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

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


 
Cavalera ©   (2007-04-24 11:02) [7]


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

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


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


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

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


 
Rial ©   (2007-04-24 11:14) [9]


> Cavalera

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

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


 
Cavalera ©   (2007-04-24 11:21) [10]

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


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

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


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


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


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


 
Rial ©   (2007-04-24 15:42) [13]

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

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


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


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

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

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

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


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

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


 
Rial ©   (2007-04-24 23:56) [16]

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


 
givigudze ©   (2007-04-26 10:22) [17]

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


 
Cavalera ©   (2007-04-28 11:52) [18]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.041 c
2-1176782161
vegarulez
2007-04-17 07:56
2007.05.20
Подскажите про использование CreateProcess...


15-1176963350
Pazitron_Brain
2007-04-19 10:15
2007.05.20
Ищется память для ноутбука


2-1177755349
I-New
2007-04-28 14:15
2007.05.20
Что такое Build. И а зчем он нужен?


2-1177706637
Ornelius
2007-04-28 00:43
2007.05.20
Динамический массив как поле класса


1-1174434424
Интересующийся
2007-03-21 02:47
2007.05.20
Форма в SysTrey и SetForegroundWindow





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский