DelphiX - pierwsza pora?żka :(((((

0

Dzień dobry, zrobiłem dokładnie tak jak było opisane w artykule,
robiłem to już trzy razy, żeby sprawdzić czy gdzieś się nie pomyliłem :(
Czy gdzieś jest błąd, bo tak skompilowany kod, zmienia rozdzielczość
do 640x480 i robi się czarny ekran, nic więcej :( czarna pustka :(
Co robić ? ;( ;( ;(

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DXClass, DXSprite, DXInput, DXDraws;

type
TForm1 = class(TDXForm)
DXDraw: TDXDraw;
DXImages: TDXImageList;
DXInput: TDXInput;
DXEngine: TDXSpriteEngine;
DXTimer: TDXTimer;
procedure FormCreate(Sender: TObject);
procedure DXTimerTimer(Sender: TObject; LagCount: Integer);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;

TAnimation = class(TImageSprite);

var
Form1: TForm1;
Quon : TAnimation;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ShowCursor(False);
Quon := TAnimation.Create(DXEngine.Engine);
Quon.Image := DXImages.Items.Find('Quon');
Quon.X := 200;
Quon.Y := 200;
end;

procedure TForm1.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
with DXDraw.Surface.Canvas do
begin
Brush.Style := bsClear; *ustawiamy styl
Font.Color := clBlack; *color fontu
Font.Size := 5; *wielkosc fontu
Font.Style := [fsBold]; *pogrubiony font
TextOut(10,10, 'FPS : ' + IntToStr(DXTimer.FrameRate)); *napisz FPS
Release; *wypusc Surface
end;
DXDraw.Flip; *rysuj
DXImages.Items.Find('Land').Draw(DXDraw.Surface, 0,0,0);
DXEngine.Engine.Move(1); *odpal Engine
DXEngine.Draw; *rysuj Engine
DXDraw.Flip; *rysuj
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = vk_escape then Close;
if not (Quon.X &gt 600) then
if Key = vk_right then
Quon.X := Quon.X + 15;
if not (Quon.X &lt 30) then
if Key = vk_left then
Quon.X := Quon.X - 15;
if (Quon.Y &gt 160) then
if Key = vk_up then
Quon.Y := Quon.Y - 15;
if (Quon.y &lt 435) then
if Key = vk_down then
Quon.Y := Quon.Y + 15;
end;

end.--__________________________________
Pozdrawiam...
piechnat

0

Uff... no dobra poradziłem sobie :)
ale i tak mam dużo pytań, nie kumam
trochę procedury DXTimerTimer,
co tam się dzieje i
dlaczego interval jest na 0 ?
i od czego to skrót FPS ?
i dlaczego akurat Quon jest typu TAnimation?

no i przepraszam że marudzę, jak ktoś by się
nudził to bym był wdzęczny za odpowiedź :)--__________________________________
Pozdrawiam...
piechnat

0

Jak usniesz FPS to będziesz widział tylko liczbę klatek np. 50

a nie FPS: 50

co do dlaczego quon jest tanimation :)
to dlatego ze to jest animacja :)

A co do tego z tym ze nie mogles sobie poradzic to ja wyslalem adamowi (prawdopodobnie działający kurs) i wystarczy zeby go zamienil - nie wiedze tego od dobrych 3 tygodni :P

heh co do timer interval 0 to najlepiej dawaj 1 (bo niektórym nie działa interval 0)

co do co do OnTimer w Timer to musisz skapować to ze ta procedura jest wykonywana zawsze przez odstęp czasu (ten interval)

jezeli kumasz o co chodzi z normalnym ttimer Ontimer to powinienes skapowac z tym timerem

lub jezeli kapujesz

pętlę

repeat until to tez powinienes skapowac

jak zapomnialem odpowiedziec na jakes pytanie to sorry :)

0

Co do Timera , to się wyjaśnie:
po pierwsze to zastanawiałem się jak coś może wykonywać się co zero milisekund,
jako że to troche dla mnie filozoficzna sprawa to mi przyszło do głowy że może
to się nie wykonuje :)

A co do tego co jest w procedurze DXTimerTimer:
to zastanawiam się po prostu, jaki sens jest w wyśiwtlaniu
(i to jeszcze co zero milisekund) tła,

głównie napaliłem się na to że by mi ludzik nie mrygał,
więc może już lepiej żeby on się ciągle odmalowywał ,

poza tym nie wiem dlaczego jak wstawiłem drugi Timer to nic nie działało
zadziałało dopiero jak wstawiłem normalny Timer, no
a konkluzją będzie to że ludzik i tak nie zachowuje się płynnie,
może i nie mryga ale zostaje po nim "cień" który znika z opóźnieniem :(--__________________________________
Pozdrawiam...
piechnat

0

heh ustaw wartość interval w DxTimer na 1 i wywal normalny ttimer

co do interval i mniej tym lepiej ale zalecane globalne to "1" :]

0

Powiem tak jesli nie ma sie zaparcia w sobie i troche szczescnia to delphiX pozostanie nadal slodka tajemnica ja
zamim pokapowalem oco biega z spritami zajelo mi dobre 5 dni nie mowiac juz o szukaniu w necie jakis kursow
i tak nic nie znalazlem no prawie nie licze kursow ktore sa nie dokonczone. Pozdrowienia {hello} Ziomber i
powodzenia przy pisaniu kursu.
---=-OiDnus-=-

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