Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.063 c
1-1174550871
Iks
2007-03-22 11:07
2007.05.20
TStringGrid на манер грида в Mozilla Thunderbird


15-1177393553
AirLarson
2007-04-24 09:45
2007.05.20
Где можно преобрести Advantech и Cisco


6-1163515446
Konwin
2006-11-14 17:44
2007.05.20
Использование TServerSocket/TClientSocket + TThread


2-1177585517
Marat
2007-04-26 15:05
2007.05.20
Округлить


3-1172922633
---SerG---
2007-03-03 14:50
2007.05.20
Инсталятор для баз данных