jump 'n' run

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Olio

Betreff: jump 'n' run

BeitragDo, Okt 14, 2004 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo zusammen
ich hab sowas wie ein jump & run game programmiert
jetz hab ich folgendes problem
ich habe eine 40 - 40 map erstellt und zeichne die auf den Bildschirm
das problem ist drawimage zeichnet auch die bilder ein die gar nicht auf dem bildschirm zusehen sind und das bremst mächtig und ist ja auch unnütz

wie kann ich nur die bilder zeichnen die auf dem bildschirm zusehen sind??
 

David

BeitragDo, Okt 14, 2004 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Einfach die Bilder zeichnen, deren Position innerhalb von 0,0 und deiner Bildschirmauflösung liegt ne?

Edit: Natürlich auch die Bilder welche teilweise in den Bildschirm "hineinragen". Also deren Koordinaten zwar kleiner als 0,0/maxX,maxY sind, aber nicht größer bzw gleich der Breite/Höhe deines Tiles.

grüße
http://bl4ckd0g.funpic.de
  • Zuletzt bearbeitet von David am Do, Okt 14, 2004 11:50, insgesamt einmal bearbeitet
 

Olio

BeitragDo, Okt 14, 2004 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
wie meinst du das???
man kann mit der figur im ganzen feld herumhüpfen.

edit: ich hab irgendwie einen knoten
versteh es so halbwegs kann mir abe keinen code draus machen

sbrog

BeitragDo, Okt 14, 2004 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
if tilex >0-tilegröße and tilex <bildschirmauflösungx and tiley >0-tilegröße and tiley <bildschirmauflösungy

drawimage tile,tilex,tiley

endif
 

David

BeitragDo, Okt 14, 2004 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Hier mal bisschen Pseudocode, vielleicht verstehst dus dann besser:

Code: [AUSKLAPPEN]

const TILE_WIDTH = 32
const TILE_HEIGHT = 32

for Tile.currTile = each Tile
  if (RectsOverlap( currTile.x, currTile.y, TILE_WIDTH, TILE_HEIGHT, -TILE_WIDTH, -TILE_HEIGHT, ScreenWith, ScreenHeight ) ) then
    DrawImage( currTile.image, currTile.x, currTile.y )
  endif
next


Ich habs nicht getestet aber ich denke theoretisch müsste es so funktionieren, oder ich hab noch nen Denkfehler drinn. Wink

grüße
http://bl4ckd0g.funpic.de

Hubsi

BeitragDo, Okt 14, 2004 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
@David: Er kommt mit Scrolling noch nicht klar und da haust Du ihm fehlerhaften Type-Code (Syntaxfehler, Funktion nicht getestet) um die Ohren? Nicht gerade die feine englische Razz
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Olio

BeitragDo, Okt 14, 2004 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
hier noch der code zum zeichnen

Function Draw()
For y = 0 To hohe
For x = 0 To breite
If map(x,y) = 1 Then
DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,0,32,32
End If
If map(x,y) = 2 Then
DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,32,32,32
End If
If map(x,y) = 3 Then
DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,64,32,32
End If
If map(x,y) = 4 Then
DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,160,32,32
End If
If map(x,y) = 5 Then
DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,96,32,32
End If
If map(x,y) = 6 Then
DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,128,32,32
End If
Next
Next
End Function

edit: ich raffs immernoch nid
 

David

BeitragDo, Okt 14, 2004 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

@Hubsi: Wo steht das er mit dem Scrolling nicht klar kommt? Außerdem steht über meinem Code "Pseudocode". Ich hab die Syntax eben etwas an die von BlitzBasic angepaßt.

@Olio: Schau dir die Onlinehilfe von RectOverlap an und denk mal ganz scharf nach, was für Kriterien ein Tile erfüllen muß wenn es NICHT auf dem Bildschirm sichtbar ist!

grüße
http://bl4ckd0g.funpic.de

Jan_

Ehemaliger Admin

BeitragDo, Okt 14, 2004 12:42
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Olio du machst sowieso nicht gerade die schnellsten befehle!
nuntzte Loadanimimage, um Tiles zu laden, und dann machste Drawimage und, das Frame ist dann die nummer, des images!
between angels and insects

simi

BeitragDo, Okt 14, 2004 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

for x = 0 to GraphicsWidth()/32
  for y = 0 to GraphicsHeight()/32
 

Olio

BeitragDo, Okt 14, 2004 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
@jan
biste sicher dass das die schnellere variante zum zeichnen ist???

@david: würde deine Variante nicht nur funktionieren wenn ich die tiles in types gespeichert hätte. ich habe eine map und lese dann die nummern jedes mal aus und zeichne sie.

Jan_

Ehemaliger Admin

BeitragDo, Okt 14, 2004 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, weil sie dann nur gezeichnet werden, und nciht "ausgeschnitten".
between angels and insects

Jan_

Ehemaliger Admin

BeitragDo, Okt 14, 2004 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Draw()
  For X = Offeset_X/32-1 To Offeset_X/32+Graphicswidth()/32+1
    For Y = Offeset_Y/32-1 To Offeset_Y/32+Graphicsheight()/32+1
      if X < hohe And y < breite then
        DrawImage sachen, x*32 - Offset_x, y*32 - Offset_y,map(x,y)
      endif
    Next
  Next
End Function
between angels and insects
 

Olio

BeitragDo, Okt 14, 2004 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
OK ich poste mal den code
ich weiss das nicht alles ideal übersichtlich ist.

Code: [AUSKLAPPEN]
Graphics 832,608,16,2

AppTitle "Pingu Game"
SetBuffer BackBuffer()
frametimer = CreateTimer (120)
ClsColor 0, 0, 255

;Gfx laden
Global sachen = LoadImage ("sachen.bmp")
MaskImage sachen, 0,255,0
Global dude = LoadImage ("figur4.bmp")
MaskImage dude, 255,0,255
Global fischbild = LoadImage("fischbild.bmp")
MaskImage fischbild ,0,255,0

;Variablen und Constante bestimmen
Global Player_pos_x = 416
Global Player_pos_y = 304
Global Player_temp_y# = 0
Global jump = False
Global startzeit = MilliSecs()
Global countown
Global Offset_x, Offset_y
Global punkte = 0
Global breite = 39
Global hohe = 39

Const rauf = 200, runter = 208, rechts = 205, links = 203, space = 57



;Kartendaten lesen
Dim map (breite + 1,hohe + 1)

;Restore mapdata
;For y=0 To 18;
   ;For x=0 To 3 1
   ;   Read map(x,y)
   ;   If map(x,y) = 8 Then
   ;      Player_pos_x = x*32 - Offset_x
   ;      Player_pos_y = y*32 - Offset_y
   ;      map(x,y) = 0
   ;   End If
    ;Next
;Next

Restore mapdata
For y = 0 To hohe
   For x = 0 To breite
      Read map(x,y)
   If map(x,y) = 7 Then
      info.fisch = New fisch
      info.fisch\x = x * 32
      info.fisch\y = y * 32
   End If
     If map(x,y) = 7 Then map(x,y) = 0
    Next
Next



Type fisch
Field x,y
End Type
;Die Hauptschleife
Repeat

Cls
WaitTimer (frametimer)

Fischmalen()
DrawMap()
Movedude()
DoJump()
DrawPlayer()
Einsammeln()
Zeit(30)

Flip

Until KeyHit (1)
End

;Functionen

Function Fischmalen()
   For info.fisch = Each fisch
      DrawImage fischbild,info.fisch\x - Offset_x,info.fisch\y - Offset_y
 Next
 Text 100,100,punkte,0,0
End Function

Function Einsammeln()
   For info.fisch = Each fisch
      If ImagesCollide(fischbild,info.fisch\x - Offset_x,info.fisch\y -Offset_y,0,dude,player_pos_x, player_pos_y,0) Then
      Delete info.fisch
      punkte = punkte + 20
      End If
   Next
End Function
   
Function DrawMap()
   For y = 0 To hohe
      For x = 0 To breite
         If map(x,y) = 1 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,0,32,32
            End If
         If map(x,y) = 2 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,32,32,32
            End If
         If map(x,y) = 3 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,64,32,32
            End If
         If map(x,y) = 4 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,160,32,32
            End If
         If map(x,y) = 5 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,96,32,32
            End If
         If map(x,y) = 6 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,128,32,32
            End If   
      Next
   Next
End Function         
   
 

Function MoveDude()
   If KeyDown(links) Then
       If map((Player_pos_x - 1 + Offset_x) /32,(Player_pos_y + 0 + Offset_y) /32)=0 And map((Player_pos_x - 1 + Offset_x) /32,(Player_pos_y + 31 + Offset_y) /32)=0 Then; _x + 32) /32,(Player_pos_y + 31) beim ersten weil sonst figur an decke ruckt
          Offset_x = Offset_x -4
       ;If Offset_x =<  (-breite * 16) Then Offset_x = (-breite * 16) + 4
       EndIf
    ElseIf KeyDown(rechts) Then
       If map((Player_pos_x + 32 + Offset_x) /32,(Player_pos_y + 0 + Offset_y) /32)=0 And map((Player_pos_x + 32 + Offset_x) /32,(Player_pos_y +31 + Offset_y) /32)=0 Then
          Offset_x = Offset_x +4
          ;If Offset_x => (breite * 16) Then Offset_x = ((breite * 16) - 4)
       EndIf
   EndIf
End Function


   
Function DoJump()
   ;Überprüft  ob Taste Space gedrückt wurde
   If KeyDown (space) And map((Player_pos_x + 0 + Offset_x) /32,(Player_pos_y - 1 + Offset_y) /32)=0 And map((Player_pos_x + 31 + Offset_x) /32,(Player_pos_y - 1 + Offset_y) /32)=0 Then
      If jump = False
         jump = True
         Player_temp_y = 11
      EndIf
   EndIf
   
   ;falls Player nach oben gegen Mauer springt, fällt er zurück
   If map((Player_pos_x + 0 + Offset_x) /32,(Player_pos_y - 1 + Offset_y) /32)<>0 Or map((Player_pos_x + 31 + Offset_x) /32,(Player_pos_y - 1 + Offset_y) /32)<>0 And jump = True Then
      jump = False
      Offset_y = Offset_y + 1   ;6;muß um eins tiefer gesetzt werden, da sonst die Figur hängen bleibt
   EndIf

   
   ;die eigentliche Sprungroutine
   If jump = True Then
      Player_temp_y = Player_temp_y -0.33
      Offset_y = Offset_y - Player_temp_y
      If Player_temp_y =< 0 Then
         If map((Player_pos_x + 0  + Offset_x) /32,(Player_pos_y + 31 + Offset_y) /32)<>0 Or map((Player_pos_x + 31 + Offset_x) /32,(Player_pos_y + 31 + Offset_y) /32)<>0 Then
            jump = 0
            temp = (Player_pos_y + Offset_y) /32
            Offset_y = (temp *32) - Player_pos_y
         EndIf
      EndIf
    EndIf
   
   ;Gravity
   If jump = False  Then
      If map((Player_pos_x + 0 + Offset_x) /32,(Player_pos_y + 32 + Offset_y) /32)=0 And map((Player_pos_x + 31 + Offset_x) /32,(Player_pos_y + 32 + Offset_y) /32) = 0 Then
         jump = True
         Player_temp_y = 0
      EndIf
   EndIf
   
   ;sorgt dafür, das die Figur nicht aus den Himmel schießt

      If Offset_y < -300 Then
      Offset_y = -300
      jump = True
      Player_Temp_y = 0
   EndIf
   
   ;If Offset_y => 296 Then
   ;   Offset_y = 296
   ;   jump = False
   ;EndIf
      
End Function
   


Function DrawPlayer()
   DrawImage dude, Player_pos_x, Player_pos_y
End Function

Function Zeit(warten)
;zeit = MilliSecs()
;countown = warten - ((zeit-startzeit) / 1000)
;Text 100,100,countown,0,0
;If countown = 0  And info.fisch = Null Then
;End
;End If
End Function


.mapdata
Data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
data 2,2,2,2,2,2,2,2,2,2,2,2,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,1,1,1,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7,7,7,7,7,7,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,7,7,7,7,7,7,7,7,7,7,1,1,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,1,1,1,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,1,0,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,7
Data 2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7,7,7,7,7,7,7,7,1,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,1,1,1,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
Data 2,2,2,2,7,7,7,7,7,7,7,7,7,7,1,1,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,1,1,1,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,1,0,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,7
data 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
Data 2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7
Data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1
Data 2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1
 

David

BeitragDo, Okt 14, 2004 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Und warum nimmst du nicht einfach Types?
Dann wird dein Code viel übersichtlicher, leichter zu lesen und es wird für dich leichter sowas zu programmieren!
Es geht auch anders, aber manche denken halt: "warum leicht, wenns auch schwehr geht" ne???? Rolling Eyes

grüße
http://bl4ckd0g.funpic.de

Hubsi

BeitragDo, Okt 14, 2004 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
David hat Folgendes geschrieben:
@Hubsi: Wo steht das er mit dem Scrolling nicht klar kommt? Außerdem steht über meinem Code "Pseudocode". Ich hab die Syntax eben etwas an die von BlitzBasic angepaßt.
Olio hat Folgendes geschrieben:
das problem ist drawimage zeichnet auch die bilder ein die gar nicht auf dem bildschirm zusehen sind und das bremst mächtig und ist ja auch unnütz
Das gehört für mich zu Scrolling dazu. Hab mich etwas undeutlich ausgedrückt Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

David

BeitragFr, Okt 15, 2004 0:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Achso, nadann...
Aber ich glaub Olio fehlen noch viele grundlegende Dinge, sonst müsste er die Theorie so langsam begriffen haben...

grüße
http://bl4ckd0g.funpic.de
 

Olio

BeitragFr, Okt 15, 2004 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
hab nun eine möglichkeit (ob sie schneller ist weiss ich nicht)

Code: [AUSKLAPPEN]
Function DrawMap()
   For y = (((player_pos_y + offset_y) / 32) - 13) To (((player_pos_y + offset_y) / 32) + 13)
      For x = (((player_pos_x + offset_x) / 32) - 13) To (((player_pos_x + offset_x) / 32) + 13)
         If map(x,y) = 1 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,0,32,32
            End If
         If map(x,y) = 2 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,32,32,32
            End If
         If map(x,y) = 3 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,64,32,32
            End If
         If map(x,y) = 4 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,160,32,32
            End If
         If map(x,y) = 5 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,96,32,32
            End If
         If map(x,y) = 6 Then
            DrawImageRect sachen, x*32 - Offset_x, y*32 - Offset_y,0,128,32,32
            End If   
      Next
   Next
End Function


nur das problem ist wenn die figur zuweit am rand ist heisst es logischerweise "array index out of bounds"
ich nehme an das einfachste ist einen genug dicken rand ums feld zu machen

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group