Maus in der Mitte vom Bildschirm behalten?
Übersicht
BlitzBasic
Blitz3D
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
BlitzBasic
Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group
