Показать сообщение отдельно
Старый 08.06.2010, 10:58   #30
NetBuilding
ПроЭктировщик
 
Аватар для NetBuilding
 
Регистрация: 07.06.2010
Сообщений: 105
Написано 5 полезных сообщений
(для 13 пользователей)
Вопрос Нужна помощь!

Помогите
вот такая фигня, летят метеориты, и в это время спрайты метеоритов меняются создовая эфект кручения. но как сделать чтобы для каждого метеорита был свой набор спрайтов определяемый случайно.

var
	i,t,p,r: integer;
		h,w: integer;
		x, y,xmode,ymode      : integer; 
    img1,nb,MR       : image;   
    
    cx,cy  : integer; 
    img: array [0..9] of image;
		x2,y2,cx2,cy2,b: array [0..9] of integer;
	
		k, kk,kkmode,speed: integer;
		score : integer;
		s: string;
		konec: integer; // 0-ничего, 1-гамеоверб 2-победа
	
  cont,clik : command; 
    quote : string; 
	
  v, o,o2, wi, hi, key, ch, cw, c, c_color, c_pos, c_c, c_pos_c, timer: integer;
 
	m: array [0..7] of string;
	x1, y1: array [0..100] of integer;



procedure game;
	begin
	x:=w div 2-10;
	y:=h-25;
	xmode:=3;
	ymode:=3;
	score:=0;
	s:='';
	konec:=0;
kkmode:=10;
k:=1;


	// возвращает метеориты назад при рестарте
	for i:=0 to 9 do begin
		x2[i]:=0;
		y2[i]:=0;
		cx2[i]:=0;
		cy2[i]:=0;
	end;	
	//////////////////////////////////////////
	k:=0;
	kk:=0;// определяет когда появиться следующему метеориту
	kkmode:=10;// растояние между метеоритами
	speed:=3;

	t:=1;
repeat

skore;
////////просчет метеоритов\\\\\\\\\\
	if kk>=kkmode then begin
		x2[k]:=random(w-16)+8;
		y2[k]:=0;
		kk:=0;
		score:=score+1;
		if k<9 then k:=k+1 else k:=0;
	end;
	else kk:=kk+1;	
	for i:=0 to 9 do begin 
		if y2[i]<h+23 then y2[i]:=y2[i]+speed;	
		cx2[i]:=x2[i]+12;
		cy2[i]:=y2[i]+12;
	end;
		/////////////\\\\\\\\\\\
	t:=random(9);
		
	 img[k]:=loadimage('/m'+t+'.png'); 
 	
		{столкновение}
	
for i:=0 to 9 do 
begin
if (x+15>x2[i]) and (x+5<x2[i]+25) and (y+2>y2[i]) and (y+2<y2[i]+25) then 
 begin 
 drawimage(loadimage('/v1.png'), x-2,y-2);
 repaint;
 konec:=1; 
 end
end;
		
		
		
		
	s:=integertostring(score);
	
shatlkeys;
	
	{рисование}
	SetColor(0,0,0);
  FillRect(0, 0, w, h);
  Stars;
  
  for i:=0 to 9 do DrawImage(img[k], x2[i], y2[i]); 
  DrawImage(img1, x, y); 
  SetColor(255, 255, 255); 
  SetFont(FONT_FACE_SYSTEM, FONT_STYLE_BOLD,FONT_SIZE_SMALL);
  drawtext('счет: '+s,0,0);
   
  Repaint; 
  Delay(50); 
until konec>0;
(Offline)
 
Ответить с цитированием