![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюки в проге или в DelphiX [Delphi]
Omar2002 © (2003-09-02 22:55:00)Мастера! Я делаю космическую леталку с элементами стратегии на DelphiX.
Возникла такая проблемма: При старте игры на экран выводится один первый "кадр" и так и стоит - игра висит, причем висит странно. Виснет именно графика, потому что ESC работае как положенно, то есть закрывает игру. Еще одна странность: при включении игры из Delphi после выхода выдается ошибка на какой-то адрес, а при запуске ехе из под винды ошибки никакой не выдается. Помогите!
Omar2002 (2003-09-05 21:44:00) [1]Спсябо чуваки!!!!!!
Действительно в онАктив посадил. Так что ща все работает просто отлично. Да, кстати, с троссировкой получилось так что я еще пару глюков исправил :)
TButton (2003-09-05 21:33:00) [2]фулскрин отключи и отлаживай и виснуть не будет... а может действительно прорисовку на онАктивейт поставил у мну тоже такое случалось, даблклацнул по таймеру и пишу, а потом долго думаю "что ж блин с графой-то!"
cyborg (2003-09-05 10:50:00) [3]Omar2002 © (04.09.03 21:38)
Читай внимательней
ставишь точку останова в самом началеработы програмы
F8 или мышкой ткни на левый край в редакторе кода. Затем нажми F9, затем меню-сеарч-финдеррор и введи адрес ошибки, тебе ту строчку покажут, где ошибка возникла.
Camedia (2003-09-05 00:23:00) [4]> При старте игры на экран выводится один первый "кадр"
Не знаю, но может ты машинально не в TimerOnTimer, а в TimerOnActivate прорисовку поставил?
Omar2002 (2003-09-04 21:38:00) [5]
> cyborg © (04.09.03 17:33) [7]
> Всё гораздо проще, ставишь точку останова в самом начале
> работы програмы, запускаешь, затем FindError, и вводишь
> адрес, например в данном случае 0044E7DB.
Ты имеешь в виду троссировку? Если да,то как это сделать, ведь при использовании DirectX комп просто зависает, если ставишь где-нить точку.
Кстати, ща вобще не выдается никакой ошибки. Тем не менее директХ как будто перестает рисовать после прорисовки первого кадра. Иначе говоря я в полной ... ведь теперь искать даже не знаю где и что??? Вобще какая-то нестабильность в последнее время с игрой началась- иногда ошибка выскакивала, а сейчас, после некоторых банальных перестановок, ошибка не выдается и + к этому все равно не работает.
cyborg (2003-09-04 17:33:00) [6]Всё гораздо проще, ставишь точку останова в самом начале работы програмы, запускаешь, затем FindError, и вводишь адрес, например в данном случае 0044E7DB.
Omar2002 (2003-09-04 16:54:00) [7]Вполне возможно, что это указатель неинициализирован где-то.
хм (2003-09-04 16:43:00) [8]Read of address FFFFFFFF - читаешь по нулевому адресу. Или указатель неинициализировал, или объект.
>С отладкой тоже ниче не выйдет потому, что троссировка не >работает при использовании DirectX, просто комп безнадежно >виснет и все.
А логи на что?
Omar2002 (2003-09-04 16:42:00) [9]Спасибо! Попробую поискать.
MeF88 (2003-09-04 11:01:00) [10]У меня такая ошибка возникала... Не помню, как я её правил, но вроде она связана с обращением к не созданному классу.
Типа:
Надо писать Var:=TVar.Create; Var.x:=5;
А не просто Var.x:=5
Или: Var.Create; Var.x:=5;
Omar2002 (2003-09-03 21:44:00) [11]Ошибка вылазит вот такая(вырезано все ненужное):
"Access violation at address 0044E7DB... Read of address FFFFFFFF ..."
По поводу DXDraw.Flip; не волнуйся, я же не последний ломак :), уже не первый проект на делфиксах делаю.
С отладкой тоже ниче не выйдет потому, что троссировка не работает при использовании DirectX, просто комп безнадежно виснет и все.
VitGun (2003-09-03 05:24:00) [12]Ну если висит графика...то в цикле прорисовке, в сомом конце напиши DxDraw.Flip;
А насет ошибки...напиши что за ошибка. А еще лучше запусти прогу в отладчике и посмтори где именно она возникает...