Breakout-Clone

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

BtbN

Betreff: Breakout-Clone

BeitragFr, Mai 27, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will einen Breakout-Clone mache.
Und damit der Schieber unten nicht so rumrast, wie bescheuert, habe ich das nicht über MouseX() gemacht, sondern über MouseXSpeed(), und dann die Position über "pos = pos + MouseXSpeed()" gemacht.
Und um dann zu verhindern, dass der Schieber nicht links und rechts anschlägt, habe ich geguckt, wie breit er is, und bie weit weg halt(oh Gott, ich hoffe das versteht wer ^^).
So, und damit er nich zu schnell wird, habe ich per If verhindert, dass MouseXSpeed nie höher als 15 wird.
Problem-------> Aber jetzt stoppt der Schieber nicht am Rand, sondern mitten drin! <----------Problem


BORtobeNAMELESS

frigi

BeitragFr, Mai 27, 2005 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Gib uns am besten einfach mal den Teil vom Code....
frigi.designdevil.de

BtbN

BeitragFr, Mai 27, 2005 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Irgendwo in dem Teil:

BlitzBasic: [AUSKLAPPEN]
If xs <= 20 And xs >= -20 Then
pos = pos + xs
ElseIf xs <= 15-30 Then
pos = pos - 15
Else
pos = pos + 15
EndIf
MoveMouse pos, y

If pos > 800-(breite/2) Then
pos = 800-(breite/2)
EndIf
If pos < breite/2 Then
pos = breite/2
EndIf


Naja, ich bin ratlos...

Kryan

BeitragFr, Mai 27, 2005 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
du kannst doch zum beispiel mousex()/2 nehmen
da rast der nicht so Wink
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Spikespine

BeitragFr, Mai 27, 2005 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ganz so einfach ist es aber nicht: wenn ich einfach nur mousex()/2 nehme, kann der wert maximal die halbe bildschirmauflösung betragen, da mousex() nicht mehr betragen kann!

Spike

edit: hmm, mir fällt einfach kein einfacherer weg ein, als so:

BlitzBasic: [AUSKLAPPEN]
gx=1024
gy=768

Graphics gx,gy,0,1
SetBuffer BackBuffer()

Repeat
Cls
mx=MouseX()
If mx >= gx-1 And r=0 Then
MoveMouse 1,MouseY()
r=1
ElseIf mx = 0 And r=1 Then
MoveMouse gx-1,MouseY()
r=0
EndIf

x=MouseX()/2 + (gx/2 * r)

Text 0,0,r
Text 0,20,mx
Text 0,40,x

Color 255,255,255
Rect x,gy/2,30,10,1

Color 255,0,0
Rect mx,gy/2,2,2,1


Flip
Until KeyHit(1)
End


Umständlich mit movemouse...
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Mai 27, 2005 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
das würde ich anders lösen!
Mit MouseX()
hab da auch mal... was gemacht!
BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,16,2
Global SchImg= Image(100,10,$ff0000)
Global SchX
Const RandLinks = 10 , RandRechts= 790

SetBuffer BackBuffer()
While Not KeyDown(1)
SchlaegerSet()
DrawImage SchImg,SchX,400
Flip
Cls
Wend
End
Function SchlaegerSet()
If MouseX() > SchX SchX = SchX+10
If MouseX() < SchX SchX = SchX-10
If (ImageWidth(SchImg)/2 + SchX) > RandRechts Then
SchX= Randrechts-ImageWidth(SchImg)/2
End If
If (SchX - ImageWidth(SchImg)/2 ) < RandLinks Then
SchX= ImageWidth(SchImg)/2 + RandLinks
End If
End Function

Function Image(x,y,f); Erstellt Pseudo Grafik
img = CreateImage (x,y)
SetBuffer ImageBuffer (img)
Color 0,0,f : Rect 0,0,x,y,1
MidHandle Img
SetBuffer BackBuffer ()
Color 255,255,255
Return img
End Function
[BB2D | BB3D | BB+]

BtbN

BeitragSa, Mai 28, 2005 8:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab das Problem jetzt selbst gefunden und gelöst.
Trotzdem Danke!
Das Problem war, das ich den Schieber nicht schneller werden ließ, als 20.
Doch die Eignetlich Maus, die man nicht sehen konnte, war am Rand, und konnte deshalb nicht mehr schneller werden.
Also habe ich einfach gesagt:

BlitzBasic: [AUSKLAPPEN]
MoveMouse(pos,299)


Damit hatte sich das, und die Maus war immer über dem Schieber, und der Läst sich jetzt auch ganz passabel bewegen!


BORNtobeNAMELESS

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group