Помогите с WINGRAPH ом, Не компилится |
Помогите с WINGRAPH ом, Не компилится |
justix |
8.12.2011 15:47
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: 0 |
Пытаюсь запустить простенькую программу(я пока тока уровень отрисовываю)
Вылетает с ошибкой екзиткод5(но это в винграфе,а мне нужно именно в нём всё писать).Но в обычном графе он запускается,но курсор не рисуется,и вроде бы зависает на меню,потому что отрисовывает тока меню(тобишь всё что написано)а никаких действий с ним не происходит,не интер не искейп ничего и выйти не нажава на крестик окошка нельзя.Подскажите что не так.Вот код. Писал в FPC 2.4.4 uses wincrt,wingraph; const ny=32; nx=20; dx=50; dy=22; up=#72; left=#75; right=#77; down=#80; esc=#27; probel=#32; enter=#13; type massiv = array[1..ny,1..nx] of integer; const a:massiv=( (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)); var gd,gm:integer; p_zem,p_kursor:pointer; ch:char; s:string; tab:massiv; x0,y0:integer; procedure load_image(name_file:string; var p:pointer); var f:file; size:word; begin assign(f,name_file); reset(f,1); size:=filesize(f); getmem(p,size); blockread(f,p^,size); close(f); end; procedure initpict; begin load_image('zemlya',p_zem); load_image('kursor',p_kursor); end; procedure drawlab; var x,y,i,k:integer; begin for i:=1 to ny do for k:=1 to nx do tab[i, k]:=a[i, k]; for i:=1 to ny do for k:=1 to nx do begin x:=x0+(k-1)*dx; y:=y0+(i-1)*dy; case tab[i,k] of 1: putimage(x,y,p_zem^,copyput); end; end; end; procedure menu; var np:integer; begin setcolor(12); settextstyle(0,0,3); outtextxy(250,40,'MENU'); outtextxy(250,200,'1.GAME'); outtextxy(250,240,'2.HELP'); outtextxy(250,280,'3.EXIT'); np:=1; putimage(400,200+(np-1)*40,p_kursor^,1); repeat ch:=readkey; if ch=#0 then begin ch:=readkey; putimage(400,200+(np-1)*40,p_kursor^,1); case ch of up: if np>1 then np:=np-1; down: if np<3 then np:=np+1; end; putimage(400,200+(np-1)*40,p_kursor^,1); end; until ch=enter; case np of 1:drawlab; 2:exit; 3:exit; end; end; begin gd:=detect; initgraph(gd,gm,''); initpict; x0:=0; y0:=0; menu; //drawlab; closegraph; end. Добавлено через 10 мин. Так,в uses добавил модуль math,а в главной программе сразу после бегина написал SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]); Запустило,но просто черный экран,по нажатию закрывается и выходит обратно в компилятор. Сообщение отредактировано: justix - 8.12.2011 15:54 |
Текстовая версия | 10.11.2024 17:25 |