Gui Schieberegler
Übersicht

![]() |
StarGazerBetreff: Gui Schieberegler |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Ich möchte gern ein Schieberegler in mein Game einbauen, jedoch habe ich keine Ahnung wie das gehen soll. Er soll unabhängig von der Anzahl der Objekte in der Liste, diese durchsrollen, also prozentual, wie BS der Windowsregler. Der Code hier zeigt auf, welches Problem ich damit habe. Vielleicht habt ihr schon so etwas programmiert und könnt mir weiterhelfen. Code: [AUSKLAPPEN] Graphics3D 640,480,0,2
SetBuffer BackBuffer() camera=CreateCamera() light=CreateLight() PositionEntity camera,0,0,-10 RotateEntity light,90,0,0 Backround=CreateCube() EntityColor Backround,0,0,0 ScaleEntity Backround,20,15,0.2 EntityPickMode Backround,2 PositionEntity Backround,0,0,10 control=CreateCube() EntityColor control,64,255,128 ScaleEntity control,1,3,0.2 PositionEntity control,17,0,8 window=CreateCube() EntityColor window,16,64,64 ScaleEntity window,6,18,0.2 PositionEntity window,16,0,10 a = -40 Dim List(137) For i = 1 To 16 a = a + 3 List(i)=CreateCube() EntityColor List(i),Rnd(255),Rnd(255),Rnd(255) PositionEntity List(i),12,a,10 Next While Not KeyDown(1) ent=CameraPick(camera,MouseX(),MouseY()) old_y# = y# y#=PickedY() PositionEntity control,17,y,8 ; Begrenzung der Reglerposition If EntityY(control) < -11 Then PositionEntity control,17,-11,8 If EntityY(control) > 11 Then PositionEntity control,17,11,8 ; die Objekte verschieben For i = 1 To 16 If old_Y < y Then a = y - old_y :MoveEntity List(i),0,a,0 If old_Y > y Then b = old_y - y :MoveEntity List(i),0,-b,0 Next UpdateWorld RenderWorld Flip Wend End wäre für Hilfe dankbar. StarGazer |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
a=-30
. . . . For i = 1 To 16 If old_Y < y Then a = y - old_y :MoveEntity List(i),0,-a,0 If old_Y > y Then b = old_y - y :MoveEntity List(i),0,b,0 Next ... dürfte dich der sache schon mal näher bringen. Dann hakts noch ein bissl, aber die Richtung stimmt schon mal EDIT: Allerdings müsstest du den Listeneinträgen ein Max und minY zuweisen, sonst kannst du mit geschickter "mauspielerei" doch noch die Liste zum Verschwinden bringen ... |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
StarGazer |
![]() Antworten mit Zitat ![]() |
---|---|---|
den Code habe ich nur als BS gemeint, wenn man ein prozentualen Schieberegler machen will, muß man es sicher ganz anderes angegen. Denn was ist wenn die Liste mal 300-500 Stellen lang ist, dann passt es nie auf den Screen, die Liste muß sich dann dem Schieberegler anpassen.
Daher die Frage ob jemand schon sowas mal gemacht hat und dafür eine Lösung weist. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
da muß ich passen.... hab derzeit auch nicht genug Zeit zum Grübeln (und hab mit 3d bislang nit richtig gearbeitet). Sorry. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
anzahl der zeilen =500
gesamthöhe=500x20=10000 (20 so als beispiel) scrollbalkenhöhe=1000px 10000/1000=1/10 von 1000 = scrollbalken ist 100 px |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
StarGazer |
![]() Antworten mit Zitat ![]() |
---|---|---|
meinst du damit den Schieberegler selbst der seine Größe/Länge verändert ?
Ich meinte eigentlich, wenn der Balken ganz oben am Bildschirmrand ist, man auch den Obersten Eintrag sehen kann, und ganz unten den untersten Eintrag der Liste sehen kann, egal wie we groß/klein die Liste auch ist. Vielleicht kann man das dennoch aus deiner Formel basteln. Ich probier es mal, danke. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group