XBox 360: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Justus (Diskussion | Beiträge) Weiterleitung nach wikipedia:de:Xbox 360 erstellt |
Justus (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
Die XBox 360<ref name="XBOX">Wikipedia Artikel zur [[wikipedia:de:Xbox_360|XBox 360]]</ref> ist eine Spielekonsole der Firma [[wikipedia:de: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. | |||
[[Kategorie:Begriffe]] | |||
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 [[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 [[Serialisierung]] sind nur sehr eingeschränkt möglich. Man kann keine [[Generic|generische]] Reflection betreiben und für die Serialisierung braucht man einen [[Parameter|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. | |||
Also statt: | |||
<source lang="csharp"> | |||
Vector3 v1 = new Vector3(1, 2, 3); | |||
Vector3 v2 = new Vector3(1, 2, 3); | |||
Vector3 v2 = v1 + v2; | |||
</source> | |||
nimmt man besser | |||
<source lang="csharp"> | |||
Vector3 v1 = new Vector3(1, 2, 3); | |||
Vector3 v2 = new Vector3(1, 2, 3); | |||
Vector3 v2.X = v1.X + v2.X; | |||
Vector3 v2.Y = v1.Y + v2.Y; | |||
Vector3 v2.Z = v1.Z + v2.Z; | |||
</source> | |||
Damit das ganz etwas übersichtlicher wird, kann man das ganze mit einer [[Region|region]] umgeben: | |||
<source lang="csharp"> | |||
Vector3 v1 = new Vector3(1, 2, 3); | |||
Vector3 v2 = new Vector3(1, 2, 3); | |||
#region v3 = v1 + v2; | |||
Vector3 v2.X = v1.X + v2.X; | |||
Vector3 v2.Y = v1.Y + v2.Y; | |||
Vector3 v2.Z = v1.Z + v2.Z; | |||
#endregion | |||
</source> | |||
Diese region kann man dann in [[VisualStudioTutorial|Visual Studio]] einklappen. | |||
[[Bild:VSRegionEinklappen.png|none|Region eingeklappt]]<noinclude> | |||
== Referenzen == | |||
<references /> | |||
[[Kategorie:Begriffe]][[Kategorie:Code-Beispiele]][[Kategorie:XNA]]</noinclude> | |||
