Collision mit Sprite !?
Übersicht

![]() |
ToeBBetreff: Collision mit Sprite !? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie kann ich die Collision mit einem Sprite prüfen ?
Also sowas wie "If SpriteEntityCollided(Sprite,Entity) then ..." thx und mfg ![]() Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nutze:
![]() ![]() ![]() ![]() ![]() ![]() |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
samples\si\fps
Dort spritzt Blut, in Form von Sprites, das auch "kleben" bleibt. |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also : Ich mach das jett anders :
Ich erstell um meinen Sprite eine Sphere, setzte den Alphawert auf 0 und lass dann die Colllsion mit der Sphere machen ^^ Voll simple irgentwie ![]() thx und mfg ![]() Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
wird bei alpha 0 das ding nicht trotzdem gerendert???
in dem fall wäre ein pivot mit Radius oder eineleere mesh mit ebengleichem besser |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: wird bei alpha 0 das ding nicht trotzdem gerendert???
Jop! aber ich hab keine Ahnung, was besser wäre |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: in dem fall wäre ein pivot mit Radius oder eine leere mesh mit ebengleichem besser
|
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: wird bei alpha 0 das ding nicht trotzdem gerendert???
Ich glaube aber nicht, dass es gerendert wird. Vielleicht versucht Blitz3D es zu rendern, aber die Grafikkarte ist so schlau und ignoriert es. Ich hab das mal getestet, indem ich ein Mesh mit ca. 50000 Polys erstellt habe. Bei Alpha = 0 hatte ich genauso viele fps wie mit HideEntity. |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mhm... ja danke... aber irgentwie erkennt der meine Collisoins net ![]() Code: [AUSKLAPPEN] ;Laden
Global Tool = LoadSprite("Text\Unsichtbar.bmp",2) EntityRadius Tool,1 EntityType Tool,4 HideEntity Tool ;In der Schleife : For k.k = Each k If k\tool_t = False TranslateEntity k\kI,0,-1,0 If k\tool_t = True then ShowEntity k\Tool If k\r = 0 then k\fy = k\fy - 0.001 If k\r = 1 then k\fy = k\fy + 0.001 If k\fy > 0.01 then k\r = 0 If k\fy < -0.01 then k\r = 1 k\y = k\y + k\fy PositionEntity k\Tool,k\x,k\y,kz If EntityCollided(k\tool,1)<>0 then EntityAlpha b(1),0.2:k\del = 1 If k\del = 1 then FreeEntity k\tool:Delete k.k Next Wieso futzt das net ?? |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
codie |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hideentity macht das das objekt unsichbar ist und keine collision hat | ||
Wer bist zum Hals in der Scheiße steckt sollte den Kopf nicht hängen lassen. |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Crack93 hat Folgendes geschrieben: Code: [AUSKLAPPEN]
ShowEntity k\Tool Hier wirds doch weider "geshowed" oda !? |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
AcidRain |
![]() Antworten mit Zitat ![]() |
---|---|---|
Haste die Collis vorher festgelegt???
Am besten du guckst dir das castle-Beispiel im Blitz3D-Demo Ordner an,falls du die hast,da wird mit Sprites geschossen,die mit der Landschaft und dem castle kollidieren.. ![]() |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ShowEntity musst wahr sein, wenn du UpdateWorld benutzt! z.B.
Zitat: ShowEntity lol
HideEntity lol UpdateWorld RenderWorld das wird nie funktionieren! |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich ja uch net !
Zitat: Vor der Schleife : HideEntity Tool
In der Schleife : ShowEntity Toll Warted, ich geb euch mal den ganze Code (nicht wundern, es sind noch net alle kommentare geschrieben worden...) Code: [AUSKLAPPEN] ;**************************************************************************************
;******************************* BOMBERMAN 3D ***************************************** ;**************************** CREATED BY CRACK93 ************************************** ;************************************************************************************** ;************************************************************************************** ;*** GraphicsMode+Buffer setzten *** Graphics3D 800,600,16,2 SetBuffer BackBuffer() ;*** Zufallsgenerator auf zufällig setzten *** SeedRnd MilliSecs() ;*** Types *** Type s Field ms,sb,cd,zahl,fire End Type Type e Field sp,rx#,rz#,fy#,speed#,w End Type Type k Field x#,y#,z#,tool,Ki,tool_t,fy#,r,del End Type ;*** Variablen Globaliesieren *** Global e.e Global s.s Global k.k Global AnzahlEx=50 Global Colliki = 5 Global s1=Rand(1,4),s2=Rand(1,4) Global pos=Rand(1,4) Global timer=CreateTimer(50) Global ges#=0.3 Global Leben1=100,Leben2=100 Global lang = 5 ;*** Arrays *** Dim b(2) Dim Ex(5) ;*** Texturen *** Global Kiste_Text = LoadTexture("Text\Kiste.bmp") ;*** Images Laden *** Global Herz = LoadImage("Text\Herz.bmp") MaskImage Herz,255,0,255 ;*** Entitys Laden,Erstellen *** ;--- Cameras --- Global c1=CreateCamera() If pos=1 Then PositionEntity c1, 15,6.5,1 :RotateEntity c1,0,45,0 If pos=2 Then PositionEntity c1,-31,6.5,1 :RotateEntity c1,0,315,0 If pos=3 Then PositionEntity c1, 15,6.5,31:RotateEntity c1,0,135,0 If pos=4 Then PositionEntity c1,-31,6.5,31:RotateEntity c1,0,225,0 EntityType c1,1 Repeat a=Rand(1,4) Until a<>pos pos=a:a=0 Global c2=CreateCamera() If pos=1 Then PositionEntity c2, 15,6.5,1 :RotateEntity c2,0,45,0 If pos=2 Then PositionEntity c2,-31,6.5,1 :RotateEntity c2,0,315,0 If pos=3 Then PositionEntity c2, 15,6.5,31:RotateEntity c2,0,135,0 If pos=4 Then PositionEntity c2,-31,6.5,31:RotateEntity c2,0,225,0 EntityType c2,2 ;--- Map --- Global Map = LoadMesh("Maps\Map1.X") PositionEntity Map,0,5,0 EntityType Map,3 ;--- Bombe --- Global Bomb=LoadMesh("Models\Bombe1.X") PositionEntity Bomb,0,6.5,10 ScaleEntity Bomb,0.5,0.5,0.5 HideEntity Bomb ;--- Figuren --- b(1) = LoadMesh("Models\Bomb"+s1+".X") b(2) = LoadMesh("Models\Bomb"+s2+".X") ;--- Sonstiges --- Global Kiste = CreateCube() ScaleEntity Kiste,0.85,0.85,0.85 EntityTexture Kiste,Kiste_Text HideEntity Kiste ;*** Collisions *** Collisions 1,3,2,3 Collisions 2,3,2,3 Collisions 1,2,2,1 Collisions 2,1,2,1 ;*** Sprites *** Global Tool = LoadSprite("Text\Unsichtbar.bmp",2) EntityRadius Tool,1 EntityType Tool,4 HideEntity Tool For iii = 1 To 5 Ex(iii) = LoadSprite("Text\Ex"+iii+".bmp",2) HideEntity Ex(iii) Next ;*** Kisten erstellen *** For iiii = 1 To 20 k.k = New k k\x = Rand(1,30) k\y = 6.5 k\z = Rand(1,30) k\Tool = CopyEntity(Tool) PositionEntity k\Tool,k\x,k\y+0.1,k\z HideEntity k\Tool k\Ki = CopyEntity(Kiste) PositionEntity k\Ki,k\x,k\y,k\z EntityType k\Ki,ColliKi Collisions 1,ColliKi,2,2 Collisions 2,ColliKi,2,2 Collisions ColliKi,3,2,2 CollliKi = ColliKi + 1 Next ;************************************************************************************** ;************************************ Die Schleife ************************************ ;************************************************************************************** Repeat ;*** Camera einstellungen *** ;--- Camera 1 --- CameraViewport(c1,0,0,800,300) If KeyDown(200) Then MoveEntity c1,0,0, ges# If KeyDown(208) Then MoveEntity c1,0,0,-ges# If KeyDown(203) Then TurnEntity c1,0, ges#*10,0 If KeyDown(205) Then TurnEntity c1,0,-ges#*10,0 TranslateEntity c1,0,-0.2,0 ;--- Camera 2 --- CameraViewport(c2,0,300,800,300) If KeyDown(22) Then MoveEntity c2,0,0, ges# If KeyDown(36) Then MoveEntity c2,0,0,-ges# If KeyDown(35) Then TurnEntity c2,0, ges*10,0 If KeyDown(37) Then TurnEntity c2,0,-ges*10,0 TranslateEntity c2,0,-0.2,0 ;*** Positionen : Spieler *** ;--- Spieler 1 --- PositionEntity b(1),EntityX(c1),EntityY(c1),EntityZ(c1) RotateEntity b(1),EntityPitch(c1),EntityYaw(c1)+270,EntityRoll(c1) ;--- Spieler 2 --- PositionEntity b(2),EntityX(c2),EntityY(c2),EntityZ(c2) RotateEntity b(2),EntityPitch(c2),EntityYaw(c2)+270,EntityRoll(c2) ;*** Schüsse erstellen *** ;--- c1 --- If KeyHit(28) Then s.s=New s s\sb=CopyEntity(Bomb) PositionEntity s\sb,EntityX(c1),EntityY(c1),EntityZ(c1) RotateEntity s\sb,0,Rand(360),0 s\ms=MilliSecs() s\cd=1000*(lang+1) s\zahl=SpriteText((s\cd-(MilliSecs()-s\ms))/1000) s\fire = 0 EndIf ;--- c2 --- If KeyHit(30) Then s.s=New s s\sb=CopyEntity(Bomb) PositionEntity s\sb,EntityX(c2),EntityY(c2),EntityZ(c2) RotateEntity s\sb,0,Rand(360),0 s\ms=MilliSecs() s\cd=1000*(lang+1) s\zahl=SpriteText((s\cd-(MilliSecs()-s\ms))/1000) s\fire =0 EndIf an=0 For s.s=Each s FreeEntity s\zahl s\zahl=SpriteText((s\cd-(MilliSecs()-s\ms))/1000) PositionEntity s\zahl,EntityX(s\sb)-1.3,EntityY(s\sb),EntityZ(s\sb) If (s\cd-(MilliSecs()-s\ms))/1000 < 0 Then s\fire = 1 If s\fire = 1 For ii = 1 To AnzahlEx e.e=New e speed#=Float(Rnd(0.01,0.05)) e\speed#=speed# Ex_Rnd=CopyEntity(Ex(Rand(1,5))) e\sp= Ex_Rnd PositionEntity e\sp,EntityX(s\sb),EntityY(s\sb),EntityZ(s\sb) e\rx=Rnd(-0.10,0.10) e\rz=Rnd(-0.10,0.10) e\fy=speed#*Rand(15,20) Next For i = 0 To 6 If EntityDistance(s\sb,c1)<i Then Leben1 = Leben1 - (60-(i*10)):Exit Next For i = 0 To 6 If EntityDistance(s\sb,c2)<i Then Leben2 = Leben2 - (60-(i*10)):Exit Next For k.k = Each k If k\ki <> 0And EntityDistance(k\ki,s\sb) < 3 Then PositionEntity k\tool,EntityX(k\ki),EntityY(k\ki),EntityZ(k\ki)FreeEntity k\kI:k\tool_t = 1:Exit Next FreeEntity s\sb:FreeEntity s\zahl Delete s.s EndIf an=an+1 Next For e.e=Each e e\fy=e\fy-Float(e\speed) RotateSprite e\sp,e\w e\w = e\w + Rand(5,15) MoveEntity e\sp,e\rx,e\fy,e\rz If e\fy < -0.75 FreeEntity e\sp:Delete e.e Next For k.k = Each k If k\tool_t = False TranslateEntity k\ki,0,-1,0 If k\tool_t = True Then ShowEntity k\tool If k\r = 0 Then k\fy = k\fy - 0.001 If k\r = 1 Then k\fy = k\fy + 0.001 If k\fy > 0.01 Then k\r = 0 If k\fy < -0.01 Then k\r = 1 k\y = k\y + k\fy ;PositionEntity k\Tool,k\x,k\y,k\z If EntityCollided(k\tool,1)<>0 Then EntityParent k\Tool,c1 : EntityType k\Tool,0 EndIf If k\del = 1 Then FreeEntity k\tool:Delete k.k Next UpdateWorld() RenderWorld() Line 0,300,800,300 Color 255,255,255 Text 1,1,"Leben : "+Leben1 Text 1,301,"Leben : "+Leben2 For i = 1 To Leben1/10 DrawImage Herz,(-ImageWidth(Herz))+i*ImageWidth(Herz),13 Next For i = 1 To Leben2/10 DrawImage Herz,(-ImageWidth(Herz))+i*ImageWidth(Herz),314 Next If Leben1 < 0 Or Leben2 < 0 Then If Leben1 < 0 Then win=2 If Leben2 < 0 Then win=1 If Leben1 < 0 And Leben2 < 0 Then win = 0 For i = 20 To 0 Step -1 Trans(0,0,800,600,i) Flip Delay 100 Cls Next Repeat Color 100,100,100:Rect 0,0,800,600:Color 255,255,255 Text GraphicsWidth()/2,100,"SPIEL VORBEI",1 Text GraphicsWidth()/2,150,"Gewonnen hat Spieler"+win+" !",1 Text GraphicsWidth()/2,170,"Herzlichen Glückwunsch !",1 If TextField(GraphicsWidth()/2,300,"Beenden ?",1) Then End If TextField(GraphicsWidth()/2,250,"Nochmal Spielen ?",1) Then Leben1=100:Leben2=100 pos=Rand(1,4) If pos=1 Then PositionEntity c1, 15,6.5,1 :RotateEntity c1,0,45,0 If pos=2 Then PositionEntity c1,-31,6.5,1 :RotateEntity c1,0,315,0 If pos=3 Then PositionEntity c1, 15,6.5,31:RotateEntity c1,0,135,0 If pos=4 Then PositionEntity c1,-31,6.5,31:RotateEntity c1,0,225,0 FlushKeys() Repeat a=Rand(1,4) Until a<>pos pos=a If pos=1 Then PositionEntity c2, 15,6.5,1 :RotateEntity c2,0,45,0 If pos=2 Then PositionEntity c2,-31,6.5,1 :RotateEntity c2,0,315,0 If pos=3 Then PositionEntity c2, 15,6.5,31:RotateEntity c2,0,135,0 If pos=4 Then PositionEntity c2,-31,6.5,31:RotateEntity c2,0,225,0 For s.s=Each s FreeEntity s\sb FreeEntity s\zahl Next For e.e=Each e FreeEntity e\sp Next Delete Each s Delete Each e Exit EndIf Oval MouseX()-10,MouseY()-10,20,20,0 Plot MouseX(),MouseY() Flip Cls Forever EndIf Flip If KeyHit(28) Then SaveBuffer(FrontBuffer(),"Screen4.png") WaitTimer(timer) Cls Until KeyHit(1) End Function SpriteText(Text$,r=255,g=255,b=255) Local spTex = CreateImage(StringWidth(Text$),50) SetBuffer ImageBuffer(spTex) Color r,g,b Text 0+StringWidth(Text$)/2,0+StringHeight(Text$)/2,Text$,1,1 SaveImage(spTex,"Text"+Text$+".bmp") Local sp=LoadSprite("Text"+Text$+".bmp",2) ScaleSprite sp,StringWidth(Text$)/7.5,StringHeight(Text$)/7.5 DeleteFile("Text"+Text$+".bmp") SetBuffer BackBuffer() Color 255,255,255 Return sp End Function Function Trans(x,y,width,height,Abst=2,r=100,g=100,b=100) Color r,g,b For xx = x To width xx=xx+Abst Line xx,y,xx,Height Next For yy = y To Height yy=yy+Abst Line x,yy,width,yy Next Color 255,255,255 End Function Function TextField(x,y,Text$,width=0,Height=0) Local Wert = 0 Local mx = MouseX() Local my = MouseY() Local l = StringWidth(Text$) Local b = StringHeight(Text$) Local bb=0,ll=0 If width<>0 Then ll = StringWidth(Text$)/2 If height<>0 Then bb=StringHeight(Text$)/2 If mx > x-ll And my > y-bb Then If mx < x+l-ll And my < y+b-bb Then Color 255,0,0 If MouseHit(1) Then Wert = 1 Else Color 255,255,255 EndIf EndIf Text x,y,Text$,Width,Height Color 255,255,255 Return Wert End Function Vresteht ihr das ? |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group