Problem mit Scrolling

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

girgl

Betreff: Problem mit Scrolling

BeitragMo, Jan 12, 2004 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
servus,ich will in mein editor scrolling einbaun,aber das geht net.
so sieht erstmal die Funktion aus
Code: [AUSKLAPPEN]
Function Scrolling()
If KeyDown(203) Then scrollx=scrollx-4
 If scrollx<0 Then scrollx=0

If KeyDown(205) Then scrollx=scrollx+4
 If scrollx>(mapb-1)*16 scrollx=(mapb-1)*16

If KeyDown(200) scrolly=scrolly-4
 If scrolly<0 Then scrolly=0

If KeyDown(208) Then scrolly=scrolly+4
 If scrolly>(maph-1)*16 Then scrolly=(maph-1)*16

End Function


so und beim zeichnen muss man ja angeblich einfach nur die scrollwerte abziehn,wenn ich aber n bischen scroll sind die tiles ganz woanders.

Code: [AUSKLAPPEN]

for i=0 to maph-1
 for j=0 to mapb-1
  drawimage Tset,j*16-scrollx,i*16-scrolly,map(j,i)
 next
next
 

Nukleus

BeitragMo, Jan 12, 2004 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
:oops:
zwischen scrollx> ... und scrollx= fehlt Then aber daran allein kanns wohl nicht liegen
 

girgl

BeitragMo, Jan 12, 2004 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
dne das is egal wie mans schreibt
 

girgl

BeitragMo, Jan 12, 2004 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
kann mir keiner sagen wie ich sowas mach? Sad

Slayer

BeitragMo, Jan 12, 2004 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Vieleicht hilft Dir das hier weiter.


Code: [AUSKLAPPEN]


Graphics 640,480,16,1
SetBuffer BackBuffer()
;------------------------------

Global xpos = 0,ypos = 0


Global links = 203,rechts = 205,oben = 200, unten = 208

Global tilex = 32,tiley = 32

Global count = 0

;------------------------------

While Not KeyHit(1)

If KeyDown(links)
 xpos = xpos - 1
   If xpos < 0 Then xpos = 0
EndIf

If KeyDown(rechts)
 xpos = xpos + 1
   If xpos > (640 - tilex * 10) Then xpos = (640 - tilex * 10)
EndIf

If KeyDown(oben)
 ypos = ypos - 1
   If ypos < 0 Then ypos = 0
EndIf

If KeyDown(unten)
   ypos = ypos + 1
   If ypos > (480 - tiley * 10) Then ypos = (480 - tiley * 10)
EndIf






;------------------------------
For y = 0 To 9
   For x = 0 To 9
   
   
   
   Rect xpos + (x * tilex  ),ypos + (y * tiley),tilex,tiley,0

      Text xpos + (x * tilex  ),ypos + (y * tiley),count
      count = count +1
   Next
Next
count = 0
;------------------------------


Flip:Cls
Wend:End
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version
 

girgl

BeitragDi, Jan 13, 2004 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiss net,was ich falsch mach,aber das klappt immer noc hnich.Kann nic hjemand einfach nen codebeispiel bringen,wie ers immer macht?

Slayer

BeitragDi, Jan 13, 2004 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Question Question Question
Der Code/Beispiel Oben hat Dir nicht geholfen ??
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version
 

girgl

BeitragDi, Jan 13, 2004 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habs so gemacht,wies in dem beispiel auch is,aber irgendwie hauts net hin,war mir eigentlich alles einleuchtend,was da drin stand...aber trotzdem gings net
 

denial

BeitragMi, Jan 14, 2004 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Du erledigst das Scrollen einer Funktion.... hast du vielleicht zufällig die Variablen scrollx, scrolly nicht global gemacht? Rolling Eyes
Außerdem ist die Abfrage, ob die X/Y-Scroll-Koordinaten zu hoch sind, ziemlich unelegant gelöst.
 

girgl

BeitragMi, Jan 14, 2004 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
ja,sin global.Wie würdest dus denn machen?
 

denial

BeitragMi, Jan 14, 2004 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht hochzählen und dann gucken obs zu hoch war (erst schiessen, dann fragen, um einen Vergleich zu bringen), sondern erst prüfen obs zu hoch war, und gegebenfals umstellen. Würd ich jedenfals vorziehen.
 

girgl

BeitragMi, Jan 14, 2004 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
aber deswegen werden doch net die tiles gleich bei minimalem scrolling falsch gezeichnet.Das muss doch wo anders liegen.In jedem Tutorial das ich gesehn hab,musste man einfach beim zeichnen die scrollwerte abziehen.Hab ich gemacht,aber immer wieder der gleiche fehler ?!
 

denial

BeitragMi, Jan 14, 2004 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich benutze fürs Scrollen immer den Befehl Origin.... Du drückst dich aber auch etwas unpräzise aus. Bisher hast du nur geschrieben "dass es nicht geht". Was genau aber nicht geht, sagst du nicht. Kann er überhaupt nicht scrollen? Oder läuft es nur in eine Richtung? Oder was genau ist denn das Problem?
 

girgl

BeitragMi, Jan 14, 2004 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
ich denke schon,das ich mein problem geschildert hab.Scrollen tut er schon,nur wenn ich ein bischen scrolle und ein tile zeichnen möchte,ist das tile halt immer an der falschen stelle.

Aber mal zu origin,wie geht das mit dem befehl?
 

denial

BeitragMi, Jan 14, 2004 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Origin x,y

Bestimmt den Ursprungspunkt aller Grafiken.. Als X/Y Parameter könntest du ScrollX und ScrollY einsetzen, also deine Variablen.

Hubsi

BeitragDo, Jan 15, 2004 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Wobei Origin nur für kleine Karten zu empfehlen ist. Sonst gehts an die Performance.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

wiglef

BeitragDo, Jan 15, 2004 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
also,.... 1. Ich weiß ja nicht wie groß dein Teil ist, aber vielleicht ist +/- 4 einfach zu viel?

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group