Spiele in C#
-
Spiele in C#? Ja/Nein. Warum?
-
Ja, warum nicht?
-
Es gibt ja auch ein kommerzielles Spiel, dass in C# programmiert wurde (Arena Wars). Auch, wenn das eher die absolute Minderheit ist. Und kleinere Spielchen sind erst recht kein Thema...
-
Wenn eher die Ausnahme: Welches Sprache statt dessen, wenn einem C++ zu Kacke (auf Quellcode-/Syntaxebene, nicht in bezug auf die kompilierte Datei) ist?
-
kommt darauf an welche art von spielen
c# ist nicht dafuer bekannt serh verformant zu sein - fuer ien kartenspiel oder solche "minispiele" reicht es locker - aber ein ego shooter oder generell aufwendigeres spiel mit 3d elementen - da ist c++ schon die beste wahlzudem
die syntax von cpp und c# ist doch verdammt aehnlich...
-
Ich würde mal sagen, bei den Spielen, die der Threadersteller wahrscheinlich schreiben wird (ich gehe mal davon aus, dass er kein zweites Crysis programmieren wird), wird C# locker hinhauen. Er kann nicht soviele Fehler machen wie in C++, kommt schneller voran und kann genauso Schnittstellen wie DirectX nutzen...
-
Hallo
Ich glaube auch, dass ein Hobbyprogrammierer mit c# und xna sehr gut bedient ist.
chrische
-
Mr Evil schrieb:
kommt darauf an welche art von spielen
c# ist nicht dafuer bekannt serh verformant zu sein - fuer ien kartenspiel oder solche "minispiele" reicht es locker - aber ein ego shooter oder generell aufwendigeres spiel mit 3d elementen - da ist c++ schon die beste wahlIch hab mal gehört, C# kann da mithalten. Weiß aber nicht, was davon zu halten ist.
Mr Evil schrieb:
die syntax von cpp und c# ist doch verdammt aehnlich...
Aber viel unauberer und fehleranfälliger:
int i; // Uninitialisiert, Verwendung später trotzdem möglich if (i) { } // Impliziter Cast von int in bool if (i = 5) { } // Zuweisung statt Vergleich switch (i) { case 1: doSomething(); // break vergessen case 2: doSomethingElse(); }
Seit ich umfassender mit C# zu tun habe, ist mir C++ ein Greuel geworden. (Aber off-topic, darum geht's jetzt nicht.)
-
Dass das Spiel für den C64 sein soll hatte ich erwähnt?
-
Gibt es bei C#-switches kein break?? Ich finde das eigentlich sehr praktisch, um mehrere cases zusammenzufassen, das spart redundanten Code oder umständliches Umdesignen. Und wenn man daran gewöhnt ist, vergisst man es normalerweise auch nicht.
-
_matze schrieb:
Gibt es bei C#-switches kein break?? Ich finde das eigentlich sehr praktisch, um mehrere cases zusammenzufassen, das spart redundanten Code oder umständliches Umdesignen. Und wenn man daran gewöhnt ist, vergisst man es normalerweise auch nicht.
-
Nachtrag:
case 1:
case 2:
case 3:
Anweisung;
break;
geht natürlich sowieso.
-
The schrieb:
Nachtrag:
case 1:
case 2:
case 3:
Anweisung;
break;
geht natürlich sowieso.nur solang zwischen den cases kein code ist
-
[cs]
switch(bla)
{
case 1:
case 2:
DoSomeCode();
goto case 3;
case 3:
break;
}
[cs]Im Grunde viel sauberer weil man den Sonderfall (fallthrough) explizit angeben muss. Bei einem nicht vorhandenen break kann man im nachhinein schwer sagen ob das absichtlich oder versehentlich vergessen wurde....
Wobei die C# variante mehr kann als nur fallthrough, da man zu einem beliebigen Label springen kann.
-
Braucht man das eigentlich manchmal oder sogar öfters, "
goto case X
"?
-
also das break brauch man auf jeden fall wenn man nicht will das der zur nächsten case Anweisung springt (http://msdn.microsoft.com/de-de/library/06tc147t(VS.80).aspx)
MfG
-
- ich brauchte noch nie ein fallthrought, ein switch case selber hab ich wenn dann eh nur in ner factory - sonst hab ich kein bedarf nach switch/cases
@Destiniy
wenn man nach dem case kein break macht, aber das case code hat, wirft der compiler bereits ein error - nur wenn man kein code hat und die cases untereinander, nur dann wird weiter gesprungen bis code gefunden wirddh ein unbeabsichtigtes aufrufen des nachfolgenden cases gibt es in c# nicht
-
das steht aber im wiederspruch zu dem MSDN beitrag in dem Link
-
Destiniy schrieb:
das steht aber im wiederspruch zu dem MSDN beitrag in dem Link
Wieso? Du sagst selbst, das break braucht man auf jeden Fall (einzige Ausnahme laut Doku: case enthält keinen Code). Und wenn man es vergisst, gibt's 'nen Compiler-Fehler. In der Doku steht ja auch, dass ein break nötig ist, abgesehen von der Ausnahme...
-
OK
hatte das mit dem leer überlesen
Im folgenden Beispiel wird veranschaulicht, dass bei leeren case-Bezeichnungen von einer case-Bezeichnung zur nächsten fortgefahren werden kann