Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.12.2011, 15:25

while schleife von c++ zu c# / Wird nicht als boolisch gesehen

Hallo :)
z.Z. bin ich dabei ein wenig aus Assimp (Managed Assimp in C#) zu lernen. Mein Versuch gilt der Umsetzung des OpenGL Animation Demos in C#.
Bisher verlief alles tadellos. Bis zur einer while Schleife wo folgender Fall auftrat:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
void Animator::CalculateGlobalTransform(AnimationNode* pInternalNode) {
  //concatenate all parent transforms to get the global transform for this node
  pInternalNode->mGlobalTransform = pInternalNode->mLocalTransform;
  AnimationNode* pNode = pInternalNode->pParent;

  while (pNode) {
    pInternalNode->mGlobalTransform = pNode->mLocalTransform * pInternalNode->mGlobalTransform;
    pNode = pNode->pParent;
  }
}


Ich kenne mich zwar kaum in C++ aus, aber meines Wissens muss auch da eine boolische Prüfung bestehen. C# nimmt es leider nicht als boolisch und spuckt mir einen Konvertierungsfehler aus. Was genau wird hier für eine Bedingung gestellt?

Danke schonmal :)

Gruß Johnsen900

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

26.12.2011, 15:33

Willkommen im Forum :D

Die Bedingung würde ausgeschrieben (pNode != 0) lauten. Da es aber ein Zeiger ist weiß ich nicht ob es in C# noch Sinn macht.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

3

26.12.2011, 15:38

In C# (wie auch Java) würde das wohl am ehesten

C#-Quelltext

1
while(pNode != null)

heissen.

4

26.12.2011, 15:50

Naja, ich würd sagen, dass man in C# in jeder Containerartigen Klasse das IEnumerable<T>-Interface implementiert, damit man auch Linq nutzen kann ;) Ich würde auch gar nicht mit so nem Node-Gegrütze in C# anfangen, dann doch lieber die LinkedList<T> verwenden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »GreenPepper« (26.12.2011, 15:56)


Werbeanzeige