Iso Map fehler?



  • Hi,

    schreibe zur Zeit an einer TileEngine in DirectX 9. Nun habe ich mir eine klasse geschrieben die die Map erzeugt, und Malt. Mein problemm ist jetzt das er die Tiles nicht aneinander Malt sondern mit einem gewissen abstand. Und ausserdem habe ich das gefühl, das wenn ich das programm starte, es eine art endlos schleife gibt? Ich poste den Code mal, vieleicht kann mir ja einer von euch helfen.

    #include "CMap.h"
    
    void CMap::CreateMap()
    {
    	for(y=0; y<MAP_HEIGHT; y++)
    	{
    		for(x=0; x<MAP_WIDTH; x++)
    		{
    			Map[x][y].x = (x - y) * TILE_WIDTH / 2;
    			Map[x][y].y = (x + y) * TILE_HEIGHT / 2;
    		}
    	}
    }
    
    void CMap::DrawMap(LPDIRECT3DDEVICE9 lpD3DDevice)
    {
    	for(y=0; y<MAP_HEIGHT; y++)
    	{
    		for(x=0; x<MAP_WIDTH; x++)
    		{
    			Map[x][y].Sprite.CreateSprite(lpD3DDevice, "Tile.bmp", D3DCOLOR_ARGB(0xFF, 0, 0, 0));
    			Map[x][y].Sprite.SetPosition(Map[x][y].x, Map[x][y].y);
    			Map[x][y].Sprite.Draw();
    		}
    	}
    }
    

    Vielen Dank

    Gruß



  • Nein, da ist keine Endlosschleife. Was versprichst du dir eigentlich von den ganzen CreateSprite Aufrufen?

    Bye, TGGC (Demo or Die)



  • Kann mir denn einer einen tipp geben wie es richtig wehre (auch das mit den CreateSprite aufrufen)? Da,

    1.) die Tiles nicht direkt aneinander liegen sondern ein kleiner abstand dazwischen ist.

    2.) sobald ich das Programm starte, es nach einer gewissen Zeit nicht mehr richtig reagiert. Und die Speicherauslastung für das Programm schnellt in die Höhe.

    Danke

    Gruß



  • Powerplayer schrieb:

    Kann mir denn einer einen tipp geben wie es richtig wehre (auch das mit den CreateSprite aufrufen)? Da

    2.) sobald ich das Programm starte, es nach einer gewissen Zeit nicht mehr richtig reagiert. Und die Speicherauslastung für das Programm schnellt in die Höhe.

    TGGC schrieb:

    Was versprichst du dir eigentlich von den ganzen CreateSprite Aufrufen?

    💡

    Jedes Mal wenn Du den Krempel zeichnen willst werden erstmal 'nen Haufen neue Sprites erstellt (ohne die alten zu löschen).



  • die Tiles nicht direkt aneinander liegen sondern ein kleiner abstand dazwischen ist.

    da gibts so nen Artikel der beschreibt: "How to map Texels to Pixels" oder so ähnlich - du benutzt d3d anscheinend für ein 2D spiel - oder?



  • Vertexwahn schrieb:

    die Tiles nicht direkt aneinander liegen sondern ein kleiner abstand dazwischen ist.

    da gibts so nen Artikel der beschreibt: "How to map Texels to Pixels" oder so ähnlich - du benutzt d3d anscheinend für ein 2D spiel - oder?

    Ja das ist richtig.

    Gruß



  • Sgt. Nukem schrieb:

    Powerplayer schrieb:

    Kann mir denn einer einen tipp geben wie es richtig wehre (auch das mit den CreateSprite aufrufen)? Da

    2.) sobald ich das Programm starte, es nach einer gewissen Zeit nicht mehr richtig reagiert. Und die Speicherauslastung für das Programm schnellt in die Höhe.

    TGGC schrieb:

    Was versprichst du dir eigentlich von den ganzen CreateSprite Aufrufen?

    💡

    Jedes Mal wenn Du den Krempel zeichnen willst werden erstmal 'nen Haufen neue Sprites erstellt (ohne die alten zu löschen).

    Okay das problemm habe ich in den Griff bekommen.

    Danke euch beiden.

    Jetzt muss ich mir nur noch was einfallen lassen wie ich die sprites ordentlich aneinander anzeige.

    Gruß

    [Edit]Es ist nur die y Achse die nicht ganz stimmt!!![/Edit]



  • Okay geschaft Danke

    Gruß


Anmelden zum Antworten