Показать сообщение отдельно
Старый 27.06.2012, 10:19   #9
AntiRock
Оператор ЭВМ
 
Аватар для AntiRock
 
Регистрация: 23.06.2012
Сообщений: 31
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Анимация "салют"

Кстати нашел код под FreeBasic
Dim As Short x(50), y(50), xv(50), yv(50), ox(50), oy(50)
Dim As Short dir1,vel,tx,ty,c,done


  For t As Integer = 0 To 50
   x(t) = 0
   y(t) = 0
   dir1 = Rnd * 6.28: vel = Int(Rnd * 5) + 1
   xv(t) = Sin(dir1) * vel
   yv(t) = Cos(dir1) * vel
  Next
  '
  tx = Int(Rnd * 320)
  ty = Int(Rnd * 200)
  c = 31: done = 0

  Locate 1, 6: Print "Explosions by Andrew L. Ayers"
  Locate 23, 8: Print "Press any key to exit demo"

  Do
   For t As Integer = 0 To 50
    Line (ox(t) + tx, oy(t) + ty)-(x(t) + tx, y(t) + ty), 0
    ox(t) = x(t): oy(t) = y(t)

    x(t) = x(t) + xv(t)
    y(t) = y(t) + yv(t)

    Line -(x(t) + tx, y(t) + ty), Int(Rnd*15)
   Next
   c = c - 1: If c < 16 Then done = 1
   If Inkey <> "" Then done = 2
   Sleep 25
  Loop Until done
Loop Until done = 2
Начал переделывать под MP, дописал до середины и решил проверить - вышла фигня. Цикл for что ли не заканчивается? VB полегче этого mobilepascalя будет по мне...
Program explosions;
var vel,tx,ty,c,done,i,dir1:integer;
var x:array[0..49] of integer;
var y:array[0..49] of integer;
var xv:array[0..49] of integer;
var yv:array[0..49] of integer;
var ox:array[0..49] of integer;
var oy:array[0..49] of integer;
begin
  for i:= 1 to 50 do
    begin
    x[i]:=0;
    y[i]:=0;
    dir1:=trunc(random(1)*628);
    vel:=trunc(random(1)*5)+1;
    xv[i]:=trunc(sin(trunc(dir1))*vel);
    yv[i]:=trunc(cos(trunc(dir1))*vel);
    end;
tx:=trunc(random(1)*320);
ty:=trunc(random(1)*200);
c:=31;
done:=0;
drawtext('Explosions by Andrew L. Ayers',5,5);
drawtext('Press any key to exit demo',5,25);
repaint;
delay(5000);
end.
Цикл почему то не заканчивается, добавляю в него тогда такую строку "if i:=50 then break;" мпаскаль ругается и пишет, что это нелогично. Подскажите куда копать-то.
(Offline)
 
Ответить с цитированием