Maus in der Mitte vom Bildschirm behalten?
Übersicht

T-25Betreff: Maus in der Mitte vom Bildschirm behalten? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute!
Ich würde gerne die Maus in der Mitte vom Bildschirm behalten, da ich die Kamera sobald die Maus am Bildschirmrand ist nichtmehr bewegen kann. Hier mal der Code: Code: [AUSKLAPPEN] winkel=winkel-MouseXSpeed()/3
winkel2=winkel2+MouseYSpeed()/3 X# = XXX * Cos( winkel ) * Cos( winkel2 ) Y# = XXX * Sin( winkel2 ) Z# = XXX * Sin( winkel ) * Cos( winkel2 ) PositionEntity playcam,EntityX(player)+x,EntityY(player)+y,EntityZ(player)+z RotateEntity player,EntityPitch(player),winkel,EntityRoll(player) RotateEntity playcam, winkel2 - 90, winkel, EntityRoll(player) UpdateWorld RenderWorld DrawImage crosshair, screenwidth / 2 - 34, screenheight / 2 - 34 |
||
![]() |
ChriseBetreff: Re: Maus in der Mitte vom Bildschirm behalten? |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
Mathe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab das jetzt so verstanden, dass du nicht über einen bestimmten Bereich hinaus willst ich würde es z.B so lösen.
Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer BackBuffer() Local Win_W% = 800, Win_H% = 600 Repeat Cls Rect 300,200,200,200,0 If MouseX() >= 500 Or MouseX() <= 300 Or MouseY() >= 400 Or MouseY() <= 200 Then MoveMouse Win_W/2, Win_H/2 EndIf Flip Until KeyHit(1) Wenn MouseX() oder MouseY() über das Rechteck hinausgeht wird die Maus wieder in die Mitte gesetzt. Edit: sry hab überlesen dass du die Maus in der Mitte halten willst... |
||
Windoof nein DANKE => ArchLinux ![]() |
![]() |
The_NiciBetreff: Re: Maus in der Mitte vom Bildschirm behalten? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Chrise hat Folgendes geschrieben: BlitzBasic: [AUSKLAPPEN]
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 Unschön! GraphicsWidth bzw. GraphicsHeight wird jeden Schleifendurchlauf neu aufgerufen - auch wenn die Grafikauflösung bleibt! Folgen -> Unnötiger Zugriff verursacht Geschwindigkeitsverlust. Bessere Lösung -> Als Variablen definieren. BlitzBasic: [AUSKLAPPEN] Global gfx% = GraphicsWidth() Noch schneller wäre natürlich die halbe Auflösung gleich als Variable zu definieren, aber dabei handeln es sich um etwa 0.001 Millisekunden pro Schleifendurchlauf, also unbedeutend. Ausserdem würde das 8 bytes mehr Speicherverbrauch verursachen. MfG |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
optimiere lieber schleifen / rekursive funktionen, die pro frame tausende male aufgerufen werden, anstatt dir über sowas nen kopp zu machen.... (; | ||
MrKeks.net |
T-25 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gut, funktioniert jetzt
![]() Danke |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group