animowany text

Odpowiedz Nowy wątek
2003-03-08 12:24

Rejestracja: 17 lat temu

Ostatnio: 11 lat temu

0

Już kiedyś piałem na ten temat ale dostałem dość niezrozumiałą odpowiedź> mianowicie - jak zrobić animowany tekst poruszający się z jakimś przyspieszeniem????


Radosław Grabowski

Pozostało 580 znaków

2003-03-08 12:44

Rejestracja: 17 lat temu

Ostatnio: 13 lat temu

0

RadeG opisałem ci to wtedy dokładnie, nie wiem czego jeszcze chcesz...


Pozostało 580 znaków

2003-03-08 13:01

Rejestracja: 17 lat temu

Ostatnio: 11 lat temu

0

Tak, ale tam gdzie trzeba było wpisać w "type" wywala błąd - czy mógłbyś jeszcze raz napisać proszę?


Radosław Grabowski

Pozostało 580 znaków

2003-03-08 13:07

Rejestracja: 17 lat temu

Ostatnio: 11 lat temu

0

// globalnie :

type TLatajacyTekst=record
x, y : integer; // położenie naszego textu
v, a : real // prędkość, przyspieszenie

text : string;
end;

var lataj : TLatajacyTekst;

procedure form1.onCreate(...);
begin
// tu ustawiamy parametry
lataj.x := 0;
lataj.y := 0;
lataj.v := 0; // prędkość początkowa
lataj.a := 0.5 // prędkość przyspieszania
lataj.text := 'Hello World!';

end;

procedure onTimer(...);
begin
// tutaj wstaw sobie procedurkę czyszczącą tło pod tekstem

lataj.v := lataj.v + lataj.a; // przyspieszaj! 
lataj.x := round(lataj.x + lataj.v);  
bitmap.canvas.textOut(lataj.x, lataj.y, lataj.text); // rysuj! 

end;

dzięki takiemu rozwiązaniu masz pęłna kontrolę nad ruchem, tzn jeśli chcesz

  • bezruch : a:=0; v:=0;
  • ruch jednostajny : a:=0; v:=jakaśliczba;
  • ruch jednostajnie przyspieszony : a:=jakaśliczba;

jeśli chcesz odwrócić ruch (przeciwny kierunek) to ustaw 'a' na ujemną liczbę;
/// CZY MOŻESZ NANIEŚC POPRAWKI/////


Radosław Grabowski

Pozostało 580 znaków

2003-03-08 13:35

Rejestracja: 17 lat temu

Ostatnio: 13 lat temu

0

type TLatajacyTekst=record
x, y : integer; // położenie naszego textu
v, a : real; // prędkość, przyspieszenie

text : string;
end;

zapomniałem dodać średnika, teraz działa.. jeśli nadal będziesz miał problem, - pytaj.


Pozostało 580 znaków

2003-03-08 18:25

Rejestracja: 17 lat temu

Ostatnio: 11 lat temu

0

jakiś błąd jest tutaj andrew
procedure onTimer(...);
begin
// tutaj wstaw sobie procedurkę czyszczącą tło pod tekstem

lataj.v := lataj.v + lataj.a; // przyspieszaj!
lataj.x := round(lataj.x + lataj.v);
bitmap.canvas.textOut(lataj.x, lataj.y, lataj.text); // rysuj!

end;

[dopisane]
i jaka jest ta procedurka czyszcząca???


Radosław Grabowski

Pozostało 580 znaków

2003-03-09 00:30

Rejestracja: 17 lat temu

Ostatnio: 13 lat temu

0

bitmap.canvas.textOut(lataj.x, lataj.y, lataj.text); // rysuj!

zamień sobie "bitmap" na dowolny komponent posiadający canvas, tzn. moze to byc TForm, TImage, TPaintBox, jak chcesz do wyboru do koloru. A procedurkę czyszczącą zaraz dopisze.. tylko znajde..

o juz mam :

bitmap.Canvas.Brush.Color := rgb(0,0,0);
bitmap.Canvas.FillRect(bitmap.Canvas.ClipRect);

tu też zamień [b]bitmap[/b] na twój komonent, który odpowieda za wyświetlanie obrazu.


Pozostało 580 znaków

2003-03-09 12:27

Rejestracja: 17 lat temu

Ostatnio: 17 lat temu

0

Jest chyba dość jasno wyjaśnione :)


XEllOS

Pozostało 580 znaków

2003-03-09 16:05

Rejestracja: 17 lat temu

Ostatnio: 11 lat temu

0

Andrew - nie wkurzaj się - wszystko mi sięp opsuło. Czy mógłbyś podać mi źródła (proszę ) - w koncu jestem tylko szeregowym.


Radosław Grabowski

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0