Tommalla2 Napisano Sierpień 17, 2006 Zgłoś Share Napisano Sierpień 17, 2006 Witam. Wspomnę, zę jestem początkującym Omega-programistą(neologizmik sie wcisnal ) 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 . Amen Czekam na jakąkolwiek pomoc. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Sierpień 17, 2006 Zgłoś Share Napisano Sierpień 17, 2006 przemysl jeszcze raz wyswietlanie tego co wczytales. Wyglada to ort! dziwnie. Nie do konca wiem czy masz cos w imagelist zakladam ze tak. Wczytywanie wyglada ok, wyswietlanie wyglda na zbugowane. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Tommalla2 Napisano Sierpień 18, 2006 Autor Zgłoś Share Napisano Sierpień 18, 2006 No własnie poprawiłem kod- teraz wyświetla 1 kratkę [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 More sharing options...
5corpio Napisano Sierpień 18, 2006 Zgłoś Share Napisano Sierpień 18, 2006 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 More sharing options...
Tommalla2 Napisano Sierpień 18, 2006 Autor Zgłoś Share Napisano Sierpień 18, 2006 Probowalem delta, probowalem ilosc prob ale nigdy razem :shock: . Ale ja debil jestem 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ł" ?? Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Sierpień 18, 2006 Zgłoś Share Napisano Sierpień 18, 2006 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 /> Link do komentarza Udostępnij na innych stronach More sharing options...
Tommalla2 Napisano Sierpień 18, 2006 Autor Zgłoś Share Napisano Sierpień 18, 2006 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ą .No i jak sie te "pomógł" dodaje?? // 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 More sharing options...
Toster Napisano Sierpień 18, 2006 Zgłoś Share Napisano Sierpień 18, 2006 przeciek ci pisze ze masz to updatowac w timerze a nie w form create. zerknij do dem Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Tommalla2 Napisano Sierpień 18, 2006 Autor Zgłoś Share Napisano Sierpień 18, 2006 No ale tak tez nie chodzi(nie jestem glupi i probowalem).//Da się jakoś wyświetlić OmegaScreena w konkretnym miejscu?? Np.: Między dwoma panelami, czy dzieś indziej...// OmegaScreen1.SetHwnd() czy jakoś tak - Iskar Link do komentarza Udostępnij na innych stronach More sharing options...
Bl42 Napisano Sierpień 18, 2006 Zgłoś Share Napisano Sierpień 18, 2006 Najpierw ort! czy się da a jakby Ci się nie udało dopiero wtedy pytaj się czy się da Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Sierpień 19, 2006 Zgłoś Share Napisano Sierpień 19, 2006 [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ć Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Tommalla2 Napisano Sierpień 19, 2006 Autor Zgłoś Share Napisano Sierpień 19, 2006 @5corpio: Owszem, działa, ale daje ciekawe efekty migania i ogólnego wariowania mapy . Poeksperymentowałem i okazuje się, że nie wiadomo czemu wszystko chodzi w onkeydown, ale nie w onkeypress (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ł" // "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 More sharing options...
Bl42 Napisano Sierpień 19, 2006 Zgłoś Share Napisano Sierpień 19, 2006 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 More sharing options...
Tommalla2 Napisano Sierpień 19, 2006 Autor Zgłoś Share Napisano Sierpień 19, 2006 No tak chyba zrobie, bo to hwnd jakies dziwne jest(co to [b]ort! za typ- hwnd??). Poeksperymentuje się i cos wyjdzie A zawsze mozna zrobic kilka form, czy cos innego, co rozwiąze problem. Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Sierpień 19, 2006 Zgłoś Share Napisano Sierpień 19, 2006 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 More sharing options...
Tommalla2 Napisano Sierpień 19, 2006 Autor Zgłoś Share Napisano Sierpień 19, 2006 Uchwyt- Handle, a to jest HWND Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Sierpień 19, 2006 Zgłoś Share Napisano Sierpień 19, 2006 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 More sharing options...
Tommalla2 Napisano Sierpień 19, 2006 Autor Zgłoś Share Napisano Sierpień 19, 2006 @Up: Dzięki i obiecuję poprawę A tak na marginesie, to dopiero się uczę omegi, więc nie bądźcie zbyt surowi 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ąć Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.