2017-07-29 4 views
-3

Ich habe diesen Fehler, und ich möchte es zu beheben, sagt es nicht dezimal zu int konvertieren, ich weiß nicht, wo (int) oder (dezimal) zu setzen.Kann nicht konvertieren Dezimal zu Int

Das Zeichen bewegt sich 8pix/s und wird in einer Dezimalzahl gespeichert.

Heres der Code

 int[,,] Map = new int[151, 151, 11]; 
    decimal GuyY = 1; 
    decimal GuyX = 1; //Placeholder for other math 

    if (Map[GuyX/32, Math.Ceiling(GuyY/32) - 1, 1] = 1) 
    { 
    } 
+0

aber 'guyX' und' guyY' sind * nicht * initialisiert? –

+0

Sie sollten erklären, warum Sie Dezimalzahlen für diesen Code verwenden – Steve

+2

Verwenden Sie 32.0 und 1.0. – jdweng

Antwort

1

Die Indizes [,] eines Arrays haben ganzen Zahlen sein. Die Division einer Dezimalzahl GuyX durch eine Ganzzahl 32 führt zu einer decimal, die nicht als Index gültig ist.

Sie müssen auch == verwenden, um einen booleschen Ausdruck auszuwerten.

resultierende Code wäre:

if (Map[(int)(GuyX/32), (int)Math.Ceiling(GuyY/32) - 1, 1] == 1) 
{ 

} 
+0

Ja, das = am Ende war ein Unfall .. Danke !!! – orange313