schuss drehungs problem
Übersicht

masterman123Betreff: schuss drehungs problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ich hab nen pivot die kamera drauf sitzt ich drehe die kamera hoch und runter und den pivot links und rechts , die kamera ist parent zum pivot also dreht die kamera sich mit
problem ist jetzt der schuss er soll am pivot sein,das geht ja aber wenn ich mich jetzt drehe bleibt der schuss nicht ander stelle sondern dreht sich mit dem pivot aber der schuss zeigt zur kamera und dadurch ist er an eineer anderen stelle weiß nicht wie ichs hinbekomme Code: [AUSKLAPPEN] Graphics3D 800,600,32,1
SetBuffer BackBuffer() Type Schuss Field x Field y Field z Field s End Type Global magazin=10 Global waffea=1 ;;;;;terrain Global terr=LoadTerrain("heightmap1.bmp") tex=LoadTexture("coolgrass2.bmp") tex1=LoadTexture("gras.bmp") tex2=LoadTexture("mapt1.bmp") EntityTexture terr,tex,0,0 EntityTexture terr,tex1,0,1 EntityTexture terr,tex2,0,2 ScaleEntity terr,20,100,20 PositionEntity terr,-20*600,0,-20*600 EntityType terr,2 ;;;;wasser Global wasser=CreatePlane() wassertex=LoadTexture("water.bmp") EntityTexture wasser,wassertex,0,0 ScaleTexture wassertex,100,100 MoveEntity wasser,0,1,0 EntityAlpha wasser,0.5;durchsichtigkeit ;;;;kamera Global cam=CreateCamera(camparent) PositionEntity cam,0,108.5,0 CameraFogMode cam,1;nebel an\aus CameraFogRange cam,1,9000 CameraFogColor cam,40,140,255 CameraRange cam,1,9000 CameraClsColor cam,40,140,255 ;;;;;licht light=CreateLight() TurnEntity light,45,45,0 ;;;;;waffe waffe=LoadMesh("w_fiveseven.3ds") PositionEntity waffe,3.5,107,5 RotateEntity waffe,105,0,270 EntityParent waffe,cam ScaleMesh waffe,0.2,0.2,0.2 waffe1=LoadMesh("w_mp51.3ds") waf=LoadTexture("w_mp510.bmp") waf1=LoadTexture("w_mp511.bmp") waf2=LoadTexture("w_mp512.bmp") waf3=LoadTexture("w_mp513.bmp") waf4=LoadTexture("w_mp514.bmp") waf5=LoadTexture("w_mp515.bmp") EntityTexture waffe1,waf,0,0 EntityTexture waffe1,waf1,0,1 EntityTexture waffe1,waf2,0,2 EntityTexture waffe1,waf3,0,3 EntityTexture waffe1,waf4,0,4 EntityTexture waffe1,waf5,0,5 PositionEntity waffe1,4.5,107,3.5 RotateEntity waffe1,100,0,90 EntityParent waffe1,cam ScaleMesh waffe1,0.2,0.15,0.15 HideEntity waffe1 waffe2=LoadMesh("w_tmp1.3ds") tex=LoadTexture("w_tmp10.bmp") PositionEntity waffe2,4,106.5,5.5 RotateEntity waffe2,95,0,90 EntityParent waffe2,cam ScaleMesh waffe2,0.2,0.15,0.15 EntityTexture waffe2,tex,0,0 HideEntity waffe2 ;;;;pivot camparent=CreatePivot() PositionEntity camparent,0,100,0 EntityType camparent,1 EntityParent cam,camparent ;;;;mauszeiger cursor=LoadImage("sight.bmp") Collisions 1,2,2,2 EnableDirectInput(1) ;;;;hauptschleife While Not KeyHit(1) ;;;;steurung If KeyDown(17) Then MoveEntity camparent,0,0,0.5 EndIf If KeyDown(31) Then MoveEntity camparent,0,0,-0.5 EndIf If KeyDown(30) Then MoveEntity camparent,-0.5,0,0 EndIf If KeyDown(32) Then MoveEntity camparent,0.5,0,0 EndIf If KeyHit(2) Then waffea=1 magazin=10 EndIf If KeyHit(3) Then magazin=100 waffea=2 ShowEntity waffe1 HideEntity waffe HideEntity waffe2 EndIf If KeyHit(4) Then magazin=50 waffea=3 ShowEntity waffe2 HideEntity waffe HideEntity waffe1 EndIf If waffea=1 Then ShowEntity waffe HideEntity waffe1 HideEntity waffe2 If MouseHit(1) magazin=magazin-1 EndIf If magazin<0 Then magazin=0 EndIf If KeyHit(19) Then magazin=10 EndIf EndIf If waffea=2 Then If MouseDown(1) magazin=magazin-1 EndIf If magazin<0 Then magazin=0 EndIf If KeyHit(19) Then magazin=100 EndIf EndIf If waffea=3 Then If MouseDown(1) magazin=magazin-1 EndIf If magazin<0 Then magazin=0 EndIf If KeyHit(19) Then magazin=50 EndIf EndIf If MouseDown(1) Then s.schuss = New Schuss ;Neuer schuss erstellen s\s = LoadSprite("schuss.bmp") ;Schuss-Sprite laden s\x =EntityX(camparent) ;x,y und z Koordinate von der Figur speichern s\y =EntityY(camparent) s\z =EntityZ(camparent) PositionEntity s\s,s\x,s\y+6.5,s\z+3 ;Schuss an die Figurposition positionieren RotateEntity s\s ,EntityPitch(cam),EntityYaw(camparent),EntityRoll(cam) ;Schuss in die Richtige Richtung drehen End If For s.schuss = Each schuss MoveEntity s\s,0,0,5 ;Jeder Schuss um 5 Einheiten nach vorne verschieben Next ;;;;maussteuerung TurnEntity camparent,0,EntityYaw(cam)-MouseXSpeed(),0 RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),0,0 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 RenderWorld() ;;;;collision If EntityCollided(camparent,2) Then TranslateEntity camparent,0,0,0 Else TranslateEntity camparent,0,-1,0 EndIf UpdateWorld() Text 300,0,"Drücke 1-9 um Waffen zuwechseln!" Text 200,20,"Schießen mit der linken Maustaste und Nachladen mit R !" Text 20,30,magazin If magazin=0 Then Text 350,300,"Drücke R um Nachzuladen!" DrawImage cursor,GraphicsWidth()/2,GraphicsHeight()/2 Flip Wend ClearWorld() End |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hä?
ich galub, ich hab das vor 3 tagen schon mal gelese, warst das auch du? Beschreib doch mal erst genau was du von dem schuss erwartest! Wo soll er entstehen, in welche Richtung soll der starten wohin soll er fliegen, wenn das Pivot sich dreht. Soll irgendwas anders sein, wenn die Camera sich dreht? Ist der Schuss eine Art Rakete oder eine Kugel? problem ist jetzt der schuss er soll am pivot sein,das geht ja also ist die entstehung perfekt? ...aber wenn ich mich jetzt drehe wen? Camera oder Pivot? ...bleibt der schuss nicht ander stelle sondern dreht sich mit dem pivot fliegt der da schon? liegt es vielleicht an der zulang gedrücktn Mouse()? ... aber der schuss zeigt zur kamera wie? ein schuss kann doch nicht "zeigen"? Fliegt der dahin, oder ist nur das Objekt im Bild nicht richtig orientiert? ...und dadurch ist er an eineer anderen stelle ist er? Stelle? Dann steht er also? oder fliegt er? Dann meinst Du Richtung! weiß nicht wie ichs hinbekomme was hinbekomme? was soll er denn tun? Bitte feglerbescheibung immer etwas genauer: 1. Das will ich 2. Das beobachte ich 3. Das hab ich auch schon probiert 4. Dann die Frage |
||
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja das war ich
er soll vom pivot in die mitte vom bildschirm,er soll immer gerade weg von der kamera fliegen,wenn die camera sich bewegt dann soll der schuss hoch und runter gehen(das klappt ja),es ist eine kugel ...aber wenn ich mich jetzt drehe wen? Camera oder Pivot? der pivot(links,rechts) ...bleibt der schuss nicht ander stelle sondern dreht sich mit dem pivot fliegt der da schon? liegt es vielleicht an der zulang gedrücktn Mouse()? er fliegt da schon,das probier ich mal aus,also dann seh ich den schuss nicht mehr,nur mit mousedown seh ich ihn ... aber der schuss zeigt zur kamera wie? ein schuss kann doch nicht "zeigen"? Fliegt der dahin, oder ist nur das Objekt im Bild nicht richtig orientiert? naja er geht von der kamera weg,sorry ...und dadurch ist er an eineer anderen stelle ist er? Stelle? Dann steht er also? oder fliegt er? Dann meinst Du Richtung! er fliegt,eine andere stelle wo er entsteht weiß nicht wie ichs hinbekomme was hinbekomme? was soll er denn tun? er soll sich mit dem pivot drehen also das er immmer an der gleichen stelle erstell wird,aber es ist so wnn ich den pivot drehe dann ändert sich die entstehungs stelle,was garnet sein kann weil sich die kamera mit dreht das ist das problem |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dürfte ich Dich dann bitten nicht zum ein- und selben Thema mehrere Threads zu eröffnen? | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja sorry,aber keiner hat die seite mehr angeklickt | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das bedeutet in der Regel das dir keiner mehr helfen kann oder will.
Was Du da betreibst nennt sich Threadpushing und ist hier nicht gestattet, also lass es bitte bleiben, ok? |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja ok ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Grund rot zu werden ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also,
vebessere mich, wenn ich das nicht richtig verstanden habe: Da ist ein Pivot, der fährt in der Lanschaft rum und kann links/rechts drehen. Da ist eine Kamera drauf, die nur nach oben/unten gedreht werden kann. Wenn der Pivot dreht, dreht es auch die Kamera mit. Nun sieht die Camera einen Gegner und du feuerst einen Schuss ab. Der Schuss fliegt von der Camera weg und in Richtung Gegner. Nun soll aber der Schuss nicht einfach auf das Ziel laufen und fertig, sondern es soll so sein, dass die Camera diesen bereits abgefeuerten Schuss noch beeinflussen kann? Du willst den Schuss noch fernlenken? Nur Richtung rauf/runter? Oder auch links/rechts? Wenn der Pivot um 3° nach links schwenkt soll dieser Schuss auch 3° nach links, wenn die Kamera 4° rauf geht soll der Schuss auch 4° rauf? Oder so: Die Kamera hat ja immer eine Art Ziel im Visier. Irgendeinen fernen Punkt auf den sie gerade genau in der Mitte des Bildschirms fliegt. Soll der Schuss vielleicht dahin? So, nun bestätige mir das erst mal oder korrigier es. Bei so einer genauen Beschreibung werden auch die anderen hier wieder helfen. Wirst sehen.... |
||
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nun sieht die Camera einen Gegner und du feuerst einen Schuss ab. Der Schuss fliegt von der Camera weg und in Richtung Gegner. Nun soll aber der Schuss nicht einfach auf das Ziel laufen und fertig, sondern es soll so sein, dass die Camera diesen bereits abgefeuerten Schuss noch beeinflussen kann?
Du willst den Schuss noch fernlenken? Nur Richtung rauf/runter? Oder auch links/rechts? ne will nur schiessen hab nen fadenkreuz keine lenkrakete Wenn der Pivot um 3° nach links schwenkt soll dieser Schuss auch 3° nach links, wenn die Kamera 4° rauf geht soll der Schuss auch 4° rauf? ja aber der entstehungspunkt,so das er dorthin fliegt und ich weg gehen kann ohne das er gelenkt wird Oder so: Die Kamera hat ja immer eine Art Ziel im Visier. Irgendeinen fernen Punkt auf den sie gerade genau in der Mitte des Bildschirms fliegt. Soll der Schuss vielleicht dahin? ja er soll da hin fliegen wo der fadenkreuz hinzeigt also mitte des bildschirms |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
so, wie dein code aussieht, müsste eigentlich genau das passieren, was du willst.
ich glaub ich bau das mal kurz nach.... |
||
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok | ||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also, ich hab hier mal was eigenes gebastelt du bewegst den ego mit den Pfeiltasten
für mich sieht das so aus, als ob alles richtig wäre. teste u mal, ob es das ist , was auch du sehen möchtest! BlitzBasic: [AUSKLAPPEN] Graphics3D 800,600 das ist aber genau der gleiche Code, den du auch geschrieben hast...seltsam..... |
||
- Zuletzt bearbeitet von Midimaster am Sa, Jan 09, 2010 18:24, insgesamt 3-mal bearbeitet
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es liegt ander mousesteuerung,das drehen (links,rechts)
der entstehungspunkt vom schuss ist an derr waffe ausgerichtet wenn ich jetzt 180 grad drehe geht der entstehungspunkt nach links,bei 360 grad ist er wieder bei der waffe |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn die waffe Child von Cam werden soll, das würde ich das sehr früh tun:
Zitat: ;;;;;waffe
waffe=LoadMesh("w_fiveseven.3ds") PositionEntity waffe,3.5,107,5 RotateEntity waffe,105,0,270 EntityParent waffe,cam ScaleMesh waffe,0.2,0.2,0.2 stell im Code das EntityParent... gleich in das LoadMesh: waffe=LoadMesh("w_fiveseven.3ds",cam) und dann erst die anderne Aktionen Position, Rotate ,etc.. für die du jetzt nochmal neue werte herausfinden musst und wenn die schüsse doch aus waffe rauskommen sollen, warum nimmst du dann nicht gleich die EntityX(),... etc von waffe? außerdem könnte man die EntityYaw auch von Cam oder Waffe nehmen, dann mit Parameter 1: RotateEntity Schuss\Ent, EntityPitch(cam,1),EntityYaw(cam,1), 0 [EDIT] ich hab den Code oben gerade nochmal überarbeitet und neu reingestellt. Lad ihn bitte mal in B3D. Wie zufrieden bis du da mit der Schussrichtung? Nur mal so als Diskussionsgrundlage. Ist es das was du suchst? |
||
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok bin schon dabei
edit ja das ist gut nur mit der maus dann wärs perfect,aber nur nach links nach rechts ist der schuss links und nicht mehr rechts und das ist auch mein problem |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ohhhh!!!!
jetzt hab ich endlich verstanden, was dir nicht gefällt!!! ![]() das sieht nur so aus, als ob der schuss rechts im bild erscheint! in wirklichkeit erscheint er genau mittig. probier mal zu schiessen, ohne vorher zu drehen. stimmtst du zu? wenn du nun nach links drehst, scheint der schuss rechts ins bild zu kommen. wenn du nach rechts drehst, scheint er links ins Bild zu kommen. In Wirklichkeit kommt er immer immer der mitte (bei der mittellinie in meinem testterrain zu sehen) heraus. du willst also, das der schuss rechts neben der camera entsteht? Ok, here are the results of the swedish jury: die Entstehung geht so: BlitzBasic: [AUSKLAPPEN] Schuss.SchussTyp = New SchussTyp Schuss wird gleich beim Createn Child von Cam, dann wird schon mal Pos und Richtung richtig gemacht, außerdem wirds um 3 nach vorne (Z) verschoben, damit der schuss gleich vor der camera zu sehen ist. BlitzBasic: [AUSKLAPPEN] For s.SchussTyp = Each SchussTyp Beim Bewegen wird die Child/Parent-Beziehung wieder aufgegeben. Ab jetzt fliegt der Schuss alleine in die letzte "gemeinsame" Richtung. Da ist jetzt noch keine Waffe drin, aber der Schuss-Start ist immer bei der Kamera. Ich korrigere meinen Beispielcode oben nochmal. Schaus dir bitte mal an. |
||
masterman123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es ist gut
aber wie ist dennn der type ich hab ihn Code: [AUSKLAPPEN] Type SchussTyp
Field Ent% End Type |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Resume
Ein wenig ärgert es mich schon, dass du meinen Ratschlag von vor 3 oder 6 Tagen gar nicht beachtet hast. Da hatte ich nämlich als Vorschlag die Lösung, die sich jetzt nach langem Hinundher abzeichnet, schon gepostet. Nachdem du dich darauf nicht gemeldet hast und heute erneut das Problem reinstellst, bin ich davon ausgegangen, dass mein Vorschlag von damals nicht funktionier hätte. Wichtig vielleicht auch für andere Hilfesuchende: Die Helfer machen sich oft richtig Mühe, euch zu schreiben. Da wäre es schon anständig, jede Post zu beantworten. Entweder mit "das ging nicht" oder " das hab ich nicht verstanden" Wichtig auch für alle 3D-Neulinge: Das Parent/Child-Verhältnis sollte viel öfter im eigenen Spiel durchdacht werden. Versucht nicht einen Schuss irgendwie neben den Player zu positionieren, wenn es eine Waffe gibt. Ein Schuss ist bei Geburt ein Child einer Waffe (wie im wirklichen Leben). Einen Moment läuft er noch mit der Waffe und dann löst er die Child/Parent-Beziehung und geht seinen Weg alleine weiter. Wer dies im Spiel so realisiert, hat ganz wenig Ärger mit Koordinaten. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na, wer wird denn so schreien ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group