Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Denerwująca migotanie...... da się zapobiec bez PaintPictue ?
anonim




Typ: Nie zarejestrowany
Denerwująca migotanie...... da się zapobiec bez PaintPictue ?

Wiadomo że gdy w VB nałożą się na siebie dwa obiekty zaczyna się denerwujące migotanie..........
Czy można mu jakoś zapobiec... robię mała gierkę tak więc całe tło jest pokryte  obrazkami &#8222;image&#8221;
Które służą mi za pola. Czy da się jakoś zapobiec temu migotaniu bez użycia kontrolki PaintPicture ponieważ zależało by mi na umieszczeniu wszystkiego w ramce &#8222;frame&#8221;... która nie posiada PaintPicture

13-07-2004 12:00
  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Chyba musiałbyś użyć api do rysowania tych obiektów. Użyj GetDC żeby dostać hDc z hWnd frame'a, a potem rysuj funkcją bitblt (wymaga maski), lub transtparentblt.


_____________________________________________
www.mob.abc.pl - moja strona o VB

13-07-2004 13:06
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Niestety - raczej nie da się temu zapobiec - chyba, że będziesz miał na prawdę suuuper komputer, który zdąży te migotanie zrobić zanim je zauwazysz . Jest ono spowodowane tym, że każdy obrazek jest rysowany - a co za tym idzie - widać go przez chwilę, zanim zostanie narysowany nastepny. itd.

Jak już ja i chudy mówiliśmy w innym temacie - w grach raczej nie powinno się używać kontrolek do dobienia grafiki. Proponuję użyć API.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

13-07-2004 15:30
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Najlepiej użyć jest BitBlt a jeszcze lepiej DirectX albo OpenGL, lecz trzeba mieć jednak o tych sterownikach troche pojęcie.


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

13-07-2004 16:40
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003

DirectX i OpenGL to nie są sterowniki tylko biblioteki, ale to taki mały szczegół...


_____________________________________________
TLHW Clan member

13-07-2004 16:58
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Tyle, że D3D i OpenGL trzeba się trochę pouczyć, a wykorzystywanie go w prostym RTSie 2D to chyba za duży krok - chyba lepiej użyć GDI. Poza tym żeby używać openGL pod VB trzeba trochę funkcji nadeklarować. Pozostają jeszcze mniej znane biblioteki, jak np. Allegro - tylko po co?


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

13-07-2004 21:18
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

No a da się zrobić prostą strategię za pomocą rysowania?! Nie! Chyba, że nie szkoda Wam palców na pisanie tylu tablic, zmiennych, funkcji. Poza tym, jaki to by musiałbyć dobry komp! W tym momencie indexowane kontrolki są niezastąpione. Mrugania nie będzie, jeżeli (chyba!) użyje się pictureboxa. Łatwo i szybko.


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

13-07-2004 22:46
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004


No a da się zrobić prostą strategię za pomocą rysowania?! Nie!

A dlaczego się nie da?

Chyba, że nie szkoda Wam palców na pisanie tylu tablic, zmiennych, funkcji.


Jakich tablic? Jakich zmiennych i funkcji?

Poza tym, jaki to by musiałbyć dobry komp!

Uzywanie kontrolek jest o wiele bardziej zasobożerne, niż blokowe transfery bitow z jednego obszaru pamięci do drugiego...

W tym momencie indexowane kontrolki są niezastąpione.

A to dlaczego?

Mrugania nie będzie, jeżeli (chyba!) użyje się pictureboxa.

No.. może do tła użyjesz pictureboxów. A co z jednostkami? Te wymagają oddzielnych picturboxów. A jak zrobisz, by taka kontrolka była częściowo przezroczysta? Regiony? Wyobrażasz sobie tworzenie regionów dla każdej jednostki, szczególnie, gdy maja bardziej złożone kształty? Co zrobisz, gdy jednostka obsługiwana przez picturebox o indexie 24 zostanie zniszczona? Co zrobisz, by teraz taki picturebox usunąć? Gdyby to były po prostu dane, na podstawie których bć normalnie rysował - po prostu cofnąłbyś część danych o kilkanaście bajtów. A jak to zrobisz z kontrolkami? Owszem - da się. Ale tutaj dopiero się będziesz bawił z pisaniem tablic, funkcji i zmiennych, żeby to obsłużyć...

Pisałeś kiedyś RTSa w VB?


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

14-07-2004 00:00
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

No a masz może jakiś sampel? Gra strategiczna w VB. Masz takie coś? Bo zawsze jak się zabierałem, to przychodziły mi czarne myśli: "Wszystkie obiekty nie będą 3D, albo będę miał dużo roboty i malowania","Jak robić częściowe kolidowanie np. z górą" (tu chodzi o to, żeby gdy mam 3D góre, to musi ona być lekko z profilu, a więc - lekko pochyła,żeby dać taki efekt. No, a jak jednestka bedzie chciała przejść blisko obok góry, gdzie jest pochylenie? Zkoliduje się nie wiadomo z czym.


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

14-07-2004 12:23
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Sampla nie mam, natomiast mam praktycznie gotowy projekt RTSa i zaczątki kodu. Tak się składa, że akurat go robię, więc za kilkanaście tygodni (a może wcześniej?) będzie gotowy - nie sampel, ale cały RTS. Na życzenie udostępnie oprócz gry, także kod źródłowy.

A co do reszty: przedstawiasz problemy dotyczące RTSa 3D, a jak wynika z opisów - anonim tworzy prostego RTSa 2D.
Nawet, gdyby było to 3D, to właśnie pictureboxami niewiele zdziałasz. Żeby dać górę w widoku izometrycznym przyda się właśnie bezpośrednie rysowanie, a nie kontrolki. Może teksturowane modele to za duże wymagania jak na możliwości VB, ale gołe poligony lub gotowe obrazki przenoszone wprost z pamięci na obraz da się zrobić.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

14-07-2004 12:58
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003


Może teksturowane modele to za duże wymagania jak na możliwości VB

A to niby czemu? Przy pomocy DirectX i OpenGL to nie jest jakiś wielki problem... Obsługa DX może nie jest łatwa i może nie napiszesz dzięki niemu w VB Half-life'a 2, ale Half-life'a 1 na upartego dałoby się napisać...

http://www.truevision3d.com/ << bardzo dobry... (hm... moim zdaniem NAJLEPSZY) engine 3D.
"The TV3D SDK is a multi-language 3D engine, written primarily in C++ with support for Visual Basic 6 (...)"

WOW! Już 100 post

[Post edytowany dnia 14-07-2004 13:49 przez hicks]


_____________________________________________
TLHW Clan member

14-07-2004 13:44
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Ale nawiązuję do posta o GDI, który gdzieś tutaj wcześniej zamieściłem . W GDI nie jest już tak łatwo to zrobić, by VB sobie poradził.

Gratulacje (100 postów)... ale wypada jeden post na 4 dni :/

[Post edytowany dnia 14-07-2004 13:48 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

14-07-2004 13:47
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003


W GDI nie jest już tak łatwo to zrobić, by VB sobie poradził.

Hmm... Z tego co wiem to GDI służy raczej do grafiki 2D... A w tym temacie były też poruszane tematy 3D... Po za tym DX jest też dobry do grafiki 2D...


Gratulacje (100 postów)... ale wypada jeden post na 4 dni :/

Staram się jak mogę...


_____________________________________________
TLHW Clan member

14-07-2004 13:51
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

VB jest kiepski, jeżeli chodzi o gry 3D . Ja u siebie narazie napewno nie napiszę gry 3D. Dlaczego? Bo mam za słaby komp (466MHz;256mb ram itd) . Nawet przy prostych grach. Automation error i mogę go pocałować

[Post edytowany dnia 14-07-2004 13:53 przez mikmas]


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

14-07-2004 13:52
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003

Nie twierdze, że VB jest idealny do tworzenia gier 3D tylko, że jest to wykonalne. Jak już wspomniałem nie będzie to jakaś super gierka jak HL2 czy UT2K4, ale takiego HL1 napewno da się napisać. Nie byłoby to łatwe i nie działałoby tak szybko jak oryginał...


_____________________________________________
TLHW Clan member

14-07-2004 14:03
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
anonim




Typ: Nie zarejestrowany
To ja :) autor

Troszke zeszło z temtu.. ale ja wróce do swojego... Picture box zapobiega migotaniu, odkryłem to już dawno... .... tylko nie mozna wtedy uzywac klawiatury(tzn. tak jak bym chcial.. a po za tym wiaze sie z soba nie dogodnosci..  poniewaz gra ma skóty klawiszowe....pewnie fukcja bitblt moze nie bylo by tych problemów... ale ja sie do tej gry inaczej zabralem niz przewaznie... stwierdzilem ze  do malego  RTS bedzie to lepsze...

14-07-2004 14:16
  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Do anonima (autora):
Jeśli chodzi o to, że po kliknięciu na picturebox wszystkie informacje o naciśnięciu klawisza idą do niego i w tym leży problem - wystarczy nadać focus innemu oknu (metoda .SetFocus).

Do hicks'a:
Ale oryginalnie mówiliśmy o prostym RTS 2D .
Oczywiscie, że można wykorzystać D3D...

Staraj się staraj, bo niedługo cię dogonię

---
Forum ma źle ustawione priorytety znaczników.

[Post edytowany dnia 14-07-2004 15:11 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

14-07-2004 15:08
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 16 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1