Скажите что я делаю не так.
Я не умею пользоваться классами, но при этом понимаю их код.
Скопировал исходники с сайта __programmersclub.ru/gamedev-РЅР°-delphi-Дел аем-змейку/
Но у меня сама змейка не отображается.
Напишите пожалуйста что нужно прописать в счетчике, чтобы работал полностью класс.
Проверял с помощью F7 - и понял что у меня отдельные процедуры из одного класса выполняются.
Затем я сделал записи в счетчике:
TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).SetSize(6);
TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Drive;
TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Update;
TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Draw;
TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Free;
но эффекта нет.
Я понимаю что я что-то проглядел, но и не могу понять что.. .
Я пока только на уровне простого передвижения змейки
Другие языки программирования и технологии
delphi 7, snake
Процедура TSnake.Draw:
Проверь, какие координаты передаются в scr_Buffer.Canvas.draw:
scr_Buffer.Canvas.draw(G_X(BodyPos[ i ].x),G_Y(BodyPos[ i ].y),sprite);
Т. е. что возвращают G_X и G_Y.
Меня терзают смутные сомнения, координаты которые передаются в draw намного больше, чем это нужно:
> Затем я сделал записи в счетчике
непонятна эта фраза, ну да ладно:
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).SetSize(6);
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Drive;
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Update;
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Draw;
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Free;
Этот код -- вообще какой-то лютый пипец, как впрочем и остальной. К примеру в процедуре Main_Draw, которая дергается таймером, при каждом вызове создается и загружается новое изображение из файла, хотя в принципе это достаточно сделать один раз, а потом его просто использовать.
Но вернемся к Draw:
TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Draw;
CAGE_SIZE = 100;
Function G_X(x:integer):integer;
begin
result:= x *CAGE_SIZE
end;
G_X(30) вернет 30 * 100 = 3000 -- собственно о чем я и писал выше, координата за пределами окна
Проверь, какие координаты передаются в scr_Buffer.Canvas.draw:
scr_Buffer.Canvas.draw(G_X(BodyPos[ i ].x),G_Y(BodyPos[ i ].y),sprite);
Т. е. что возвращают G_X и G_Y.
Меня терзают смутные сомнения, координаты которые передаются в draw намного больше, чем это нужно:
> Затем я сделал записи в счетчике
непонятна эта фраза, ну да ладно:
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).SetSize(6);
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Drive;
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Update;
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Draw;
> TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Free;
Этот код -- вообще какой-то лютый пипец, как впрочем и остальной. К примеру в процедуре Main_Draw, которая дергается таймером, при каждом вызове создается и загружается новое изображение из файла, хотя в принципе это достаточно сделать один раз, а потом его просто использовать.
Но вернемся к Draw:
TSnake.Create('snake.bmp',v2(G_X(30),G_Y(30)),6).Draw;
CAGE_SIZE = 100;
Function G_X(x:integer):integer;
begin
result:= x *CAGE_SIZE
end;
G_X(30) вернет 30 * 100 = 3000 -- собственно о чем я и писал выше, координата за пределами окна
Все очень просто, когда то это был говнокод на Turbo Pascal. Позже другой говнокодер сделал попытку (очень не удачную) адаптировать эту срань в Delphi (чего делать категорически не рекомендуется) . Возможно с большим трудом можно заставить это говно делать вид что оно работает, но объяснить как оно это делает ты не сможешь
Классов реально в этом дерьме нет, потому как их в TP ни когда не было
Если нужна прога с нормальным кодом пиши на почту
Классов реально в этом дерьме нет, потому как их в TP ни когда не было
Если нужна прога с нормальным кодом пиши на почту
Похожие вопросы
- Что предпочтительней Delphi 7 или Delphi 2009? И почему?
- Люди у кавонить есть прога на Delphi 7??
- Какой язык лучше учить Delphi 7 или C++ ?
- Язык delphi 7 устарел ??? просто хотел учить delphi 7 но сейчас кто то сказал что устарел
- Какова стоимость? Какова стоимость Borland Delphi 7? И что лучше delphi или lazarus? И почему?
- Какую версию Delphi лучше использовать? В чём разница XE версии от обычной? XE2,3,4,5,6 или Delphi 7?
- Помогите составить программу в Delphi 7!
- Отличие функций GetParent и GetWindowLong, Delphi 7
- Delphi 7 ---------arccos(x)
- Создаю тест в DELPHI 7. Программа не считает правильные ответы.