Gamestudio Links
Zorro Links
Newest Posts
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (AndrewAMD), 1,014 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
c_trace durch eine transparente Stelle in einem Sprite #360357
02/23/11 19:08
02/23/11 19:08
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Hallo, der Titel sagt es ja schon, kann man durch eine transparente Stelle in einem Sprite c_tracen und wenn ja, welche Bedingungen müssen erfüllt werden? Muss z.B. Polygon beim Sprite gesetzt werden? blush


Gruß
Alex =)
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: Alexander] #360359
02/23/11 19:13
02/23/11 19:13
Joined: May 2002
Posts: 7,441
ventilator Offline
Senior Expert
ventilator  Offline
Senior Expert

Joined: May 2002
Posts: 7,441
nein, c_trace() kann das nicht.

du könntest versuchen selbst an der stelle die transparenz zu überprüfen und dann dahinter weiterzutracen.

Re: c_trace durch eine transparente Stelle in einem Sprite [Re: Alexander] #360360
02/23/11 19:14
02/23/11 19:14
Joined: Apr 2005
Posts: 4,506
Germany
F
fogman Offline
Expert
fogman  Offline
Expert
F

Joined: Apr 2005
Posts: 4,506
Germany
Ich würde es so probieren:
Trace aufs Sprite -> Alphawert an der Trefferstelle auslesen

Quote:
hit.skin1,skin2 BMAP* pointers of the first and second texture of the hit surface. Can be used to determine the pixel color or alpha value at the contact position.


Alphawert == 0? - falls ja -> von der Trefferstelle weiter Richtung Ziel tracen, dabei
das Sprite ignorieren.

Edit: vent war schneller. laugh


no science involved
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: Alexander] #360361
02/23/11 19:16
02/23/11 19:16
Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
xxxxxxx Offline
User
xxxxxxx  Offline
User

Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
Du könntest bei c_trace scna_texture oder so setzen dann die beschaffen heit(alpha) prüfen und wenns transperent genug ist ein zeites mal von der position zum ziehl tracen(mit ignore_you) das machst du solange bis du angekommen bist! Ich weiß nicht ob es bei sprites klappt aber es sollte eigentlich seinen Zweck erfüffen es sei denn du schießt durch zehn transperteten sachen gleichzeitig durch dann wirts lam!
EDIT: zwei waren da schneller!
xxxxxxx

Last edited by xxxxxxx; 02/23/11 19:16.

Es ist immer wieder erstaunlich, dass Leute die riesen Scripte schreiben die einfachsten sachen nicht können zb. mich mit SIEBEN x zu schreiben! tongue
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: xxxxxxx] #360365
02/23/11 19:18
02/23/11 19:18
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Hallo zusammen, ja, super, danke für die Hilfe! Das sollte funktionieren. laugh


Gruß
Alex =)
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: Alexander] #360400
02/23/11 20:49
02/23/11 20:49
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Jetzt muss ich aber doch noch mal doof fragen. Ich habe bei c_trace SCAN_TEXTURE gesetzt und habe eine if Abfrage "if (hit.skin1 ...)" wie komme ich jetzt an den Alphawert heran? Im Handbuch steht es handelt sich um einen BMAP* Pointer, da würde mir aber nur "pixel_to_vec" einfallen, was es aber eigentlich nicht sein kann, oder?


Gruß
Alex =)
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: Alexander] #360401
02/23/11 20:51
02/23/11 20:51
Joined: Apr 2005
Posts: 4,506
Germany
F
fogman Offline
Expert
fogman  Offline
Expert
F

Joined: Apr 2005
Posts: 4,506
Germany
pixel_for_bmap ist das was Du suchst.


no science involved
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: fogman] #360423
02/23/11 21:34
02/23/11 21:34
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Ich glaube ich bin auf dem Holzweg. "Pointer_Skin1 = hit.skin1;" funktioniert noch, danach gibt es den Fehler "E1515: Invalid arguments".

Code:
Pointer_Skin1 = hit.skin1;

bmap_lock(Pointer_Skin1, 0);
pixel = pixel_for_bmap(Pointer_Skin1, Pointer_Skin1.x, Pointer_Skin1.y);
bmap_unlock(Pointer_Skin1); // unlock the locked bitmap

pixel_to_vec(temp, alpha, 8888, pixel);




Gruß
Alex =)
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: Alexander] #360431
02/23/11 22:12
02/23/11 22:12
Joined: Aug 2007
Posts: 1,922
Schweiz
Widi Offline
Serious User
Widi  Offline
Serious User

Joined: Aug 2007
Posts: 1,922
Schweiz
pixel = pixel_for_bmap(Pointer_Skin1, Pointer_Skin1.x, Pointer_Skin1.y);

wechsle das:

pixel = pixel_for_bmap(Pointer_Skin1, Pointer_Skin1.u1, Pointer_Skin1.v1);

u1 / v1 sind die Kontaktkoordinaten auf der hit.skin.
Frage auch ab, ob überhaupt eine entity getroffen wurde und führe den code nur aus, wenn dies zutrift (if (hit.entity))...
Teste auch das Format:
var format;
format = bmap_lock(...);
...
pixel_to_vec(temp, alpha, format, pixel);



Last edited by Widi; 02/23/11 22:16.
Re: c_trace durch eine transparente Stelle in einem Sprite [Re: Widi] #360648
02/25/11 19:32
02/25/11 19:32
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Hi, danke für deine Hilfe. Das Problem ist aber, er stürzt schon beim verriegeln des Bitmaps ab.

Code:
bmap_lock(Pointer_Skin1, 0);




Gruß
Alex =)
Page 1 of 2 1 2

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1