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

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

1

24.11.2003, 17:50

Warum werden meine Tiles gestaucht?

Hallo!

ERstmal nen bisschen Code. Ich bin grad dabei, eine 2D-Karte zu proggen. Der Render Funktion übergibt man unter anderem die Startposition auf dem Bildschirm (StartX), das Tile mit dem begonnen werden osll (TileX, TileY) und die genaue Positionierung der Tiles (SmoothX, Y)
Damit meine ich, dass die Karte zwar trotzdem bei StartX beginnen soll, aber nicht direkt mit dem TIleAnfang, sonder zB erst mit Pixel 20, das gibt SmoothX an.
Unten ist der Code mit dem ich das versuche.
Aber wenn ich das ausführe, werden die Tiles zwar gekürzt, aber nicht die Textur, sie wird nur gestaucht.
m_TextureWidthUV[] gibt die Breite eines TIles in uv an.
Könnt ihr mir hlefen?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
meTile Tile;
if(SmoothX < 0)
{
  int Column = 0;            // erste Spalte verkleinern
  int Zuviel = -SmoothX;  // Es wird SmoothX zuviel gezeichnet
  DWORD VertCursor = 0;

  for(Line = 0; Line < NumTilesToDrawY; Line++)
  {
     VertCursor = Line * NumTilesToDrawX * 6;
     Tile = m_TileData[Layer][Line + TileY][Column + TileX];
            
     m_Vertizes[VertCursor + TOPLEFT].x = StartX;
     m_Vertizes[VertCursor + BOTTOMLEFT_T1].x = m_Vertizes[VertCursor + BOTTOMLEFT_T2].x = StartX;
            
      m_Vertizes[VertCursor + TOPLEFT].u += m_TileWidthUV[Tile.TexNumber] * Zuviel / m_TileWidth;
      m_Vertizes[VertCursor + BOTTOMLEFT_T1].u = m_Vertizes[VertCursor + BOTTOMLEFT_T2].u = m_Vertizes[VertCursor + TOPLEFT].u;
        
   }
}
Gruß, Maxi

Hier, die Homepage von meiner Band:
www.maxis-house.de

Könnt euch unsere ersten Songs saugen...

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

2

24.11.2003, 19:01

Hab den Fehler gefunden , funtioniert jetzt
Gruß, Maxi

Hier, die Homepage von meiner Band:
www.maxis-house.de

Könnt euch unsere ersten Songs saugen...