Aktuelle Zeit: 01.11.2024, 03:22

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Korrekte schüsee (FPS)
BeitragVerfasst: 06.12.2007, 22:47 
Offline
Benutzeravatar

Registriert: 04.09.2007, 13:07
Beiträge: 12
Hi,

ich versuche schießen in meinem spiel zu implementiern, ja ich habe die forensuche benutzt und ich habe mir die Demo angesehen. Eine automatische schusswaffe streut und ich bin mir nicht ganz im klaren wie ich so etwas korrekt erzielen kann. Ich verwende den code aus der demo zum schiessen, so weit funktioniert das auch ganz gut nur geht der ray immer punkt genau in den mittelpunkt (camera->getTarget()).

So weit ich das kapiert habe gibt es zwei wege einen waffenstreu-effekt zu erzielen.
1. direkt, den vektor den ich von camera->getTarget() geliefert bekomme abändern.
2. indirekt, das ziel der kamera mit camera->setTarget() minimal abändern.

allerdings erhalte ich bei beiden wegen nur ein mehr oder weniger schönes resultat und zwar, dass es bei dauerfeuer (halten von space, mehrere schüsse hintereinander) immer auf einen bestimmten punkt gelange. wenn ich nur die Y (kA sollte zwar Z sein aber gut) koordinate ändere zieht der ray immer weiter nach oben, ok das passt ja, nur wenn ich X oder Z änder landet der ray immer auf einem fixen punkt. z.B. die rechte obere ecke des fensters. wenn ich mich 180° drehe dann ist es genau invertiert aber noch der selbe pkt. also z.B. dann die linke obere ecke des fensters. hoffe es ist verständlich erklärt.

Fragen:
1) Wie kann ich sozusagen relative pkt. zuweisen, so dass es immer der selbe pkt. ist zu dem sich der ray hinzieht.

2) muss ich es überhaupt anders angehen?

3) wie kann ich die funktion in bestimmten zeitabstand (feuerrate) wiederholen lassen wenn die maustaste gehalten wird. (wie in jedem anderen FPS)

hier noch 2 bilder zum besseren verständniss:

schon mal danke im vorraus und lg lukrop ;)


Dateianhänge:
Dateikommentar: das passiert, oben wenn ich normal schaue vom kamerastart, unten wenn ich mich um 180° drehe
resultat.jpg
resultat.jpg [ 6.87 KiB | 3160-mal betrachtet ]
Dateikommentar: so stell ich mir das vor (+ dem versetzen der kamera was nicht aufgezeichnet ist)
ziel.jpg
ziel.jpg [ 3.55 KiB | 3160-mal betrachtet ]
Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Korrekte schüsee (FPS)
BeitragVerfasst: 06.12.2007, 23:47 
Offline
Benutzeravatar

Registriert: 04.09.2007, 13:07
Beiträge: 12
konnte es jetz mit diesem code lösen:
Code:
        i = rand()%6;
       
        if(i == 1)
        {
            camTarget.X += 0.01f;
            camTarget.Y += 0.015f;
        }

        else if(i == 2)
        {
            camTarget.X += -0.01f;
            camTarget.Y += 0.015f;
        }
       
        else if(i == 3)
        {
            camTarget.Y += 0.01f;
        }
       
        else if(i == 4)
        {
            camTarget.Y += -0.01f;
        }
       
        else if(i == 5)
        {
            camTarget.Z += 0.01f;
            camTarget.Y += 0.015f;
        }
       
        else if(i == 6)
        {
            camTarget.Z += -0.01f;
            camTarget.Y += 0.02f;
        }


bleibt nur noch die frage offen, wie ich in (einstellbaren) zeitabständen die funktion wiederholen lassen wenn die maustaste gedrückt gehalten wird.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Korrekte schüsee (FPS)
BeitragVerfasst: 07.12.2007, 09:38 
Offline
Moderator

Registriert: 26.03.2007, 20:06
Beiträge: 114
Prüf einfach jeden Frame, ob die Maustaste noch gedrückt ist. Dann musst du noch eine Zeit speichern. Wenn eine bestimmte Zeit vorbei ist, also 1/Schussfrequenz, lässt du wieder eienen Schuss los, ansonsten nicht.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de