Показать сообщение отдельно
Старый 21.08.2008, 15:06   #5
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Не вижу ошибку

чем плохи софт клавиши? Я заметил что в основной игровой процедуре они как то странно глючат и какие альтернативы использовать?
изначально я пробовал через массив, но не работало...
                                procedure NewGame;  
var
key,i:integer; 
exit,clicked:command;  
img:array[0..5] of image;                       
begin
FillRect(0,0,getWidth,GetHeight);
lev.level:=1;
lev.img:=LoadImage('/levimg'+lev.level+'.PNG'); 
lev.x:=(GetWidth/2)-(GetImageWidth(lev.img)/2);
lev.y:=(GetHeight/2)-(GetImageHeight(lev.img)/2);
DrawImage(lev.img,lev.x,lev.y);
delay(3000);
repaint;
lev.lev:=LoadImage('/level'+lev.level+'.PNG'); 
lev.x:=(GetWidth/2)-(GetImageWidth(lev.lev)/2);
lev.y:=(GetHeight/2)-(GetImageHeight(lev.lev)/2);
for i:=0 to 5 do
img[i]:=LoadImage('/'+i+'.PNG');
fed.x:=(GetWidth/2)-(GetImageWidth(img[1])/2);
fed.y:=(GetHeight/2)-(GetImageHeight(img[i])/2);
fed.st:=right; 
repeat
FillRect(0,0,getWidth,GetHeight);
fed.speed:=2;
randomize;
if fed.st=left then 
fed.rand:=random(3);
if fed.st=right then 
fed.rand:=random(3)+3;
DrawImage(lev.lev,lev.x,lev.y);
DrawImage(img[fed.rand],fed.x,fed.y);
key:=GetKeyPressed;
if key=KE_KEY2 then
fed.y:=fed.y-fed.speed;
if key=KE_KEY8 then
fed.y:=fed.y+fed.speed;
if key=KE_KEY6 then 
begin
fed.st:=right;
fed.x:=fed.x+fed.speed;
end;
if key=KE_KEY4 then 
begin
fed.st:=left;
fed.x:=fed.x-fed.speed;
end;
repaint; 
delay(50); 
until key=ke_key0; 
end;
немного оптимизировал код
массив

Последний раз редактировалось Smarik, 21.08.2008 в 16:21.
(Offline)
 
Ответить с цитированием