[Dgame] Sprite loading and setting position in another class

Jack via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Aug 25 05:50:49 PDT 2015


So I've been using Dgame to learn about game development and I'm 
having an error when I'm trying to set a sprite's position 
initialized and stored in another class.

Basically my code is:
//Texman.d//////////////////////////////////////

Class Texman
{
   //variables

	void addSprite(string sprite_file, string name)
	{
		Surface wiki_img = Surface(sprite_file);
		Texture wiki_tex = Texture(wiki_img);
		sprite_list[name] = new Sprite(wiki_tex);
                 sprite_list[name].setPosition(1,1); //tried to 
remedy by this		
	}
}

//GameObject.d////////////////////////////

class GameObject
{
Sprite sprite;
float location_x;
float location_y;
//other variables

	void setLocation(float x, float y)
	{
		sprite.setPosition(x,y);
		location_x = x;
		location_y = y;
	}
}

//main.d/////////////////////////////////


	void create()
	{
		wnd = Window(1024, 720, "Dgame Test");
		sample_object = new GameObject();
		texman = new TextureManager();
		texman.addSprite("images.png", "kirino");
		sample_object.setSprite(texman.getSprite("kirino"));
		sample_object.setLocation(500,500);
	}
//////////////////////////////////////////////////////

And I'm having an error namely
"First-chance exception: core.exception.AssertError null"
pointing at the setLocation on GameObject.d.

I tried to remove the "setLocation" method and tried to set 
Location on TextureManager itself and it worked.

So is setting the position of a sprite outside of the class it 
initialized into forbidden, or am I doing something wrong here?


More information about the Digitalmars-d-learn mailing list