bildschirmkoordinaten verschieben
Übersicht

MisterKnisterBetreff: bildschirmkoordinaten verschieben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
ich möchte, dass sich der bildschirm verschiebt, wenn ich mich auch bewege, also wenn ich nach rechts gehe, folgt mir der bildschirm und ich bleibe(für den betrachter) an der selben stelle ich weis, dass das etwas mit origin und viewport zu tun hat, habe aber nicht verstanden, wie man diese befehle benutzt, ich habe mir ausserdem das jump&run tut auf der robsite angesehen, fand es aber nicht so toll, immer die tiles mitbewegen zu müssen. hier also meine frage: kann ich den bildschirm und den spieler verschieben, ohne die tiles bewegen zu müssen? und wenn ja, wie? danke schonmal im voraus. |
||
feiderehemals "Decelion" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ohne die tiles zu verschieben: origin.
Dabei musst du aber darauf achten, nicht nur den Player sondern auch das HUD etc an die neuen Koordinaten zu setzen. Ansonten ist die Verschiebung der Tiles die beste Möglichkeit, und auch die einzige, die sich mir noch aufzeigt... mfg Dece |
||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du meinst in 2d?
also wie ich das verstanden habe soll der spieler immer in der mitte des bildschrims erscheinen richtig? nun in dem falle einfach den player mittig des bildschirm zeichnen und von der position aus den mapursprung errechnen udn von da anfangen zu zeichnen.. ich hoffe ich hab mir irgendwie ausgedrückt... |
||
MisterKnister |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja dass das mit origin geht wusste ich auch schon ich hab nur nicht verstanden wie genaus. | ||
feiderehemals "Decelion" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
http://t1246.greatnet.de/help/Origin
Wird hier ziemlich genau erklärt. Versuche erstmal, in einem neuen Dokument mit dem Befehl herumzuspielen, dann wirst du seine funktionsweise schnell verstehen. mfg Dece |
||
MisterKnister |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja das hab ich mir auch durchgelesen und hier so eingesetzt um es zu verstehen
Code: [AUSKLAPPEN] Repeat If KeyDown(2) Then x = x + 1 Origin x,y Rect 1,1,1,1 Rect 50,50,50,50 Until KeyHit(1) nun geht das aber nicht und ich weis nicht warum |
||
Fredko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Man sollte eigentlicher immer Setbuffer Backbuffer() mit Flip und Cls benutzen
Code: [AUSKLAPPEN] Graphics 320,240 SetBuffer BackBuffer() Repeat Cls If KeyDown(2) Then x = x + 1 Origin x,y Rect 1,1,1,1 Rect 50,50,50,50 Flip Until KeyHit(1) Dann klappts auch ![]() |
||
! |
MisterKnister |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hups das is mir jetz aber peinlich setbuffer backbuffer() war zwar da, aber ich hab vergessen cls und flip einzustzen(wie schon so oft) ![]() danke fredkostudio jetzt habe ich aber das problem, dass sich, wenn ich mich bewege, alles bewegt, wisst ihr warum? hier der code Code: [AUSKLAPPEN] Repeat WaitTimer timer Cls TileImage hintergrund,0,0 kartemalen spielerbewegen spielermalen Origin spielerx, spielery Flip Until KeyHit(1) Function spielerbewegen();----------------| If KeyDown(links) Then ;| If spielerbild = held1 Then spielerbild = held2 ;| ;| laufcounter = laufcounter - 1;--------| If laufcounter = 0 Then;-----| laufcounter = 8 ;------------| frmspieler = frmspieler + 1;-| EndIf;-----------------------| If frmspieler >5 Then frmspieler = 0 ;- If map((spielerx - 41) /32,(spielery) /32)=0 Then ;- If map((spielerx - 41) /32,(spielery + 40) /32)=0 Then ;- spielerx = spielerx - 3 ;- EndIf; ---- ---- -- EndIf; ---- ---- -- EndIf If KeyDown(rechts) Then;--------------| ;| If spielerbild = held2 Then spielerbild = held1 ;| ;| laufcounter = laufcounter - 1;--------| If laufcounter = 0 Then;-----| laufcounter = 8 ;------------| frmspieler = frmspieler + 1;-| EndIf;-----------------------| If frmspieler >5 Then frmspieler = 0 If map((spielerx + 40) /32,(spielery ) /32)=0 Then If map((spielerx + 40) /32,(spielery + 40) /32)=0 Then spielerx = spielerx + 3 EndIf EndIf EndIf If map((spielerx) /40,(spielery + 40) /40)=0 Then spielery = spielery + 4 EndIf End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group