textur an einer bestimmten stelle verfärben

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Kryan

Betreff: textur an einer bestimmten stelle verfärben

BeitragFr, Jan 13, 2006 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich hab ein kleines poblem bei meinem "ego-shooter":
wie mache ich es, dass sich die stelle, wo man mit ner waffe draufgeschossen hat, sich auch verfärbt??
Hier noch n Pic:
user posted image

Wäre für Hilfe seehhhhrrr dankbar Very Happy
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

skey-z

BeitragFr, Jan 13, 2006 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
am einfachsten, nimm ein Sprite und plazier es an die stelle und damit es nicht zu viele werden, gib ihm nebestimmte lebensdauer.

2. Version, rechne aus, wo sich das Einschuddloch auf dem Objekt befindet, und male es in ne 2. textur, die du dann als Layer aufs objekt legst
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Black Spider

BeitragSa, Jan 14, 2006 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
guck dir die CastleDemo in B3D an. Da entstehen Einschusslöcher per Sprites-so wird es übrigens auch bei neuen Games (RainbowSix) gemacht.
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

Markus2

BeitragSa, Jan 14, 2006 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Global hole_sprite=LoadSprite("spr\bullet_hole.bmp") ;Einschuss Löcher :-)
EntityBlend hole_sprite,2
ScaleSprite hole_sprite,40,40
SpriteViewMode hole_sprite,2
HideEntity hole_sprite

.HOLE

Type HoleType
 Field alpha#
 Field sprite
 Field Parent ;Entity evtl. Ziel
End Type
Global Hole.HoleType

Function HoleNew(pe,cx#,cy#,cz#,nx#,ny#,nz#)

 ;---------------------------------------- Max 10 Holes ,wenn mehr dann die ersten löschen

 Local c

 For Hole.HoleType=Each HoleType
  c=c+1
 Next
 If c>10 Then HoleFree First HoleType

 ;----------------------------------------

 Hole.HoleType=New HoleType
 Hole\alpha=1
 Hole\sprite=CopyEntity( hole_sprite )
 PositionEntity Hole\sprite,cx,cy,cz
 AlignToVector Hole\sprite,-nx,-ny,-nz,3,1

 MoveEntity Hole\sprite,0,0,-1
 EntityParent Hole\sprite,pe
 Hole\Parent=pe

End Function

;-------------------------------------------------------------

Function HolesUpdate(timed#)

 For Hole.HoleType =Each HoleType

  Hole\alpha=Hole\alpha-0.0025*(timed#*50.0)
  If Hole\alpha>0.0
    EntityAlpha Hole\sprite,Hole\alpha
  Else
   HoleFree  Hole
  EndIf

 Next

End Function

;-------------------------------------------------------------

Function HoleFree(h.HoleType)

 EntityParent h\sprite,0  ;falls am Ziel hängt !
 FreeEntity h\sprite
 h\sprite=123
 Delete h

End Function


5k41

BeitragSa, Jan 14, 2006 17:44
Antworten mit Zitat
Benutzer-Profile anzeigen
mh ich find das ja alles ganz gut, wobei ich glaub ich statt ner zeit ne löcherbegrenzung machen würde...ist glaub ich sicherer da man da genau sehe kann wie langsam das spiel maximal wird...
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Kryan

BeitragSa, Jan 14, 2006 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
so ähnlich habe ich es auch schon mit Kügelchen gemacht
war recht langsam, obwohl es auf 100 stück begrenzt war

ich versuch es mal mit sprites
ach ja: wie kann ich überprüfen, ob man diesen sprite dann auch wirklich sehen kann??

edit: oder wie kann man den punkt auf der textur bestimmen???
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

Dreamora

BeitragSa, Jan 14, 2006 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt im englischen Codearchiv Befehle für PickU PickV dann könntest du per LinePick arbeiten um die UV Koordinaten herauszubekommen.

Allerdings brauchst du die UV nicht. Der Sprite ist nicht auf der Textur, sondern ein Objekt, das 0.001 oder so vor der eigentlichen Wand ist, wodurch es aussieht als ob es auf der Textur wäre.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Kryan

BeitragSa, Jan 14, 2006 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
jaja...is mir auch klar...
nur ich würde das mit der textur-veränderung vorziehen

wie ist der link zu der englischen community?
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Markus2

BeitragSa, Jan 14, 2006 20:05
Antworten mit Zitat
Benutzer-Profile anzeigen
LinePick
gibt zurück welches Entity gepickt wurde
und die Stelle ist dann auch sichtbar und dein Sprite dann logischerweise auch .
HoleNew PickedEntity(),PickedX(),PickedY(),PickedZ(),PickedNX(),PickedNY(),PickedNZ()

Mit in Texture rum malen kannste vergessen weil die Texture
ja auf den meisten Objekten gekachelt ist Shocked
 

Dreamora

BeitragSa, Jan 14, 2006 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Kryan hat Folgendes geschrieben:
jaja...is mir auch klar...
nur ich würde das mit der textur-veränderung vorziehen


DAs hat nur ein Problem: Wenn du die Textur veränderst werden ALLE Objekte die diese Textur irgendwie drin haben, das Loch danach drauf haben. Deswegen macht man das nicht.
Und die verwendung eines zweiten Texturlayers nur dafür kostet lediglich rechenzeit und grafikspeicher, den es eigentlich garnicht braucht ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group