Seite 1 von 2
Mitte des Bildschirms??
Verfasst: 30.01.2006 19:32
von Milchshake
Ich hab ein Problem!!Da ich noch ziemlich neu bin,
hab ich in vielen Dingen keine ahnung!
Doch wie geht es,das man z.B in einen Rollenspiel wie Sacred oder so immer in der mitte des bildschirmes is!!Geht das in PureBasic auch??Wenn ja wie??
Verfasst: 30.01.2006 19:44
von Macros
Du musst einfach den Hintergrund Scrollen,
anstatt des Spielers.
Bewegt sich der Spieler nach oben,
bewegt sich stattdessen der Hintergrund nach unten.
Verfasst: 30.01.2006 19:47
von Milchshake
und wie mache ich das am besten??
Verfasst: 30.01.2006 20:04
von Macros
Bei jedem Darstellungsbefehl z.b. DisplaySprite() von den x und y werten eine Variable zb ScrollX ScrollY abziehen (DisplaySprite(?,x-ScrollX,y-ScrollY)
Bei Spielerbewegung die Variable verändern z.b. 1 nach rechts ScrollX + 1
da es ja abgezogen wird.
Ich mach dir mal nen Beispielcode (hast du ne E-Mail ?).
edit: wenn du sie nicht posten willst, kannst du sie ja an mich mailen.
Verfasst: 30.01.2006 20:34
von Milchshake
Ja!!
39alex@gmx.at
Danke!!
Verfasst: 30.01.2006 20:49
von Macros
Hier der Code (ist auch als E-Mail mit Beispielbild bei dir im Postfach):
edit: der Computer ist beim erstellen abgestürzt
Code: Alles auswählen
;initialisieren
InitSprite()
InitKeyboard()
If OpenScreen(1024,768,32,"test")=0
End
EndIf
CreateSprite(2,10,10)
StartDrawing(SpriteOutput(2))
Box(0,0,10,10,RGB(0,255,0))
StopDrawing()
If LoadSprite(1,"C:\test.bmp")=0
End
EndIf
;Programmschleife
Repeat
FlipBuffers()
ExamineKeyboard()
;Tasten prüfen
If KeyboardPushed(#PB_Key_Up)
posy+10
EndIf
If KeyboardPushed(#PB_Key_Down)
posy-10
EndIf
If KeyboardPushed(#PB_Key_Left)
posx+10
EndIf
If KeyboardPushed(#PB_Key_Right)
posx-10
EndIf
; OOO Zeichne 9 Sprites, so dass der Spieler nie ein Ende sieht.
; OOO
; OOO
For x=-1024 To 1024 Step 1024
For y=-768 To 768 Step 768
DisplaySprite(1,x+posx,y+posy)
Next
Next
;wenn das Sprite seine Größe verschoben wurde, es wieder zurücksetzen (der Spieler merkt nichts)
If posx>1024
posx-1024
EndIf
If posx<-1024
posx+1024
EndIf
If posy<-768
posy+768
EndIf
If posy>768
posy-768
EndIf
;Spieler
DisplaySprite(2,1024/2,768/2)
Until KeyboardPushed(#PB_Key_Escape)
End
Verfasst: 31.01.2006 03:49
von STARGÅTE
gut das wäre die einfache Variante.
Aber wenn du dich drehen willst wird es schwerer weil du ja auch die Umgebung anpassen musst wenn du willst kann ich dir auch ein Beispiel schicken wo das sehr gut zu sehen ist

Verfasst: 31.01.2006 10:39
von nco2k
@STARGÅTE
poste es doch einfach hier, dann haben alle was davon.
c ya,
nco2k
Verfasst: 31.01.2006 11:43
von Konne
Oder man lässt die Figur im GTA2 Style drehen.
Verfasst: 31.01.2006 13:38
von Macros
Bei dem am Anfang genannten Beispiel Sacred,
dreht sich auch nur die Figur und nicht die Ansicht.