Types positionieren
Übersicht

![]() |
SereyanneBetreff: Types positionieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo mal wieder,
ich hätte da gerne ein Problem.... Also folgendes: Ich hab mit Hilfe von Tuts und allem Kram Types für mein Spiel erstellt. Weiß nich wie ich sonst Gegenstände zum Einsammeln positionieren soll. Mit den Types ist (hoffentlich) soweit alles okay. Aber die Angaben von x und y wo die Dinger hin sollen ärgern mich noch. Erst sind die Teile vor dem Spieler weggelaufen. Jetzt verschieben sie sich lustig hoch und runter. Hier mal der Code (der Bewegungscode ist übrigend von BladeRunner): Code: [AUSKLAPPEN] ;GFX laden und Varaiblen deklarieren
Global Magier = LoadAnimImage ("gfx/Magier5.bmp",32,32,0,12) MaskImage Magier, 255, 0, 255 Const HOCH = 9, RUNTER = 3, LINKS = 6, RECHTS = 0 Global movetimer = MilliSecs() Global Score = 0, Lives = -1 Global Item=LoadImage("gfx/tut2.bmp") MaskImage Item, 255,0,255 ;px Variable des Spielers Global px = 10 ;py Variable des Spielers Global py = 9 ;Direckt move = 1 damit die Figur auch am Anfang sichbar ist move = 1 Repeat Lives = 3 ;Lebenszahl auf 3 erhöhen score = 0 ;Punkte zurücksetzen setuplevel() SetBuffer BackBuffer() Cls ;Karte malen (vorher definiert mit dim map) For y = 0 To 49 For x = 0 To 49 DrawImage tileset,x*32-scrollx,y*32-scrolly,map(x,y) Next Next moving=False ;steht denn der alte holzmichel noch, ja der steht noch... (BladeRunner:DANKE!) If KeyDown(208) Then ;wenn die position des spielers (px,py+1) mit einem tile kollidiert, dass in der array einen anderen ;wert als 8 hat geht der if-satz nicht weiter und die figur bleibt stehen ;die 8 ist gleichzeitig das frame des tilesets If map(px,py+1) = 8 Then ;die figur wird um ein tile bewegt py=py+1 richtung = RUNTER ;die variable scrollx/y wird verändert und beim nächsten mal ;wenn die hauptschleife durchlaufen wird. malt man die karte halt ;an der position x/y-scrollx/y gemalt ;achja und - 32 weil die figur sich auch nur um 32 pixel ;bewegt. scrolly = scrolly + 32 ;überträgt die spielerkoordinaten auf die x und y variablen der map und malt unsere figur move = 1 moving=True EndIf EndIf ;(analog für die anderen Richtungen) ;ANIMATIONSLOGIK If timer <MilliSecs() ;alle 100 ms wird weiteranimiert timer = MilliSecs() +100 ;timer resetten frame = frame +1 ;frame weiterzählen frame = frame Mod 3 ;der modulo sorgt dafür das frame zwischen 0 und 3 bleibt EndIf If moving = False frame = 0 ;und wenn nix gedrückt wird wird auch nichts animiert. EndIf ;BEWEGUNG If movetimer < MilliSecs() Then movetimer = MilliSecs() +25 ;Bewegung findet nur maximal alle 25 ms statt, sprich: maximal 40 Pixel/Sekunde If moving = True Then ;und nur wenn auch noch bewegt werden soll Select richtung Case HOCH If y >0 Then y = y-1 Case RUNTER If y < GraphicsHeight()-32 Then y = y +1 Case LINKS If x >0 Then x = x-1 Case RECHTS If x < GraphicsWidth()-32 Then x = x +1 End Select EndIf EndIf ;OUTPUT ;wenn move = 1 dann übertrage x auf px*32 If move = 1 Then x = px * 32: y = py * 32:DrawImage Magier,x-scrollx,y-scrolly,richtung+frame: Delay 100 DrawItem() DrawPoints() Flip Forever FreeImage tileset FreeImage Magier End ;Types für die Items Global anzahl=0 Global info.item Type item Field tx Field ty End Type ; Die Tüten malen Function DrawItem() For info.item = Each item ; Alle Items abfragen DrawImage Item, info\tx*32-px-scrollx, info\ty*32-py-scrolly ;Items malen Next End Function Function DrawPoints() ;Zeichnet den Punktestand und die Leben auf den Bildschirm Text 10 ,10, "Lives :" Text 80 ,10, Lives Text 300,10, "Score :" Text 380,10, score End Function Function SetupLevel() ;Itemdaten lesen Restore item_level1 Read anzahl ;der erste Wert in der Dataschleife gibt die Anzahl der Items an For i = 1 To anzahl ;Zählt durch die einzelnen Einträge info.item = New item ;Neues Item erstellen Read x, y ;Koordinaten lesen info\tx = x ;x und y Werte an dem Typ übergeben info\ty = y Next End Function ; Hier sind die Daten abgelegt, die zur Positionierung der Items notwendig sind .item_level1 Data 18 Data 2,3 ;oben links Data 3,3 Data 4,3 Data 5,3 Data 12,3 ;oben rechts Data 13,3 Data 14,3 Data 15,3 Data 16,3 Data 2,10 ;unten links Data 3,10 Data 4,10 Data 5,10 Data 12,10 ;unten rechts Data 13,10 Data 14,10 Data 15,10 Data 16,10 Die Items werden dort angezeigt, wo sie sollen. Laufen aber weg. Ich muss wohl irgendwie die scroll-variable mitberechnen, aber wie man oben sieht, habe ich das schon versucht. Könnte mir da bitte jemand helfen? Ich weiß dass der Code ziemlich lang is... Aber wenn ich ihn verkürze fehlt wieder was was man zum verstehen braucht. Danke schonmal! |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaube du musst nur:
Code: [AUSKLAPPEN] DrawImage Item, info\tx*32-px-scrollx, info\ty*32-py-scrolly
zu [codeDrawImage Item, info\tx*32-scrollx, info\ty*32-scrolly][/code] ändern |
||
between angels and insects |
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die Antwort.
Es funzt leider auch nicht. Ich habe es mit Dim anstatt mit Types probiert, dann geht es... |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sereyanne, vielleicht hast du eine etwas seltsame Blitzversion, aber als ich dir ein beispielcode gepostet habe hättest du von dort ja eigentlich sehen müssen was man für Scrolling machen muss, und du hast es scheinbar nicht begriffen.
Ich hab zwar dort PixelToPixel-Scrolling gemacht, aber ich denk der Unterschied ist kaum relevant. Schau es dir nochmals an und überlege, was du falsch machst... |
||
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab ich mir schon angesehen. mach ich aber gleich nochmal. danke jedenfalls! | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group