XBox 360: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Justus (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (6 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{löschen}} | |||
Die XBox 360<ref name="XBOX">Wikipedia Artikel zur [[wikipedia:de:Xbox_360|XBox 360]]</ref> ist eine Spielekonsole der Firma [[wikipedia:de:Microsoft|Microsoft]]. Mit [[XNA]] können auch ''normale'' Konsolen für eigene Entwicklungen genutzt werden. Man benötigt also kein [[wikipedia:de:Xbox_360#Development_Kits|Development Kit]] um ein eigenes Spiel zu schreiben. | Die XBox 360<ref name="XBOX">Wikipedia Artikel zur [[wikipedia:de:Xbox_360|XBox 360]]</ref> ist eine Spielekonsole der Firma [[wikipedia:de:Microsoft|Microsoft]]. Mit [[XNA]] können auch ''normale'' Konsolen für eigene Entwicklungen genutzt werden. Man benötigt also kein [[wikipedia:de:Xbox_360#Development_Kits|Development Kit]] um ein eigenes Spiel zu schreiben. | ||
Allerdings besteht diese Möglichkeit nur unter gewissen Einschränkungen. Es steht zum Beispiel nur ein kleiner Teil des [[.NET]]-Frameworks zur Verfügung, in der Hauptsache sind dies das [ | Allerdings besteht diese Möglichkeit nur unter gewissen Einschränkungen. Es steht zum Beispiel nur ein kleiner Teil des [[.NET]]-Frameworks zur Verfügung, in der Hauptsache sind dies das [https://de.wikipedia.org/wiki/.NET_Compact_Framework .Net Compact Framework] und [[XNA]]. Auch ist der direkte Hardwarezugriff, außer mit [[Shader|Shadern]], und der Zugriff auf das Dateisystem nicht möglich. | ||
Besonders das Compact Framework ist extrem einschränkend. Zum Beispiel kann es [[Inlining|Methodeninlining]] nur für Methoden von einer [[Compiler|kompillierten]] Größe von 16 Bytes [[Bytecode]]<ref name="NetCompactPerformance">http://blogs.msdn.com/netcfteam/archive/2005/05/04/414820.aspx .NET Compact Framework version 2.0 Performance and Working Set FAQ</ref>. Auch [[Reflection]] und damit | Besonders das Compact Framework ist extrem einschränkend. Zum Beispiel kann es [[Inlining|Methodeninlining]] nur für Methoden von einer [[Compiler|kompillierten]] Größe von 16 Bytes [[Bytecode]]<ref name="NetCompactPerformance">http://blogs.msdn.com/netcfteam/archive/2005/05/04/414820.aspx .NET Compact Framework version 2.0 Performance and Working Set FAQ</ref>. Auch [[Reflection]] und damit Serialisierung sind nur sehr eingeschränkt möglich. Man kann keine [[Generic|generische]] [[Reflection]] betreiben und für die Serialisierung braucht man einen [[wikipedia:de:Parameter_(Informatik)#Parameter.C3.BCbergabe|parameterlosen]] [[Konstruktor]]. | ||
Um zumindest das Inlining-Problem etwas abzuschwächen kann man ''von Hand'' inlinen. Dazu fügt man (Achtung, jetzt wird es hässlich) den Code der eigentlich aufgerufenen Methode anstelle des Methodenaufrufs. | Um zumindest das Inlining-Problem etwas abzuschwächen kann man ''von Hand'' inlinen. Dazu fügt man (Achtung, jetzt wird es hässlich) den Code der eigentlich aufgerufenen Methode anstelle des Methodenaufrufs. | ||
| Zeile 9: | Zeile 11: | ||
<source lang="csharp"> | <source lang="csharp"> | ||
Vector3 v1 = new Vector3(1, 2, 3); | Vector3 v1 = new Vector3(1, 2, 3); | ||
Vector3 v2 = new Vector3( | Vector3 v2 = new Vector3(3, 2, 1); | ||
Vector3 v2 = v1 + v2; | Vector3 v2 = v1 + v2; | ||
</source> | </source> | ||
| Zeile 15: | Zeile 17: | ||
<source lang="csharp"> | <source lang="csharp"> | ||
Vector3 v1 = new Vector3(1, 2, 3); | Vector3 v1 = new Vector3(1, 2, 3); | ||
Vector3 v2 = new Vector3( | Vector3 v2 = new Vector3(3, 2, 1); | ||
Vector3 v2.X = v1.X + v2.X; | Vector3 v2.X = v1.X + v2.X; | ||
Vector3 v2.Y = v1.Y + v2.Y; | Vector3 v2.Y = v1.Y + v2.Y; | ||
| Zeile 23: | Zeile 25: | ||
<source lang="csharp"> | <source lang="csharp"> | ||
Vector3 v1 = new Vector3(1, 2, 3); | Vector3 v1 = new Vector3(1, 2, 3); | ||
Vector3 v2 = new Vector3( | Vector3 v2 = new Vector3(3, 2, 1); | ||
#region v3 = v1 + v2; | #region v3 = v1 + v2; | ||
Vector3 v2.X = v1.X + v2.X; | Vector3 v2.X = v1.X + v2.X; | ||
| Zeile 31: | Zeile 33: | ||
</source> | </source> | ||
Diese region kann man dann in [[VisualStudioTutorial|Visual Studio]] einklappen. | Diese region kann man dann in [[VisualStudioTutorial|Visual Studio]] einklappen. | ||
[[Bild:VSRegionEinklappen.png|none|Region eingeklappt]]<noinclude> | [[Bild:VSRegionEinklappen.png|none|Region eingeklappt]] | ||
Weitere XBox Performance Hinweise gibt es hier<ref name="XBOXGameFest">http://www.ziggyware.com/readarticle.php?article_id=110&rowstart=2 Shawn Hargreaves: Understanding XNA Framework Performance</ref> und hier<ref name="NetCompactPerformance">http://blogs.msdn.com/netcfteam/archive/2005/05/04/414820.aspx .NET Compact Framework version 2.0 Performance and Working Set FAQ</ref><noinclude> | |||
== Referenzen == | == Referenzen == | ||
<references /> | <references /> | ||
[[Kategorie:Begriffe]][[Kategorie:Code-Beispiele]][[Kategorie:XNA]]</noinclude> | [[Kategorie:Begriffe]][[Kategorie:Code-Beispiele]][[Kategorie:XNA]]</noinclude> | ||
