Intelligentere Lösung für Scrolling

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Intelligentere Lösung für Scrolling

Beitrag von Gamer »

Wenn die Maus am linken Screen ist, soll die Variable "r"
einen höheren Wert erhalten als wenn die X-Position 50 ist.

Code: Alles auswählen

If MouseX()=0
r+20
ElseIf MouseX()<30
r+10
ElseIf MouseX()<50
r+5
EndIf
Ich bräuchte eine stufenlose Version, sowas in der Art:

Code: Alles auswählen

If MouseX()<50
x = MouseX()
; Wert der Variable "r" entsprechend anhand von "x" zuweisen
EndIf
Also bei x=0 soll r=20 sein und bei x=50 eben r=5,
alles dazwischen soll stufenlos berechnet werden,
dürfte bei x=25 also r=12 oder sowas sein..

Bei der rechten Seite würde dies ja ungefähr einfach gehen:

Code: Alles auswählen

If MouseX()>750
x = MouseX()
r = x/10
EndIf
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

und bei der anderen Seite isses auch nicht viel schwerer :wink:

nur halt alles umgedreht, das heißt es muss vorm berechnen "richtigrum" gedreht werden :D

Du möchstes 50 Pixel spielraum haben, um also den Wert "umzudrehen" musst du 50 - den Wert rechnen

Code: Alles auswählen

50 - MouseX()
Jetzt nur noch die If-Abfrage für beide seiten und dort berechne.
Das ganze is nen bischen Dreisatz ... und weil du mindestens 5 haben willst ... musst das ganze dazu anpassen.

Code: Alles auswählen

If MouseX() <= 50 
  r = (50 - MouseX()) * 15 / 50 + 5
EndIf
So, damits nicht zu einfach ist, kannst das ganze ja jetzt mal versuchen auch für die andere Seite zu erstellen :D sollst ja schließlich bei was lernen :wink:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten