Vinnaren i pepparkakshustävlingen!
2021-09-29, 12:44
  #1
Medlem
Kod:
Vector2D worldToMap(Vector2D pos) {
	int TILE_WIDTH = 60;
	int TILE_HEIGHT = 30;
	int TILE_WIDTH_HALF = TILE_WIDTH/2;
	int TILE_HEIGHT_HALF = TILE_HEIGHT/2;
	int map_x = (pos.x / TILE_WIDTH_HALF + pos.y / TILE_HEIGHT_HALF) / 2;
	int map_y = (pos.y / TILE_HEIGHT_HALF - (pos.x / TILE_WIDTH_HALF)) / 2;
	Vector2D result;
	result.x = map_x;
	result.y = map_y;
	return(result);
};
void lighting(std::vector<Sprite> toAffect,Sprite lightsource) {
	for (Sprite& a : toAffect) {
		Vector2D temp;
		temp.x = a.pos.x - (resolution.x/2);
		temp.y = a.pos.y - (resolution.x/2);
		SDL_SetTextureColorMod(a.texture,1000/getDistance(worldToMap(temp).x,worldToMap(temp).y,worldToMap(lightsource.pos).x,worldToMap(lightsour  ce.pos).y),1000/getDistance(worldToMap(temp).x,worldToMap(temp).y,worldToMap(lightsource.pos).x,worldToMap(lightsour  ce.pos).y),1000/getDistance(worldToMap(temp).x,worldToMap(temp).y,worldToMap(lightsource.pos).x,worldToMap(lightsour  ce.pos).y));
	};
};

https://i.imgur.com/r34QkFO.png

Resultatet blir delvist förväntat, dock blir t.ex rutorna som är tre rutor bortom ljuskällan mörkare än förväntat. Meningen är att det belysningen på brickorna ska vara linjärt korrelerat till avståndet till riddaren.
__________________
Senast redigerad av realnigga 2021-09-29 kl. 12:50.
Citera
2021-11-03, 17:30
  #2
Medlem
Citat:
Ursprungligen postat av realnigga
Kod:
		temp.x = a.pos.x - (resolution.x/2);
		temp.y = a.pos.y - (resolution.x/2);
};

Kan inte mycket av vad koden gör men kan det vara så att det ska vara: temp.y = a.pos.y - (resolution.y/2); istället?
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback