pisze wlasnie prosta gierke w C#.
Gierka to bedzie polaczenie idei SpaceInvaders i Robbo :-)
Do rzeczy.
Wydaje mi sie, ze dzialanie engine mojej gry to bedzie cos takiego:
1. Tablica 2D z PictureBox'ami.
2. Timer ustawiony na jakies 200ms <- to sie jakos wyreguluje.
3. Za kazdym tickiem timera, engine przeliczy jakie PictureBox'y maja byc
umieszczone w mojej Tablicy (czy to bedzie postac mojego ludka, czy promien
lasera, czy kamien itp).
4. Nastepnie engine przeiteruje po Tablicy i wyswietli wszystkie
PictureBox'y na panelu.
Dobrze kombinuje?
Dziekuje za uwage :-)
Polon
niekoniecznie.
grafiki nie robi si� na timerach, tylko p�tl� g��wn� aplikacji, kt�ra
generuje ramk� na podstawie czasu jaki up�yn�� od wygenerowania poprzedniej
ramki.
poni�ej pseudokod:
Form1 f = new Form1();
while ( f.Created )
{
f.Idle();
f.Invalidate();
Application.DoEvents();
}
...
class Form1
{
DateTime lastFrame = DateTime.Now;
public void Idle()
{
TimeSpan lastFrameSpan = DateTime.Now - lastFrame;
/* od ostatniej ramki up�yn�o lastFrameSpan */
// aktualizuj pozycje obiekt�w na podstawie kwantu czasu jaki up�yn��
// zapami�taj czas wygenerowania ramki
lastFrame = DateTime.Now;
}
...
}
Wiktor Zychla
To lepiej Bitmap-ki juďż˝ w tej tablicy i tylko wskazywaďż˝ pictureBox.Image
= tablica[i];
--
Mateusz Bogusz
To lepiej Bitmap-ki juďż˝ w tej tablicy i tylko wskazywaďż˝ pictureBox.Image
= tablica[i];
A jeszcze lepiej CreateGraphics i rysowa� na jednej bitmapce, kt�r�
potem wrzucisz w Image (DoubleBuffering).
--
Mateusz Bogusz
*** tak zrobie
> A jeszcze lepiej CreateGraphics i rysowa� na jednej bitmapce, kt�r� potem
> wrzucisz w Image (DoubleBuffering).
*** no jest to pomysl ale...
Przeciez w mojej grze tylko czesc obszaru bedzie sie zmieniac:
- promienie lasera
- przeciwnicy mojego robota
- moj robot
Czy wiec wlasciwe bedzie jesli za kazdym razem bede rysowal caly obszar?
Polon
Dziekuje, tak zrobie.
Polon
A to ju� musisz sam oceni�. Zr�b jak potrafisz, a potem jak nie b�dziesz
usatysfakcjonowany, to pr�buj przerabia�. Ewentualnie pytaj...
--
Mateusz Bogusz
Abstrahuj�c od poronionego podej�cia... ;-)
> 2. Timer ustawiony na jakies 200ms <- to sie jakos wyreguluje.
>
> 3. Za kazdym tickiem timera, engine przeliczy jakie PictureBox'y maja byc
> umieszczone w mojej Tablicy (czy to bedzie postac mojego ludka, czy promien
> lasera, czy kamien itp).
Raczej nie "jakie PB majďż˝ byďż˝ umieszczone w Twojej tablicy", tylko "jakie
imagesy maja byďż˝ w tych PictureBox'ach". Z kolei te PB majďż˝ byďż˝
rozmieszczone "na sta�e" na jakim� kontenerze, jeden ko�o drugiego.
Defacto, takie prymitywne podej�cie pozbawia Kolege mo�liwo�ci tworzenia
warstw, czyli np. stalowej ziemi w warstwie ground, �rubki w warstwie
effect i strzaďż˝ w warstwie effect/projectiles ;-).
> 4. Nastepnie engine przeiteruje po Tablicy i wyswietli wszystkie
> PictureBox'y na panelu.
Je�eli PictureBox jest na panelu to nie ma co go wy�wietla�,
w cudzys�owiu i uproszczeniu, wy�wietli si� samo. Mo�na wymusi�
Invalidate()/Refresh() najwy�ej.
> Dobrze kombinuje?
Absolutnie �le. Kontrolki UI Win32 nie s�u�� do programowania gier
,,graficznych". Do takich cel�w lepiej u�y� XNA, DirectX, lub smarowa�
po bitmapach w pami�ci r�cznie �eby p�niej blitna� ca�ego frame'a
na canvas formy/panelu/kontenera/�otewer w event'cie Paint.
Proponuje poczyta� na ten temat Tile Engines, jaki� czas temu by� �adny
tutorial do pisania Tile Engine pod RPGa w XNA.
W razie pyta�, s�u�� pomoc�, czy w ostateczno�ci przyk�adami. ;-).
P.S. Space Invaders sprawia �redni� mo�liwo�� realizacji w tile engine.
--
Pozdrawiam,
�ukasz 'Maly' Ostrowski. http://l3v.pl/
ICQ: 148498663 GG: 2544385 AIM: malyzgora
GTalk: l3vi...@gmail.com ASTRA: L3viathan
Platforma docelowa mojej gierki maja byc urzadzenia mobilne, byc moze uda
sie to odpalic na iPhone (mono touch).
Czy takie platformy docelowe okreslaja w jakis sposob, to jak mam pisac moja
gre?
Polon
Powodzenia... Z ciekawo�ci czemu iPhone? U nas to niszowe, za
przeproszeniem, g�wno.
Cena MonoTouch teďż˝ conajmniej nie zachwyca. Aczkolwiek:
http://xnatouch.codeplex.com/
Nie wg�ebiaj�c si� w to jak dobrze implementuje XNA/.NET FW,
to mo�e by� niez�y trop w kierunku game development na iPhone.
> Czy takie platformy docelowe okreslaja w jakis sposob, to jak mam pisac moja
> gre?
I dlatego j� piszesz na kontrolkach UI? Oczywi�cie �e platformy narzucaj�
guidelines'y jak pisa�, szczeg�lnie gry, kt�re powinny by� wydajne, no
chyba �e piszesz Tic-Tac-Toe. ;-).
P.S. Nic osobistego, ale czemu najpierw nie nauczysz siďż˝ biegle .NET
na normalny FW a nie na CompactFramework/urz�dzenia mobilne?
Nie sprawiasz wra�enia bieg�o�ci w C#/.NET FW generalnie ;-).
Z do�� ograniczonego do�wiadczenia wiem, �e klepanie na urz�dzenia
mobilne niesie ze sobďż˝ dodatkowe szopki/utrudnienia/detale ;-).
Mam w planie sprzedawac moja gierke w AppleStore :-)
Serio.
> Cena MonoTouch teďż˝ conajmniej nie zachwyca. Aczkolwiek:
> http://xnatouch.codeplex.com/
> Nie wg�ebiaj�c si� w to jak dobrze implementuje XNA/.NET FW,
> to mo�e by� niez�y trop w kierunku game development na iPhone.
Cena mono mi nie przeszkadza.
Gorzej, ze musialbym miec kompa ze stajni apple.
A gdzie ja go zmieszcze?
Postanowilem sie tym martwic jak juz bede mial gierke gotowa.
>
>> Czy takie platformy docelowe okreslaja w jakis sposob, to jak mam pisac
>> moja
>> gre?
>
> I dlatego j� piszesz na kontrolkach UI? Oczywi�cie �e platformy narzucaj�
> guidelines'y jak pisa�, szczeg�lnie gry, kt�re powinny by� wydajne, no
> chyba �e piszesz Tic-Tac-Toe. ;-).
Po tym co napisales to poczytam, dowiem sie i napisze jak trzeba.
> P.S. Nic osobistego, ale czemu najpierw nie nauczysz siďż˝ biegle .NET
> na normalny FW a nie na CompactFramework/urz�dzenia mobilne?
> Nie sprawiasz wra�enia bieg�o�ci w C#/.NET FW generalnie ;-).
Ja nie pisze tej gierki bo umiem C#.
Ja wlasnie po to ja pisze aby miec jakis cel nauki C#.
Uczyc sie dla samej nauki albo do egzaminu to nie dla mnie.
> Z do�� ograniczonego do�wiadczenia wiem, �e klepanie na urz�dzenia
> mobilne niesie ze sobďż˝ dodatkowe szopki/utrudnienia/detale ;-).
Na razie napisalem w C# kulki pod windows mobile.
Na PictureBox'ach wlasnie.
Dziala koszmarnie wolno, ale dziala.
A ile czasu zajmuje fizyczne przerzucenie aplikacji na pocket PC aby tam
potestowac program!!! Koszmar po prostu.
Normalnie pisze w Delphi, teraz musze sie rozszerzyc o C#, ot rynek pracy
tego wymaga.
Przesiadka jest trudna, najwiecej problemow mam z przejsciem z edytora
Delphi na Visual Studio.
No ale to kwestia czasu, w koncu naucze sie wszystkich potrzebnych skrotow
klawiszowych, moza uda mi sie przeniesc panel z komponentami z lewej,
rozwijalnej strony na gore na przyklad :-)
Polon
Witaj, je�li naprawde docelowym odbiorc� ma by� u�ytkownik iPhona
to nie ma ca�kowicie sensu zajmowa� si� tworzeniem interfejsu u�ytkownika w
oparciu o WinForms.
Do tworzenia UI s�u�� klasy z namespace MonoTouch.UIKit
Mozesz zapomnie� o ca�ym System.Windows
mo�esz te� zapomnie� o wiekszo�ci klas z System.Drawing
poniewaďż˝ sďż˝ to tylko tylko elegancie obiektowe pakowania
kryj�ce w �rodku microsoftowe GDI oraz GDIPlus
Og�lnie, MonoTouch wydaje si� raczej narz�dziem stworzonym na si�e
kolejnym kompilatorem C#
lecz w ca�kowitym oderwaniu od jego naturalnego �rodowiska
jakim jest .NET Framework
--
____________
Pozdrawiam
Robert Winkler
Nie zgodzďż˝ siďż˝ :)
To, �e MonoTouch nie implementuje pewnych czysto Microsoftowych
rozwi�za� raczej nie jest tu zbyt wielkim problemem. Implementacja
ca�ego frameworka .Net te� nie ma �adnego sensu. iPhone to w ko�cu
urz�dzenie mobilne i zastosowana zgodno�� z API Silverlight'a jest tu
jak najbardziej na miejscu i jest wystarczaj�ca do wi�kszo�ci zastosowa�.
tm
O jakiej zgodno�ci z Silverlight m�wisz ?
W MonoTouch nie masz JIT, wszystko musi zostaďż˝ juďż˝ na komputerze developera
skompilowane do postaci kodu maszynowego.
Nie masz najsilniejszego z element�w silverlighta czyli DLR
nie masz wiec mozliwo�ci korzystania z jezyk�w dynamicznych.
Nie masz Reflection.Emit, bo skoro na iPhone nie na JIT'a
to kto skompilowaďż˝ by ten kod,
wewn�trzna implementacja serializacji wyglada wiec inaczej,
musisz te� korzysta� z dodatkowych atrybut�w aby linker nie zagalopowa� sie
i nie "prze-optymalizowa�" ci klasy kt�r� chcesz serializowa�
usuwaj�c niekt�re z p�l/w�a�ciwosci klasy.
Tworzenie interfejsu u�ytkownika to w MonoTouch zupe�nie inna historia
nie co znamy z .NET'a czy Silverlight'a nie przyda siďż˝ na tym etapie.
Jedyny plus jaki moge przeznaďż˝ MonoTouch to wsparcie dla OpenGL
ale nawet to uda�o im si� spi^h^h^h "skomplikowa�"
tworz�c dwie oddzielne przestrzenie nazw dla klas obs�uguj�cych OpenGL.
Obowiazkiem programisty jest wiedzie� jaka wersja bedzie dost�pna
na urz�dzeniu na kt�rym dzia�ac b�dzie jego program.
Og�lnie koncepcja �wietna
ale �ycie i tak zrobi�o swoje
>> Powodzenia... Z ciekawo�ci czemu iPhone? U nas to niszowe, za
>> przeproszeniem, g�wno.
>
> Mam w planie sprzedawac moja gierke w AppleStore :-)
>
> Serio.
Nie masz zielonego poj�cia o programowaniu gier i ju� masz
zamiary robiďż˝ na tym kase? Analogiczna akcja z programowaniem
komunikator�w uda�a si� tylko Foltynowi, i to chyba tylko
ze wzgl�du na to �e trafi� na Polak�w, kt�rzy wezm� ka�de
g�wno byle po polsku ;-).
Serio. Popisz sobie hobbystycznie, dopiero jak b�dziesz fluentny
to napisz coďż˝ semi-komercyjnego, inaczej Twoje marzenia polecďż˝
w tzw. pizdu ;-).
>> Cena MonoTouch teďż˝ conajmniej nie zachwyca. Aczkolwiek:
>> http://xnatouch.codeplex.com/
>> Nie wg�ebiaj�c si� w to jak dobrze implementuje XNA/.NET FW,
>> to mo�e by� niez�y trop w kierunku game development na iPhone.
>
> Cena mono mi nie przeszkadza.
> Gorzej, ze musialbym miec kompa ze stajni apple.
> A gdzie ja go zmieszcze?
Po co komp ze stajni apple? Mac OS X od jakiegoďż˝ czasu chodzi na
platformie x86.
> Po tym co napisales to poczytam, dowiem sie i napisze jak trzeba.
Hopefully. ;-).
>> P.S. Nic osobistego, ale czemu najpierw nie nauczysz siďż˝ biegle .NET
>> na normalny FW a nie na CompactFramework/urz�dzenia mobilne?
>> Nie sprawiasz wra�enia bieg�o�ci w C#/.NET FW generalnie ;-).
>
>
> Ja nie pisze tej gierki bo umiem C#.
> Ja wlasnie po to ja pisze aby miec jakis cel nauki C#.
> Uczyc sie dla samej nauki albo do egzaminu to nie dla mnie.
Ucz si�, na normalny .NET FW na kompie, conajmniej mo�na pomin��
czas deploymentu na urz�dzenie mobilne/emulator pomi�dzy
kolejnymi testami.
>> Z do�� ograniczonego do�wiadczenia wiem, �e klepanie na urz�dzenia
>> mobilne niesie ze sobďż˝ dodatkowe szopki/utrudnienia/detale ;-).
>
> Na razie napisalem w C# kulki pod windows mobile.
> Na PictureBox'ach wlasnie.
>
> Dziala koszmarnie wolno, ale dziala.
To jaka jest przyjemno�� w grze kt�ra si� wlecze, kt�ra nie ma tej
semi-najwa�niejszej(wraz z grywalno�cia) miodno�ci graficznej? I do
tego my�lisz �e to sprzedasz? Mhm.
IMO, lepiej dla nauki pisa� pod Zune w XNA. Do tego nie musisz wyk�ada�
$999 na b�g wie jak nieu�ywalne �rodowisko, i potencjalnie zosta�
elitarystycznym Mak�wkarzem. ;-).
> A ile czasu zajmuje fizyczne przerzucenie aplikacji na pocket PC aby tam
> potestowac program!!! Koszmar po prostu.
Z tego co pami�tam nie bylo dramatu u mnie ;-).
> Normalnie pisze w Delphi, teraz musze sie rozszerzyc o C#, ot rynek pracy
> tego wymaga.
Mog�em si� domy�li� ze Delpiarz, "oprzyjmy wszystko o gotowe komponenty
wizualne/UI" a.k.a. "gdzie na Toolboxie VS jest TQuake3?" ;-).
> Przesiadka jest trudna, najwiecej problemow mam z przejsciem z edytora
> Delphi na Visual Studio.
Gdzie jest ta bariera nie do przej�cia? Delphi/BDS kl�ka przed VS i ca�uje
go w stopy. ;-).
> No ale to kwestia czasu, w koncu naucze sie wszystkich potrzebnych skrotow
> klawiszowych, moza uda mi sie przeniesc panel z komponentami z lewej,
> rozwijalnej strony na gore na przyklad :-)
Tzn. analogicznie do starego layoutu Delphi? Same ikonki, horyzontalnie,
jedna przy drugiej, bez podpisu? Bez sensu ;-).
"Imagesy", "guidelinesy", "semi-grywalno��", "fluentny".
> �le si� cz�owiekowi robi jak si� czyta twoje posty.
>
> "Imagesy", "guidelinesy", "semi-grywalno��", "fluentny".
Zapomnia�em doda� "prze coolowego" "Hopefully". Chyba ostatnio FC zda�e�
co? Congratulations!
3P
�adne FC tylko, niestety takie zboczenie zawodowe. W tym zawodzie 99%
materia��w jest w angielskim i po prostu m�zg tym nasi�ka. Mnie samemu ju�
nie chce si� wysila� na szukanie polskiego t�umaczenia i cz�sto uzywam np.
s�owa "propertisy" zamiast w�a�ciwo�ci czy ustawi� "enkoding" zamiast
kodowania.
yamma
>> Zapomnia�em doda� "prze coolowego" "Hopefully". Chyba ostatnio FC
>> zda�e� co? Congratulations!
>
> �adne FC tylko, niestety takie zboczenie zawodowe. W tym zawodzie 99%
> materia��w jest w angielskim i po prostu m�zg tym nasi�ka. Mnie
> samemu ju� nie chce si� wysila� na szukanie polskiego t�umaczenia i
> cz�sto uzywam np. s�owa "propertisy" zamiast w�a�ciwo�ci czy ustawi�
> "enkoding" zamiast kodowania.
No i w�a�nie zauwa�y�em, �e w s�siednim w�tku sam uzywasz s�owa "string".
:-)
yamma
Na poziomie API (czyli podzbioru pe�nego Frameworka).
> W MonoTouch nie masz JIT, wszystko musi zostaďż˝ juďż˝ na komputerze developera
> skompilowane do postaci kodu maszynowego.
Czy to jakaďż˝ specjalna wada?
> Nie masz najsilniejszego z element�w silverlighta czyli DLR
> nie masz wiec mozliwo�ci korzystania z jezyk�w dynamicznych.
> Nie masz Reflection.Emit, bo skoro na iPhone nie na JIT'a
> to kto skompilowaďż˝ by ten kod,
Piszesz tak jakby bez JIT i dynamicznego kodu ju� nic nie da�o si�
napisaďż˝. iPhone ma swoje wymagania i dlatego JIT'a nigdy tam nie zobaczysz.
I mo�e w�a�nie dzi�ki temu aplikacje napisane w MonoTouch b�d� szybsze,
a nie tak �lamazarne jak ca�e Windows Mobile?
> wewn�trzna implementacja serializacji wyglada wiec inaczej,
> musisz te� korzysta� z dodatkowych atrybut�w aby linker nie zagalopowa� sie
> i nie "prze-optymalizowa�" ci klasy kt�r� chcesz serializowa�
> usuwaj�c niekt�re z p�l/w�a�ciwosci klasy.
> Tworzenie interfejsu u�ytkownika to w MonoTouch zupe�nie inna historia
> nie co znamy z .NET'a czy Silverlight'a nie przyda siďż˝ na tym etapie.
No bo to jest zupe�nie inne urz�dzenie i dlatego inne UI ni� CocoaTouch
i tak nie ma tu racji bytu. Oprogramowanie napisane na iPhone ma mieďż˝
GUI zgodne z wytycznymi - i bardzo dobrze. Tak samo pisz�c w Mono dla
Linuxa, czy OS X'a, nie przyda Ci si� System.Windows.Forms (mimo pr�b
przeportowania) - i to nie nawet je�li chodzi o wygl�d kontrolek, co o
ca�e zachowanie UI aplikacji.
tm
Jeszcze zale�y jak si� tego u�ywa. Co innego od czasu do czasu, a co innego
5 s��w na post.
GG dalo rade. Koles jest milionerem.
Nic tylko podziwiac i brac przyklad :-)
Moja gierka na pewno bedzie hiciorem w AppleStore :-)
Nic tylko musze ja napisac, zaplacic jakiemus grafikowi za wspolprace i job
done.
Snow leopard dziala na x86 ale z tego co czytalem to sporo sie trzeba
natrudzic aby zechcial.
Ja sie nie lubie trudzic, ja lubie robic robote.
Moze do tego czasu dorobie sie jakiejs kolezanki z pieknym Applem w chacie
:-)
Polon
Nic tylko �yczy� powodzenia :). Nie zapomnij si� pochwali�
na grupie jak juďż˝ giera trafi na AppleStore =].
As if I cared. Generalnie to b�d� zadowolony jak si� 3P
a� tak �le z tego powodu zrobi �e zwymiotuje.
Kod te� piszesz po polsku? Programista my�li po angielsku.
Wszystkie licz�ce si� publikacje s� po angielsku.
Nie pisze tak�e polskich poronionych nazw identyfikator�w.
Szkoda mi czasu �eby pisa� posty pi�kna polszczyzna albo
szuka� zamiennik�w dla idiom�w. Wszyscy zrozumieli? Tak.
3P kt�ry nic nie wni�s� do tematu sie przypierdolil? Tak.
Gratulacje. Jeszcze poszukaj liter�wek albo brakuj�cych
diaktrytyk�w.
A je�eli mowisz o FCE, to tak, dekady temu zrobi�em FCE.