Danke für den Tipp, aber leider werden hit.u1 und hit.v1 nach dem Trace nicht gesetzt. Funktioniert vielleicht nur bei Model-Entities!?
Habe es bisher so probiert:
Code:
VECTOR temp_vec;
vec_set(temp_vec, mouse_dir3d);	
vec_normalize(temp_vec, 90000000);
vec_add(temp_vec, camera.x);  // Vektor für den Trace vorbereitet
BMAP* temp_bmap = bmap_for_entity(me,0);  // Die Bitmap geladen
var alphawert;
COLOR farbe;
var format = bmap_lock(temp_bmap, 0);  // Bitmap gelockt und Format gespeichert
var pixel;
my.push = 99999;  //Push erhöht, damit nur diese Enitity vom Trace getroffen werden kann
wait(1);  // einen Frame warten, das c_trace in event_funktionen sonst nicht funktioniert
while(mouse_ent == me)  // solange die maus über dem Sprite ist
{
	if (c_trace(camera.x, temp_vec, (IGNORE_PUSH | SCAN_TEXTURE | USE_POLYGON)) > 0)  // falls der trace von der camera durch den mousezeiger etwas trifft
	{
		if(hit.entity == me)  // falls das sprite selbst getroffen wurde
		{
			pixel = pixel_for_bmap(temp_bmap, hit.u1, hit.v1);  // pixel an trefferstelle auslesen (geht nicht)
			pixel_to_vec(farbe, alphawert, format, pixel);  // pixelwerte speichern
			debug1 = hit.u1;  // bleibt immer 0
			debug2++; // wird korrekt hochgezählt, solange der mauszeiger über dem sprite ist
		}
		vec_set(temp_vec, mouse_dir3d);
		vec_normalize(temp_vec, 90000000);
		vec_add(temp_vec, camera.x);  // trace-vektor neu berechnet, da sich die mausposition über dem sprite ja ändert
	}
	wait(1);
}
bmap_unlock(temp_bmap);  // Bitmap wieder freigegeben
debug1 = -2;  // wird korrekt zurückgesetzt, wenn die maus das sprite verlässt!
my.push = 1;  // push wieder reduzieren

Vielleicht siehst du ja einen Fehler...

Danke schonmal!


GameStudio Version: A7 Pro v7.86