Raum bei 2D-spielen
-
- Beiträge: 105
- Registriert: 28.04.2006 22:19
Raum bei 2D-spielen
Hi Leute!
ich wollte mal ein kleines 2D-Spiel programmieren bei welchem man aus der vogelperspektive guckt und seinen charakter nach oben, unten, rechts und links laufen lassen kann.
Das Problem ist dass das ganze Spielfeld natürlich riesig sein soll.
Mein Problem ist jetzt das der charakter immer in der mitte bleiben soll und dass sich einfach nur das feld verschiebt...
Wie macht man sowas?
kennt jemand ein gutes Tutorial dafür?
ich wollte mal ein kleines 2D-Spiel programmieren bei welchem man aus der vogelperspektive guckt und seinen charakter nach oben, unten, rechts und links laufen lassen kann.
Das Problem ist dass das ganze Spielfeld natürlich riesig sein soll.
Mein Problem ist jetzt das der charakter immer in der mitte bleiben soll und dass sich einfach nur das feld verschiebt...
Wie macht man sowas?
kennt jemand ein gutes Tutorial dafür?
-
- Beiträge: 105
- Registriert: 28.04.2006 22:19
na wenn die Spielfigur x = x + 10 machen würde, dann muss doch das feld einfach nur x = x - 10 machen und die Figur bleibt bei einer KonstantenRockmaster hat geschrieben:Nene das Feld soll sich nicht drehen!
Die X und Y-werte der Spielfigur sollen auch immer gleich bleiben.
Nur wenn man z.B. nach rechts geht soll sich das Spielfeld um eine festgelegte weite nach links verschieben...
Auf diese Weise soll halt die Spielfigur sich durch die Welt bewegen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
z.b. so
Code: Alles auswählen
;...
If KeyboardReleased(#PB_Key_Right)
mapOffsetX-32
EndIf
;...
For k=0 To mapWidth
For i=0 To mapHeight
DisplaySprite( map(k,i), mapOffsetX+i*32, mapOffsetY+k*32)
Next
Next
;...
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
ICh glaube, Rockmaster meint soetwas wie in diesem Topic:
http://www.purebasic.fr/german/viewtopi ... d&start=20
(http://www.christian-gleinser.de/prog/isodemo.zip von PBZecke)
Oder?
http://www.purebasic.fr/german/viewtopi ... d&start=20
(http://www.christian-gleinser.de/prog/isodemo.zip von PBZecke)
Oder?
-
- Beiträge: 105
- Registriert: 28.04.2006 22:19
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"fllscrn")
CreateSprite(0,64,64)
StartDrawing( SpriteOutput(0) )
Circle(32,32,16,$ff0000)
StopDrawing()
CreateSprite(1,64,64)
StartDrawing( SpriteOutput(1) )
Box(2,2,60,60,$aa3333)
StopDrawing()
CreateSprite(2,64,64)
StartDrawing( SpriteOutput(2) )
Box(2,2,60,60,$aa6666)
StopDrawing()
w=40-1
Dim map.l(w,w)
For i=0 To w
For k=0 To w
map(i,k)=Random(1)+1
Next
Next
Repeat
ExamineKeyboard()
StartDrawing( ScreenOutput() )
;DrawText(100,100, Str(MouseDeltaX())+", "+Str(MouseDeltaY()) )
;Circle(MouseX(),MouseY(),5,$770000)
StopDrawing()
If KeyboardPushed(#PB_Key_Right)
offX-64
EndIf
If KeyboardPushed(#PB_Key_Left)
offX+64
EndIf
If KeyboardPushed(#PB_Key_Up)
offY+64
EndIf
If KeyboardPushed(#PB_Key_Down)
offY-64
EndIf
For i=0 To w
For k=0 To w
DisplaySprite( map(i,k), offX+i*64, offY+k*64)
Next
Next
DisplayTransparentSprite(0, 64*7,64*6)
FlipBuffers()
ClearScreen(0)
Delay(30)
Until KeyboardReleased(#PB_Key_Escape)
-
- Beiträge: 105
- Registriert: 28.04.2006 22:19