Keine Kollision zw.Bullet & Enemy
Übersicht

![]() |
the FR3AKBetreff: Keine Kollision zw.Bullet & Enemy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich auf einen Gegner schiesse,und dann das Bullet mit dem Gegner kollidiert,soll der Gegner Gelöscht werden...nur wenn ich den Gegner auf Kollision überprüfe,klappt das nicht das heißt er wird nich gelöscht bei einer Kollision!
CODE: Code: [AUSKLAPPEN] For i=0 To 10
If ant(i)<>0 If EntityCollided(ant(i),bull) FreeEntity ant(i) ant(i) = 0 End If End If Next bull ist das Projektil und ant ist der Gegner! mfg.the FR3AK |
||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hast du denn auch für bull z.b. die kollisionsvariable angelegt also am anfang gesagt Code: [AUSKLAPPEN] global bull=3
wenn nicht musst du natürlich nicht das entity angeben sondern die variable.. hoffe du kannst folgen? |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja hab ich:
Code: [AUSKLAPPEN] Global bull=7
Bull wird dann auch einem Objekt zugeschrieben: Code: [AUSKLAPPEN] EntityType p\model,bull
|
||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hastt du es überhaupt schon bei collisions eingetragen???
schreib am besten ma den kompletten code, ich untersuche den dann ~edit~ ich weiß warum du musst ant und bull umtauschen also.. |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Global enemy=5 Global bull=7 Dim ant(11) ant(0) = LoadAnimMesh("data/enemys/ant01.b3d") ScaleEntity ant(0),1,1,1 EntityType ant(0),ENEMY EntityRadius ant(0),0.1 PositionEntity ant(0),230,-90,223 ExtractAnimSeq ant(0), 1,9 Animate ant(0),1,.2,1,10 For i = 1 To 10 ant(i) = CopyEntity(ant(0)) PositionEntity ant(i),Rnd(0,100),Rnd(0,100),Rnd(0,100) ExtractAnimSeq ant(i), 1,9 Animate ant(i),1,.2,1,10 Next ;Hauptschleife ... updateshoot() ... If MouseDown(1)=1 Then ... p.shoot = New shoot p\model=CopyEntity (bullet1) EntityAlpha p\model,0 EntityType p\model,bull ... end if For i=0 To 10 If ant(i)<>0 If EntityCollided(ant(i),bull) FreeEntity ant(i) ant(i) = 0 End If End If Next Das ist alles was du brauchst ![]() p.s. kann es sein das ich die Kollisionsabfrage in Updateshoot() schreiben muss?Wenn ja,dann hab ich das Problem das ich entity ant(i) nicht global machn kann... |
||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
den kompletten -.-!!!!!!!!!
nicht nur den halben |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
warum?Auch Update shoot? | ||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ALLES | ||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier:
Code: [AUSKLAPPEN] Graphics3D 1024,768,32,2
SetBuffer BackBuffer() Global cam=CreateCamera(KameraPivot) KameraPivot=CreatePivot() gamefont1=LoadFont("data/fonts/gossip.ttf",45) SetFont gamefont1 EntityType cam,Player EntityType KameraPivot,Player EntityParent cam,KameraPivot PositionEntity KameraPivot,100,100,1000 CameraFogMode cam,1 CameraRange cam,1,500000 CameraFogRange cam,1400,3000 CameraFogColor cam,0,0,0 CameraClsColor cam,0,0,0 PositionEntity cam,0,80,0 Const Player=1,Obj=3 Global scene=2 Global enemy=5 Global bull=7 Dim ant(11) ant(0) = LoadAnimMesh("data/enemys/ant01.b3d") ScaleEntity ant(0),1,1,1 EntityType ant(0),ENEMY EntityRadius ant(0),0.1 PositionEntity ant(0),230,-90,223 ExtractAnimSeq ant(0), 1,9 Animate ant(0),1,.2,1,10 For i = 1 To 10 ant(i) = CopyEntity(ant(0)) PositionEntity ant(i),Rnd(0,100),Rnd(0,100),Rnd(0,100) ExtractAnimSeq ant(i), 1,9 Animate ant(i),1,.2,1,10 Next Type shoot Field X#,y#,z# Field Model Field sprite End Type Global p.shoot boden=CreatePlane() PositionEntity boden,0,-200,0 EntityType boden,scene Collisions Player,obj,2,1 Collisions Player,Scene,2,3 Collisions Player,Enemy,2,2 Collisions Enemy,scene,2,2 Collisions enemy,bull,2,2 bullet1=LoadSprite("data/sprites/hole.png") ScaleSprite bullet1,2,2 gun=LoadMesh("Data/Gun/41/Gun.3ds") ScaleEntity gun,.7,.7,.7 EntityParent gun,cam TurnEntity gun,-180,90,180 PositionEntity gun,5,-5,9 While Not KeyHit(1) Cls UpdateShoot() If KeyDown(17)Then MoveEntity KameraPivot,0,0,30 End If If KeyDown(31) MoveEntity KameraPivot,0,0,-30 End If If KeyDown(32) MoveEntity KameraPivot,15,0,0 End If If KeyDown(30) MoveEntity KameraPivot,-15,0,0 End If Mx#=MouseXSpeed() My#=MouseYSpeed() TurnEntity KameraPivot,0,-Mx/2,0 TurnEntity cam,My/2,0,0 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 WireFrame(0) If KeyHit(57)=1 Then sprungvar=1 End If If sprungvar=1 Then sprung#=sprung-1 If sprung#>5 Then MoveEntity kamerapivot,0,60,0 MoveEntity cam,0,60,0 End If If sprung#<5 Then MoveEntity kamerapivot,0,-60,0 MoveEntity cam,0,-60,0 End If If sprung#=0 Then sprung#=10 PositionEntity cam,0,80,0 sprungvar=0 End If End If If MouseHit(1)=1 Then p.shoot = New shoot p\Model = CopyEntity(bullet1) EntityAlpha p\model,1 EntityType p\model,bull PositionEntity p\Model,EntityX(kameraPivot),EntityY(kamerapivot)+80,EntityZ(kameraPivot) p\x = EntityX(kameraPivot) p\y = EntityY(kameraPivot) p\z = EntityZ(kameraPivot) RotateEntity p\Model,EntityPitch(cam,1),EntityYaw(cam,1),EntityRoll(cam,1),1 End If For i=0 To 10 If ant(i)<>0 If Not EntityCollided(ant(i),SCENE) TranslateEntity ant(i),0,-0.01,0 End If End If Next For i=0 To 10 If ant(i)<>0 If EntityCollided(ant(i),bull) FreeEntity ant(i) ant(i) = 0 End If End If Next TranslateEntity kamerapivot,0,-50,0 UpdateWorld RenderWorld Flip Wend End Function UpdateShoot() For p.shoot = Each shoot MoveEntity p\Model,0,0,100 Next End Function Ich bin aber nich schuld wenns ärger wegen flooding gibt ![]() |
||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
m.a musst du einfach nur ant und bull bei der if entitycolldided(...) tauschen...
ps: wegen dem flooding da gibt es viel schlimmere code als deinen ^^.... also du musst dann: 1. ant einen collisionstype zuweisen, das ist er nämlich nicht.2 dum musst ant ubd bull in der oben beschriebenen zeile tauschen also ca nicht so: Code: [AUSKLAPPEN] If EntityCollided(ant(i),bull)
sondern so: Code: [AUSKLAPPEN] If EntityCollided(bull,die variable des schuss den du bei der collisions angeben musst) und das wärs.... ps: hast aber seh von einer gewissen open DNA/ArcticRunner DEMO abgeschaut ![]() ![]() ![]() |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hä?Wie meinst du das:
die variable des schuss den du bei der collisions angeben musst ![]() ~EDIT~ Was ist dann falsch?Wenn ich die Kollisionsabfrage in Updateshoot packe gehts auch nicht... |
||
- Zuletzt bearbeitet von the FR3AK am Di, Dez 26, 2006 16:16, insgesamt einmal bearbeitet
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dein schuss muss doch eine kollisionsvariable haben sost wäre es doch ziemlich unlogisch
~edit~ sorry vertan hasse schon( die kollisions variable) |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() Code: [AUSKLAPPEN] For i=0 To 10
If ant(i)<>0 If EntityDistance(p\model,ant(i))<20 FreeEntity ant(i) ant(i) = 0 End If End If Next Aber sie funktioniert ![]() ~edit~ Code: [AUSKLAPPEN] If EntityCollided(bull,ant(i)) So?Dann klappt das aber nicht mehr ![]() |
||
- Zuletzt bearbeitet von the FR3AK am Di, Dez 26, 2006 17:19, insgesamt einmal bearbeitet
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe doch gesagt du musst die beiden umdrehen ![]() |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah jetzt gehts!
Ich hab noch n anderes kleines Problem...ich kann schiessen...aber wenn ich in meiner Spielwelt an ein paar bestimmten positionen stehe und dort schiesse kommt keine Kugel aus dem lauf... |
||
- Zuletzt bearbeitet von the FR3AK am Di, Dez 26, 2006 20:48, insgesamt 2-mal bearbeitet
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
an welchen stellen ist des denn | ||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Immer an den gleichen...welche das sind weiß ich nicht.Die sind einfach i-wo auf der map! | ||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich brauch mehr infos über unter wasser,aufm land collidierend oder nicht,
beim fahren nicht beim fahren,beim springen nicht beim springen usw... |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
WO:Aufm Land
Wann:Immer wenn ich mich an diesen "da kann ich nicht schiessen Punkte bin" Das Bullet hat Kollisionen und wird auch bei Kontakt mit der Scene etc. zerstört! ![]() Die schussfunktion siehste ja oben! |
||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
zeig ma nen scene vo dieser Stelle im spiel (sceenshoot) | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group