[TUT] OpenGL Zooming

X

X-Terminator

Hi@all 00de Members

Die Zoom funktion ist ein nützliches Tool um z.b bei einer Colt oder AK wie mit einer Steyr Aug zoomen zu können.

Nun ja ich gestalte euch mal das Tutorial einfach.
Also zuerst müssen wir nen Namen für unser Zooming boolen.
Das könnt ihr auch in der opengl32.cpp boolen. ihr müsst nicht extra einen
header erstellen.

Hmm nennen wir es oioi (kommt valve sicher nicht dahinter). gg
Das sieht so aus;

Code:
bool oioi=false;

Ok jetzt gehen wir gleich weiter zur sys_GLFrustum und pasten einfach
diese Zeilen:

Code:
void sys_glFrustum (GLdouble left,  GLdouble right,  GLdouble bottom,  GLdouble top,  GLdouble zNear,  GLdouble zFar)
  {
      if(oioi) //oioi = zoom knopf
      {
          int zoom_lvl = 30;    
  top = zNear * tan(zoom_lvl * 3.1428571428571428 / 360.0); 
          bottom = -top; 
          left = bottom * (4/3); // bzw. ViewPort[2]/ViewPort[3] 
 right = top * (4/3); // ViewPort enthält informationen über den Screen sprich 1024x768 denn mit dem wert von 1.3 würde es zu verzerrungen kommen bei leuten die z.B. eine Auflösung ala 1280x1024 haben wie ich (suxx ^^)
      }
  
      (*orig_glFrustum) (left, right, bottom, top, zNear, zFar);
  }

so nun ne erklärung.
Also mit If(oioi) wollen wir den zooming modus darstellen.
Int zoom_lvl = 30; Diesen Wert "30" kann beliebig geändert werden.

So jetzt da wir die funktion und das bool schon haben müssen wir nur noch unseren Zoomkey einstellen; wir gehen zu sys_glviewport

Code:
{
          if(GetAsyncKeyState(VK_RBUTTON)&(1==1)) //mouse 2 Zooming VK_rbutton
  {
          oioi=!oioi;
      }
  }

VK_RBUTTON bedeutet Mouse 2 (rechte taste. meistens ist da der mittelfinger drauf) :-)

ihr könnt auch andere keys benutzen.

Hier ein Link zu allen Virtual Keys

Virtual Keys hier

Ich wünsche euch noch viel Spaß

//Edit by Suxx
X-Terminator gutes TUT jedoch hab ich es ein wenig verallgemeinert und den Pi-Wert etwas gekürzt denn sonst Rechnet der PC viel mehr ... zieht Performance
 
hoffe du nimmst es mir nicht böse :D
 
nein jetzt raste ich aus :D

mal ne frage suxx. kann man nen colored models hack machen ohne modelrec? also nur das die models rot und blau leuchten
 
hm und das ist sicher sicher ?
:>
und wie kann ich sehen wielange das sicher ist nicht das ich auf einmal gebannt bin das währe kakke :>
 
X-Terminator es wäre sicher um eingies übersichtlicher, wenn du das tut besser gliedern würdest und die code teile auch mit dem BB Code [ Code] code [ /Code] kennzeichen würdest!

gruß subay
 
sey leutz ich weiß ned wie des mit dem code einfügen geht lol.

und des zoom is vac proof weil ich selber für meinen hack das bool oioi benutze und ich wurde nicht gebannt. nocht nicht :)
 
und ein kleiner Tipp Variablen jeglicher Art bis auf Strings werden von einem Compiler durch Speicheradressen ersetzt. Sprich die Variable vom Typ bool kann auch bZoom heissen
 
Kann mir einer vielleicht das mit denn zoomen machen aber auf die Taste F, weil ich das net kappier und dann hier als anhang dranmachen oder mir an meine E-Mail schicken :D plsss.... ist das auch CD-Proof oder ist das kein hack oder sonstiges und geht das auch bei 1.6 ???
 
in glviewport einfach statt VK_RBUTTON (mouse2)
Code:
{
          if(GetAsyncKeyState(VK_RBUTTON)&(1==1))
  {
          oioi=!oioi;
      }
  }

mit

in glviewport einfach statt VK_RBUTTON (mouse2)

Code:
{
          if(GetAsyncKeyState(VK_F)&(1==1))
  {
          oioi=!oioi;
      }
  }

so sollte es funktionieren
 
Hier wer ingame noch die Zoomstärke verstellen will:

Code:
int zoom_lvl = 30;
Dort mit hinschreiben wo ihr den bool vorher hingeschrieben habt. Und int zoom_lvl = 30; aus sys_glFrustum entfernen.

So nun in glviewport:

Code:
if(GetAsyncKeyState(VK_NUMPAD8)& (1==1)) //ZOOM +10
{
zoom_lvl= zoom_lvl -10;
}
if(GetAsyncKeyState(VK_NUMPAD9)& (1==1)) //ZOOM -10
{
zoom_lvl= zoom_lvl +10;
}

So wenn ihr jetzt Taste 8 auf dem numblockt drückt, wird näher gezoomt. Wenn Taste 9 gedrückt wird, wird heraus gezoomt.

Das wars.
 
:confused:
hallo
geht es auch bei cd für cs 1.5?
wenn ja bitte kann mir dann einer sagen wie und wo ich es zumachen habe
danke
 
Funzt bei 1.5, da ich selber nur 1.5 nutze.
 
high
bei mir zeigt er einen fehler an ,den ich nit wegkriege.
fehler:error C2065: 'zoom_lvl' : nichtdeklarierter Bezeichner
int zoom_lvl = 30;

help me
 
also was muss ich dann da hin schreiben?
 
tja schrieb:
also was muss ich dann da hin schreiben?
kennst du die Tutorial Section von 00DE ? sicher also guck dort mal subay hat sich dort mal die Ehre gegeben ein Beginner tut zu machen.
 
suxx nix gegen dich aber ich sehe dort nix wo das steht.
 
da steht aber nit wie ich das dann zusammen alles schreiben muss
 

Beliebte Schlagwörter

Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.

Zurück
Oben Unten