I '1 ;{*IH :h\W'L\klU TWORZYMY TRÓJWYMIAROWĄ GRĘ, CZ. 1
Zainstalowaliśmy już środowisko programistyczne i wszystlde niezbędne dodatki. Możemy więc przystąpić do uruchomienia jednego z dołączonych do silnika Irrlicht projektów. Dzięki temu dowiemy się, jak wygląda proces kompilowania -wiedza ta przyda się później, podczas tworzenia własnej gry.
1 Uruchamiamy środowisko programistyczne SharpDevelop. Z menu [Ml wybieramy podmenu [otwórz] oraz pozycję |.-g. grojek/Rozwiązanle...!.
2 Z katalogu C:\Irrlicht\Examples.net\ 01.HelloWorld_cs wybieramy plik
nil 0i.HeiioWoild_7.0.cłpioil i klikamy.na przycisk ifltwórz]. W oknje z pytaniem • klikamy
Znateiono Projekt Vtsua) Studlo.fCT, Ceyprzekonwitować go do Sdutton Format 9.00 (Vi5ual Studio 2005)7
na przycisk [Ml- Dzięki temu projekt napisany dla Microsoft Visual Studio .NET zostaje przekonwertowany na format SharpDevelop.
1 Po chwili w panelu • otwarty zostaje I projektU^a Qi.HelioWorld_7.01. Możemy zająć się jego kompilacją i uruchomieniem.
B [25 Rozwiązanie 01.HdloWor1d_7.0 Sgl 01.HelloWorld_7,0 B3 •{•jyi Referencje •fi App.lco )■•••■ gjj Assembłylnfo.cs i-- gjj} Example.cs
4 Najpierw w dowolnym edytorze tekstowym otwieramy do edycji plik E 01.HeltaWotld_7.0.»lnl.
9 Ekspert radzi
Ekspert zachęca do przejrzenia zawartości znajdujących się w projekcie plików. W kolejnym artykule poznamy szczegółową budowę projektu oraz znaczenie poszczególnych plików.
i Popularne silniki gier
Microsoft Visuai Studio Solufcion File, Format yersipn 9.00 ił SharpD.eyalop 2.0.6.1710
Proj oct(*{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")
"01.HelloWorld 7.0", "Ol.HelloWorld^?.0.csproj "<04123B67-C0'dB-4BD7-86C9-CCCA17503D04)"
EndProjoct Global
GlobalSectlon (TOwtidnConfiguratlbiiglatforniB)
,'Conf igName. o] Any CPU = Debug]Any CPU \
Vconf igName. lj Any CPU = ReleasejAny CPU_/
E n dGlobnISgctłon
GlobalSection(ProjectDępendenoięs) “ postSolution
EndGlobalSection
GlobalSectlon(Extens±bilityGlobąls) “ postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) «* postSolution
EndGlobalSection
GlobalSectlon(ProjectGonfigurationplatforms) = postSolution
{04123B67-C0DB-4BD7-86C9-CCCA17503D04}.DebugIAny CPU.ActiveCfg = Debug|Any CPU {04123B67-C0DB-4BD7-86C9-CCCA17503D04}.Debug|Any CPU.Build.O <* Debug|Any CPU {04123B67-C0DB-4BD7-86C9-CCCA17503D04).Releaae|Any CPU.ActiveCfg « Release|Any CPU {04123B67-C0DB-4BD7-86C9-CCCA17503DO4}.ReleasejAny CPU.Build.O - ReleasejAny CPU {04123B67-CODB-4BD7-86C9-CCCA17503D04}.ConfigName.0 <04123B67-C0DB-4BD7~86C9-CCCA17S03D04}.ConfigName.0 {04123B67-Ć0DB-4BD7-86C9-CCCA17503D04 >.ConfigName.1 {04123B67-CODB-4BD7-86C9-CCCA17503D04}.ConfigName.1
EndGloba1Sect ion EndGlobal
preSolution
Any CPU.Build.O =* DebugJAny CPU Any CPU.ActiveCfg = DebugIAny CPU Any CPU.Build.O » ReleasejAny CPU Any CPU.ActiyeCfg ** ReleasejAny CPU
World_7.0.s!n
Usuwamy z niego wiersze 4 i zapisujemy dokonane zmiany. Jest to niezbędne do poprawnej kompilacji projektu w SharpDevelop.
fcnnroole-c* | |
«J > X | |
|7JJ .01 HHkł'^vkt£v«rc<« |
—31- |
-3 |
\r*li\y System:
u*ino Ierilchc; // compiler orcoc here? Look ac che : ualno Irrlicht.Vldeo: uain® Irrlicht.Core:
ualno Irrlicht.Scene; ______
PROBIEH3 olth thłs source?
Sanie solutlcne vlch miahc help:
- It your canpiler complalna thec 1Irrlicht1 cann1 odd che Irrlicht.NIT.dli £lle lin toln\uln32-Vlsu. łn che solutlon browser.
- It conrpiles, but your program throus en exceptl> "An unhanctlcd excopclon q£ type 1 System.IO.FIleN' Addlttonal mCortnatloni file or osaewbly nsuw* Ir:' vaa not lound.*1
Solutlont You are jnissing the Jlle Irrliche.IiLL. Tok exeniplc uhero cblo program to.
W panelu
klikamy dwukrotnie na
w nazwę pliku i ,31 Exampte.cs] (czyli główny plik źródłowy przykładowej aplikacji). Treść pliku pojawia się w edytorze SharpDevelop f.
6 Musimy teraz zmodyfikować pewien fragment kodu tak, aby skompilowana aplikacja mogła bez problemów załadować modele oraz tekstury. W tym celu linie 45, 46 oraz 47 zmieniamy na f.
7 Modyfikacji dokonujemy również w wierszach o numerach 51 oraz 52. Znajdujący się w nich kod zamieniamy na •:--------------
8 Teraz możemy już skompilować przykładowy projekt. Klikamy prawym przycis-
ITexture texSydney = device.VideoDriver.GetTexture(’£**..Y... \media\sydney .btnp"); ITexture toxWall = devIce.Videppriv.er .GetTexture{0".. \. \.. \.. \ media Wall. bmp");
IToxturo texLogo ■ device.VideoDriver.GetTexture(g*..\roedia\irrlichtlogoaligned.jpg");
Irrlicht.Scene.łAnimatedMesh mesh = device.SceneManager.GetMesh(@ \\.Y..\media\sydney.md2");
i
5 |
i ' 1 ‘ TT f. . |
--- | ||
Nazwa silnika Strona WWW |
crystai hpace |
uoom engme showfile,php3?filejd=7430 |
uoom ó engme |
Irrlicht engine http://irrlicht.sourceforge.net darmowy (Open Source) Silnik o otwartym kodzie napisany w języku C++. Pozwala na tworzenie projektów komercyjnych bez potrzeby publikacji ich kodu źródłowego. |
Cena . ■' '■; Najważniejsze cechy |
darmowy (licencja LGPL) Napisany w C++. Ma budowę modułową, która rozszerzana jest poprzez dodatkowe wtyczki. Ma zaimplementowany silnik fizyczny, wsparcie dla poziomów Quake'a (program konwertujący), dźwięk 20 oraz 30. |
darniowy (licencja bNU brl) Nie jest pełnym silnikiem 30 - ma pewne ograniczenia wynikające z zastosowanych algorytmów. Nie można na przykład tworzyć poziomów, w których jedno pomieszczenie znajduje się nad drugim, Obiekty znajdujące się w polu widzenia gracza to tak naprawdę odpowiednio wyświetlane obrazy 20. |
niejawna W chwili stworzenia wyróżniał się renderin-giem wypukłości (bump mapping) oraz miękkimi cieniami dynamicznymi. | |
Gry wykorzystujące silnik |
Exltium,Vitalstate. BonezAdzentures |
Doom, Doom II, HeXen, Heretic, Strife. HacX |
Doom3.Quake4 |
Arena, Road Wars 3D, SlamSoccer2006. Bloodgiver |
64 LUTY 2007
eKspert