Spieler bewegen
Übersicht

haschhaseBetreff: Spieler bewegen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo leute, wollte fragen, wie ich machen kann das ich einen spieler vorwärts, rechts, links und nach hinten bewegen kann, aber nur wenn ich recht sund links klick soll er den winkel drehen, bei geradeaus, soll er forwärts laufen
Code: [AUSKLAPPEN] Graphics 800,600,16
SetBuffer BackBuffer() Dim medic( 359 ) TFormFilter 0 For Winkel = 0 To 359 medic( winkel ) = LoadImage("medic.png") RotateImage medic( winkel ), winkel MaskImage medic( winkel ), 255, 255, 255 Next Global x#, y# Global geschwindigkeit# = 1 x = 800 / 2 y = 600 / 2 winkel = 0 While Not KeyHit ( 1 ) If ( KeyDown( 203 ) ) Then winkel = winkel - 1 If ( KeyDown( 205 ) ) Then winkel = winkel + 1 If ( winkel > 359 ) Then winkel = 0 If ( winkel < 0 ) Then winkel = 359 If KeyDown ( 200 ) Then x = x + Cos( winkel ) * geschwindigkeit y = y - Sin( winkel ) * geschwindigkeit EndIf DrawImage medic( winkel ), 250, 200 Flip Cls Wend End das mit dem drehen hab ich, nur das geraudeauslaufen, komm ich net weiter |
||
nei nei so kann das nicht weitergehen... |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] DrawImage medic(winkel),250,200 Damit setzt er das Bild immer an die Position 250;200. Er soll es doch aber dorthin setzen, wo x und y ist. Den Rest bekommst du allein hin ![]() noch ein kleiner Tipp: mach nicht 360 Bilder. das ist viel zu speicherintensiv. Wenn du aller 5° Bilder machst (72) reicht das völlig. Man kann sogar noch weniger nehmen. |
||
haschhase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo, danke bis jetzt, aber ich kann nur hoch runter laufen und links rechts drehen. jetzt wäre es schön, wenn ich in die richtung laufen würde, in welche der spieler zeigt
das ist code bis jetzt Code: [AUSKLAPPEN] Dim medic( 359 ) TFormFilter 0 For Winkel = 0 To 359 medic( winkel ) = LoadImage("medic.png") RotateImage medic( winkel ), winkel MaskImage medic( winkel ), 255, 255, 255 Next Global x#, y# Global geschwindigkeit# = 1 x = 800 / 2 y = 600 / 2 winkel = 0 While Not KeyHit ( 1 ) If ( KeyDown( 203 ) ) Then winkel = winkel - 5 If ( KeyDown( 205 ) ) Then winkel = winkel + 5 If ( KeyDown( 200 ) ) Then y = y -1 If ( KeyDown( 208 ) ) Then y = y +1 If ( winkel > 359 ) Then winkel = 0 If ( winkel < 0 ) Then winkel = 359 DrawImage medic( winkel ), x, y Flip Cls Wend End |
||
nei nei so kann das nicht weitergehen... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
die Bewegung in alle Richtungen lassen sich mit sin und cos berechnen dann habe ich noch einen kleinen Bug gefunden der zwar nicht besonders auffällt aber.... Code: [AUSKLAPPEN] If ( winkel > 359 ) Then winkel = 0
If ( winkel < 0 ) Then winkel = 359 ;dies ist genauer If ( winkel > 359 ) Then winkel = winkel -360 If ( winkel < 0 ) Then winkel = winkel + 360 |
||
[BB2D | BB3D | BB+]
|
haschhase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo danke, aber wie mach ich das mit sin und cos? | ||
nei nei so kann das nicht weitergehen... |
haschhase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sry für doppelpost
aber kann mir das einer schnell sagen, brauch es dringend! |
||
nei nei so kann das nicht weitergehen... |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
If ( KeyDown( 200 ) ) Then
x=x+Cos(Winkel)* Speed y=y+Sin(Winkel)* Speed End If If ( KeyDown( 208 ) ) Then x=x+Cos(Winkel)* Speed y=y+Sin(Winkel)* Speed End If vorher muss natürlich folgendes gemacht werden: Const Speed=1 ;oder was anderes! |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] While Not KeyHit ( 1 )
If ( KeyDown( 203 ) ) Then winkel = winkel - 5 If ( KeyDown( 205 ) ) Then winkel = winkel + 5 If ( KeyDown( 200 ) ) Then ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< x= x + Cos(winkel)*3 ; 3 = speed y = y + Sin(winkel )*3 EndIf If ( KeyDown( 208 ) ) Then ;<<<<<<<<<<<<<<<<<<<<<<<<<<<< If ( KeyDown( 208 ) ) Then x= x - Cos(winkel)*3 y = y- Sin(winkel )*3 EndIf If ( winkel > 359 ) Then winkel = winkel -360 If ( winkel < 0 ) Then winkel = winkel + 360 Habe die tasten geändert sollte gehen ![]() evt bild noch mit midhandle anpassen und Bild passend drehen, probiers aus |
||
[BB2D | BB3D | BB+]
|
haschhase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo danke geht, nur noch 2 fragen:
1wie kann ich machen das die camera auserhalb des bildschires folgt, also ein großes level machen 2. unten hab ich ein bild attached das einen fehler zeigt, ka wo der herrkommt einfach wenn ich schräg lauf ![]() |
||
nei nei so kann das nicht weitergehen... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
zu 1
muste mit einer Tile Engine arbeitenwenn es das ist was ich denke zu 2 vesuch das mal so zu laden, dann sollte es gehen Code: [AUSKLAPPEN] medic(0) = LoadImage("medic.png")
MaskImage medic(0),255,255,255 For Winkel = 1 To 359 medic( winkel )= CopyImage ( medic(0) ) RotateImage medic( winkel), winkel MaskImage medic( winkel),255,255,255 Next liegt wohl daran das Blitz das rotierte Bild mit schwarz auffüllt |
||
[BB2D | BB3D | BB+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group