Skocz do zawartości

[DelphiOmega] Ładowanie świata.


Tommalla2

Polecane posty

Witam. Wspomnę, zę jestem początkującym Omega-programistą(neologizmik sie wcisnal tongue.gif ) i mam prawo popełniac błedy. Usiłuję załadować mapę za pomocą poniższego kodu:
[code=Delphi] var
Form1: TForm1;
mapa: array[0..63,0..63] of byte;
[B[[Y[][BB
_CBBYH&Óf&7&VFR6VćFW#D&ŚV7Bf ĆłFWFfĆSŚ7G4)ąŃ4)4)=%%Ńą4)=M1.Init;
OmegaImageList1.Init;
AssignFile(Plik,'mapa.txt')B]
ZĘNB[H[ZĘHBL
f\"ŁÓFc2F&Vv&VFĆĆĆÓŁŃŃĄ4(4(QąŃ4)4(4)edure TForm1.OmegaTimer1Timer(Sender: TObject);
var
x,y:byNBY[BYYTY[KY[[BYYTY[KXVŚf\"ŁÓFc2FŚf\"ŁÓFc2FŚb2fwŃĄ4)=%ą%1%Ńmmąutaw(pos.X, pos.Y ,0);
pos.Y:=pos.Y+32;
end
else if pos.Y&lL[BY[BYYR[XYSK[XYS][XVWWG&r222Ł2ł3#ŚVć@ŚV6R&Vvd4)``Ź4)=%ą%1%Ńmapa[x,y]].Draw(pos.X, pos.Y ,0);
end;
OmegaScreen1.EndRendB[ [/code]
Wiem, że przypisania warotści można zamienić na inc i dec, ale wolałem zrobić to najpierw tak, bo jest wiele funkcji, których wczesniej nie uzywalem(tak jak powyzsze), a przy okazji omegi udowadniają one swoją przydatność. Problem z kodem jest taki, że tak jak miałem czarny ekran, tak go mam biggrin.gif . Amen tongue.gif Czekam na jakąkolwiek pomoc.

Link do komentarza
Udostępnij na innych stronach

No własnie poprawiłem kod- teraz wyświetla 1 kratkę tongue.gif
[code=Delphi]
procedure TForm1.OmegaTimer1Timer(Sender: TObject);
var
N]NBY[BYYTY[KY[[BYYTY[K%67&VVŚf\"ŁÓFc2FŚf\"ŁÓFc2FŚ&Vv4)=%1%1%ŃmmąutĄ(trunc(x/4)),pos.y*(y*32), 0);{x=pozycja*wielkość kratki*nie][HZ^X[X[YHX^[H]Z6ŚŚĆ62wść6'6v&Ś\"śfĆŚVćCMI4)4(v+Iyh)^J3s7ęŹ'>)łzrŚŁzg(p3ŹĄś,+-s7hiĘkz,gnŁ-\"vz3jgĄŁ)r8śz+rŚj'n'śvśJui'
procedure TForm1.OmegaTimer1Timer(Sender: TObject);
var
N]NBY[BYYTY[KY[[BYYTY[K%67&VVŚf\"ŁÓFc2FŚf\"ŁÓFc2FŚ&Vv4)ąŃĄ4)4)=%1%1tems[mapa[x,y]].Draw((x2*32){*(trunc(x/4))},(y2*32), 0);
inĘLJNB[Ę]XJNB[B[HY[B[ĘJNBVvvTĆ7CvTĆ7BFV5śG&r\"Ł3\"G'V楟Ą4)4)4)4)4)=gaScreen1.EndRender;
end;
//sprawdzacz, x2,y2:byte
[/code]

Link do komentarza
Udostępnij na innych stronach

Mapa ma się przesuwać a nie obiekt ?
To wyświetlasz w pętli każdy kafel tak:

[code=Delphi]
OmegaImageList1.ImageList.Items[mapa[x,y]].Draw(petlaX * RZXYH
[V]VH
ZXYH
[VK
NB [/code]

I tylko teraz wystarczy zmieniać deltaX i deltaY i mapa się przesuwa nie ?

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Probowalem delta, probowalem ilosc prob ale nigdy razem :shock: . Ale ja debil jestem tongue.gif
Edit: Udało mi się. Ale mam drobny problem z omegaInputem-nie chce reagować na klawisze (?????) Używam takiego kodu:(inicjuje na on formcreate)
[code=Delphi]
if key=#27 then close
else
if oisdown in OmegaInput1.Key][[ĘLCB[HY[YYR[]K&&B7FFW2FVFV2\"3\"ŚV6Rb7&vBVvW-MŃŃŃĄĄ4)ąą=%put1.Keyboard.States then dec(x2, 32);
q76ŹśzZa^OI^H]I [/code], to sie przesuwa...
P.S.:Jak sie daje "pomógł" ?? tongue.gif

Link do komentarza
Udostępnij na innych stronach

Aby omega input ci dzialal, musisz zrobic mapowanie klawiszy (o ile sie nie myle dwuklik na komponencie). Oraz trzeba wywolac w timerze OmegaInput.UpdateState albo cos w ten desen.

Co do wyswietlania tej planszy to kod jest tak prosty do napisania ze pytanie o takie rzeczy na forum jest ort! nie na miejscu, posiedz dluzej zanim o cos zapytasz to sa dwie petle na krzyz.

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Aktualizuję na formCreate, a to co powiedziales o dwuklikiu pokazuje tylko nazwe klawisza programową/normalną. I nie bądź aż tak krytyczny, każdemu się zaćmy zdarzają biggrin.gif .No i jak sie te "pomógł" dodaje?? tongue.gif

// to nie są zaćmy tylko brak podstaw i nie sprawdzanie najprostszych rzeczy w przykladach dolaczonych do omegi - Iskar

Link do komentarza
Udostępnij na innych stronach

[quote=delphi]
OmegaInput.Update;

if oIsLeft in OmegaInput.Keyboad.State then
deltaX := deltaX + 1;
if oIsRight in OmegaInput.Keyboad.State then
deltaX := deltaX - 1;

OmegaScreen.BeginRender;
OmegaScreen.ClearScreen(0, 0, 0);


OmegaImageList.BeginDraw();

MAPA_RYSUJ;

OmegaImageList.EndDraw();

OScreen.EndRender;
[/syntax:0f969284bb]

Oczywiście założyłem, że przy rysowaniu kafli masz jeszcze dodane zmienne deltaX i deltaY czy tam inne jakieś.
I takie coś musi działać biggrin.gif

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

@5corpio: Owszem, działa, ale daje ciekawe efekty migania i ogólnego wariowania mapy biggrin.gif . Poeksperymentowałem i okazuje się, że nie wiadomo czemu wszystko chodzi w onkeydown, ale nie w onkeypress biggrin.gif (delphi czasem mnie dziwi).
@Bl42er: Jeżeli dobrze mniema, to chodziło ci o sprawdzenie, czy coś takiego istnieje- szuakłem w properities, ale niczego podobnego mi sie zbytnio nie udało znaleźć.
@Iskar: Popróbuję.
@Topic: No i nikt mi nie powiedział nic o tym "pomógł" tongue.gif

// "Pomógł" raz działa a raz nie; masz taki przycisk (powinieneś mieć..) w poście tych, którzy odpowiadali w założonym przez Ciebie temacie, ale kiedy jak gdzie to działa, nie wiem :twisted: - Iskar

Link do komentarza
Udostępnij na innych stronach

Wiesz tak na chlopski rozum na formie mozesz sobie dac 3 podstawowe komponenty delphi 2 panele i pomiedzy nimi frame , a poźniej tak operowac kodem który bedzie psany pod framem zeby aplikacja nie byla pelnoekranowa , napewno sie uda, metoda prob i bledów.
Link do komentarza
Udostępnij na innych stronach

Chyba uchwytem się to zwie.

[quote] @5corpio: Owszem, działa, ale daje ciekawe efekty migania i ogólnego wariowania mapy [/quote]

Co znaczy wariuje ? A efekt migania w omedze eee dziwne... spróbuj może w OmegaScreen VSYNC-a dać na TRUE chociaż ja mam na FALSE i mi nic nigdy nie "migało".

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Jak nie wiesz to raz dwa na google a potem do przykladow Omegi! ;
Masz kawałek mojego starego kodu:

[code=Delphi] procedure TformGra.FormCreate(Sender: TObject);
begin
RaZ^J
HBY[YHX^KBY[ZYH6ŚR67\"6WDvćBćFĆR67\"vGFŁ6ĆŃ]Ń4(=M!Ą
ąŃ!Ą4(=M%4 OmList.ImageList.LoadFromFile('Grafika/grafa.oil') ;
Om[]BQXZQ
X[ QTPTC4DdE$BćFĆŚRŁD7&VFT4) [/code]

Popatrz sobie an OmScr. Najpierw ustalasz rozmiar, potem przypisujesz uchwyt (w tym przypadku formy, możesz dac tez np. Panel1.Handle i bedzie grafika wyswietlana na danym panelu czyli tak jak Ci potrzeba). A potem inicjalizujesz OmScr. Wszystko można znalezc w przykladach..

// ...jazda mi stad i sprawdz co to jest Handle! :twisted:
Link do komentarza
Udostępnij na innych stronach

@Up: Dzięki i obiecuję poprawę tongue.gif A tak na marginesie, to dopiero się uczę omegi, więc nie bądźcie zbyt surowi wink.gif Jeśli zamiast zmieszać kogoś z błotem, bo nie wiedział tego, tego i tego, lepiej mu pomóc i wytłumaczyć ,a będzie miał o was dobre zdanie(mówiąc "was" mam na myśli wszystkich użytkowników forum).
@Admin: To wszystko potrzebne już wiem. Pomęczyłem was trochę głupimi pytaniami, a teraz można temat zamknąć tongue.gif

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Gość
Temat jest zablokowany i nie można w nim pisać.
×
×
  • Utwórz nowe...