Niezależne od użytkownika "życie" gry + odświeżanie

2011-06-08 09:18
0

Ciężko będzie mi wyjaśnić, o co mi chodzi, ale mam nadzieję, że zrozumiecie:
Zacznę od tego, że na tworzeniu gier się jeszcze nie znam. Trochę siedzę w C# i robię okienkowe aplikacje z Windows Forms. Zrobiłem wprawdzie już jedną małą grę, która w całości opiera się o Drawing2D. No i reaguje ona tylko na to, co robi użytkownik, który zaznacza klocki (jak ktoś jest ciekawy, "Rectangles" http://miked.byethost13.com/index.php?strona=apps ). Użytkownik zaznacza (event MouseDown, MouseMove, MouseUp, jakaś funkcyjka która zmienia położenie klocków (przesuwają się powoli, więc pętla + Refresh kontrolki w ktorej dzieje sie akcja). W tej grze nie jest to problemem, bo zmiana położenia tych klocków przez funkcję trwa ok. 1-2 sekund. Użytkownik w tym czasie nic nie może robić, ale dziwne, by robił, gdy jeszcze klocki są nie ułożone. Ale przechodzę do najważniejszego problemu:

Chciałbym zrobić grę, w której pewne rzeczy dzieją się niezależnie od siebie. Np. łazi sobie pięć ludzików po ekranie. Czy żeby zrobić coś takiego, musze korzystać z osobnego wątku (lub wielu wątków)? Robi to problemy z dostępem do obiektów, a także komplikuje projekt. No i czy do każdego tego ludzika musialbym dać pętlę (czyli praktycznie ciągle jest uruchomiona jakaś funkcja) aby coś się działo?

I czy móglbym zrobić coś, by za każdym razem nie trzeba bylo robic picturebox.refresh()? Próbowałem kiedyś dodać timer, który będzie odświeżał, ale nie działało.

Z góry dzięki i przepraszam za tak dużo tekstu do czytania :]

I dodam jeszcze, że gdybym chciał zrobić grę z dużą ilością efektów wizualnych, podświetleń przycisków, to właśnie pojawiłyby się problemy. Bo żeby rysować potrzebuje eventu Paint dla powiedzmy Picturebox. Moge też sobie "zabrac" grafike z hwnd tego okna w dowolnej funkcji, ale, i tak nie zrobie żadnej animacji, bo do tego mi jest potrzebny Refresh(), a wtedy znika to co inna funkcja narysowała.

edytowany 1x, ostatnio: ubuntuser, 2011-06-08 09:23

Pozostało 580 znaków

2011-06-08 14:16
3

Myślę, że najłatwiej będzie ci to zrobić w XNA Game Studio. W internecie jest wiele tutoriali.

Aha, czyli tak: nic nie umiem z C#, to mam skorzystać z gotowego programu i dalej nic z C# nie umieć? - Patryk27 2011-06-08 14:43
@Patryk27, o co Ci chodzi? W XNA się programuje w C#, tylko że w przeciwieństwie do WindowsForms jest ono środowiskiem do tworzenia gier. - somekind 2011-06-08 14:48

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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