Schussrichtung durch Fadenkreuz
Übersicht

GertriBetreff: Schussrichtung durch Fadenkreuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen!
Ich habe folgendes Problem: Ich möchte das Beispiel-Spiel (was bei Blitz3d dabei ist) mit dem Mario, der durch die Burg läuft ein wenig aufgepeppen. Ich habe erstmal eine vernünftige AWSD-Steuerung eingebaut, eine Taste mit der man schneller laufen kann und ein Fadenkreuz ergänzt usw... Das klappt soweit auch wunderbar. Zur Info: Das Fadenkreuz und die Kamera beeinflussen sich nicht. Also das Fadenkreuz ist unabhängig von der Kamera und ist nicht immer in der Mitte wie bei Ego-Shootern. Jetzt folgendes Problem: Wie ihr auf dem Screenshot sehen könnt, ist das Fadenkreuz oben links. ![]() Jetzt möchte ich, dass wenn ich schieße, dass die Feuerkugeln auch nach dort oben hin schießen. (Normalerweise fliegen diese einfach geradeaus.) Nur habe ich keine Idee mehr wie ich das realisieren kann. Ich wurschtel mich schon seit einer Woche durch das Forum und anderen Hilfeseiten. Hab auch viel ausprobiert z.B. CameraPick usw. Aber irgendwie will er nicht so wie ich es will ![]() Wäre nett wenn mir jemand helfen könnte ![]() Schöne Grüße Gertri |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Camerapick![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Gertri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Hectic!
Danke erstmal für die schnelle Antwort. Genau das habe ich ja schon ausprobiert, aber soweit ich weiß gibt CameraPick doch sozusagen die Camera-Richtung aus und nicht die Fadenkreuz(Mouse) Richtung, oder? Schöne Grüße Gertri |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wird denn das Fadenkreuz positioniert? Per Maus, absolut auf dem Bildschirm, oder irgendwie sonst, relativ zur Figur?
Wenn ersteres, könntest du mit CameraPick ![]() ![]() Wenn das Fadenkreuz relativ zur Figur positioniert wird, könntest du ja daraus ja schon mal Steigung und Winkel berechnen. Zum Winkel müsstest du natürlich noch die Drehung der Figur addieren. mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es wird die Bildschirmposition in Abhängigkeit der Kameraposition sowie dessen Rotation berücksichtigt. Das hätte man aber auch schnell selbst mit folgendem Zusazucode RotateEntity camera,0,Sin(MilliSecs()/10.0)*30,0 in der Hauptschleife herausfinden können. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Gertri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Holzchopf
Das Fadenkreuz wird per MouseY() und MouseY() auf dem Bildschirm ausgegeben. Im Moment wird die Kugel noch per BlitzBasic: [AUSKLAPPEN] MoveEntity b\sprite,0,0,2.4 ausgegeben. Jetzt müsste ich doch irgendwie mit CameraPick die 2d Koordinaten der Maus auf die 3d Koordinaten übertragen. Mit z.B. BlitzBasic: [AUSKLAPPEN] b\sprite = CameraPick(camera,MouseX,MouseY) Das funktioniert aber nicht, weil das Sprite ja nicht richtig bewegt wird. Dann habe ich gedacht: BlitzBasic: [AUSKLAPPEN] MoveEntity b\sprite,MouseX(),MouseY(),2.4 Funktioniert so aber auch nicht. Jetzt müsste man das irgendwie kombinieren, da ist nur die Frage wie ![]() |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke, das geht ganz einfach, wenn du
1. mit PickedX ![]() 2. du diese Koordinaten relativ zu den Spielerkoordinaten umrechnest 3. Den Schuss auf die Spielerkoordinaten positionierst 4. Den Schuss mit AlignToVector ![]() 5. Den Schuss dann einfach nur noch mit MoveEntity ![]() mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaub einfacher (aber nicht so elegant) ist es einen Pivot (CreatePivot![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwie ist auch das Spielkonzept nicht ganz zu Ende gedacht. Was machst du, wenn sich ein Gegner zwischen der Kamera und der Spielfigur befindet? Das Fadenkreuz wird dann auf dem Bildschirm gemalt und der Spieler erwartet nun so den Gegner treffen zu können. Aber dann müsste die Spielfigur durch sich selbst schiessen, oder sich zumindest umdrehen. Aber umdrehen geht nicht, weil man ja auch zwischen den Achseln des Gegners schiessen könnte und die Zielkoordinate dann wieder 180° zur Spielfigur sich befindet. Gibt also schon einen Grund, warum es solche Spiel in der Form nicht gibt. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich mach das meinstens so ds ich zwei pivots habe. Einer ist am Spieler mit EntityParent geheftet (da wo der Schuss erstellt wird) und der andere wird an die PickedX/Y/Z Position gestellt. Jetzt drehe ich den Player mit TurnEntity Player,0,MouseXSpeed()/4,0 (Y_Achse) und den Pivot auf der XAchse : TurnEntity Pivot,-MouseYSpeed()/4,0,0. Dann noch Movemouse auf die mitte des Bildschirmes. dann nehme ich EntityPick(Pivot,1000) um zu pürfen zu welchem Object das Zielgerät zeigen soll. Dann positioniere ich den Pivot dorthin. Wenn icheinen Schuss erstelle, dann erstelle ich ihn und drehe ihn mit PointEntity zum PickedPivot (der an der wand). Wenn du jetzt das Zielgerät zeichnen möchtest, findest du einfach mit CameraProject![]() mfg ToeB |
||
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! |
Gertri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo!
@All Danke erstmal für die ganze Hilfe! Ich werde jetzt mal ein bischen was ausprobieren. Ich melde mich wenn ich etwas zustande gebracht habe. ![]() @hectic Da ich keine Gegner in dem Spiel haben werde, stellt das so kein Problem da. Ich habe das Spiel erstmal nur aus Spaß erweitert. Wenn ich mal ein Spiel komplett selbst erstelle, werde ich mir das merken! Danke ![]() Schöne Grüße Gertri EDIT: So ich habe jetzt mal was ausprobiert, so ganz klappts aber immer noch nicht. Ich hab mich jetzt für ein Pivot entschieden der die Koordinaten von PickedX(),PickedY().... bezieht. Mein bisheriger Code: BlitzBasic: [AUSKLAPPEN] Global pivot=CreatePivot() So seh ich da jetzt keinen Fehler drin, trotzdem zeigt der Debugger mir ein Fehler in der Zeile picked= CameraPick() an. Zitat: Object does not exist
Warum? Hier nochmal der komplette Code wer sich da durchwurschteln will ![]() BlitzBasic: [AUSKLAPPEN] Graphics3D 800,600,32,1 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group