Tile Scroll Problem <---|ungelöst|

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

DeVIL

Betreff: Tile Scroll Problem <---|ungelöst|

BeitragSa, Okt 25, 2008 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
Ich mache zurzeit einen Editor für meinen Jar
Allerdings habe ich Probleme beim Scrollen

Ich möchte,dass die Blöcke auch nach dem Scrollen noch in das Raster einrasten




Code: [AUSKLAPPEN]

;Editor

Graphics 1600,1200,32,2
HidePointer
SetBuffer BackBuffer()

;Images--------------------------------------------------
cubes    = LoadAnimImage("Images/bricks.bmp",64,64,0,4)
sky      = LoadImage("Images/Stars.png")
pointer  = LoadImage("Images/Mouse.jpg")
menu     = LoadImage("Images/Menu.png")
tickbox  = LoadAnimImage("Images/tickbox.bmp",16,16,0,2)
cursor   = LoadImage("Images/cursor.bmp")
MaskImage Cursor,255,0,255




;Variables-----------------------------------------------

menuX   = 0
menuY   = 0
Global scrollX = 8
Global scrollY = 8
skyX   = 0
skyY   = 0
skymoves = False
cubemat = 0

   
   



;Objects-------------------------------------------------
Type cube
   Field x,y
   Field Mat
End Type

;Functions-----------------------------------------------
Include "dg.bb"



;Main----------------------------------------------------


Repeat
   
   DrawGrid(1600,1200,64,64,100,100,100)
   
   TileImage sky,skyX,skyY
   
   
   
   ;cubes erschaffen
   
   If MouseHit(1)
      If Not ImagesCollide(pointer,MouseX(),MouseY(),0,menu,menuX,menuY,0) And MouseDown(1)
         c.cube = New cube
         c\x =(Floor(MouseX()/64)*64)+32
         c\y =(Floor(MouseY()/64)*64)+32
         c\Mat = cubemat
      EndIf
   EndIf
   
   ;scrollen
   
   For c.cube = Each cube
      DrawImage cubes,c\x,c\y,1
      If KeyDown(205)
         c\x = c\x - scrollX
         
       ElseIf KeyDown(203)
         c\x = c\x + scrollX
         
      ElseIf KeyDown(208)
         c\y = c\y -scrollY
         
      ElseIf KeyDown(200)
         c\y = c\y +scrollY
         
         
      EndIf
   Next
   
   If skymoves = True
      If KeyDown(205)
          skyX = skyX-scrollX
       ElseIf KeyDown(203)
         
         skyX = skyX+scrollX
      ElseIf KeyDown(208)
         
         skyY = skyY-scrollY
      ElseIf KeyDown(200)
         
         skyY = skyY+scrollY
      EndIf
    EndIf
   
   
   
   
   
   ;Menu
   ;If ImagesCollide(pointer,MouseX(),MouseY(),0,menu,menuX,menuY,0) And MouseDown(1)
      ;menuX = MouseX() - (ImageWidth(menu)/2)
      ;menuY = MouseY() - (ImageHeight(menu)/2)
   ;EndIf
   
   If ImagesCollide(pointer,MouseX(),MouseY(),0,tickbox,menuX+20,menuY+100,0) And MouseDown(1)
      skymoves = True
   ElseIf ImagesCollide(pointer,MouseX(),MouseY(),0,tickbox,menuX+20,menuY+100,1) And MouseDown(1)
      skymoves = False
   EndIf
   
   For cubemat = 1 To 4
      If MouseHit(3)
         cubemat = cubemat + 1
      EndIf
    Next
      
   
   
   
   DrawImage menu,menuX,menuY
   ;skymoves tickbox
   If skymoves = False
      DrawImage tickbox,menuX+20,menuY+100,0
    Else
      DrawImage tickbox,menuX+20,menuY+100,1
   EndIf
   Print "Sky moves"
   Locate menuX+40,menuY+100
   Color 0,0,0
   DrawImage pointer,MouseX()+32,MouseY()+32
   DrawImage cursor,(Floor(MouseX()/64)*64)+32,(Floor(MouseY()/64)*64)+32
   
   If KeyHit(28)
      SaveBuffer(BackBuffer(),"buffer.bmp")
      
   End If
   
   
   
   Flip
   Cls
Forever

  • Zuletzt bearbeitet von DeVIL am So, Okt 26, 2008 11:26, insgesamt 4-mal bearbeitet

DeVIL

BeitragSa, Okt 25, 2008 12:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann es sein das das mit dem grid nicht in die Each cube verschachtelung darf?

DeVIL

BeitragSa, Okt 25, 2008 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah ja das war es
fehlt nurnoch, das es ins grid einrastet

EDIT: Ich habe jetzt den code gepostet, bei dem nurnoch das einrasten fehlt

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group