Spieler bewegen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

haschhase

Betreff: Spieler bewegen

BeitragSa, Jan 17, 2004 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
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...

D2006

Administrator

BeitragSa, Jan 17, 2004 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

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

BeitragSo, Jan 18, 2004 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
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...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 18, 2004 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Jan 18, 2004 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
jo danke, aber wie mach ich das mit sin und cos?
nei nei so kann das nicht weitergehen...
 

haschhase

BeitragSo, Jan 18, 2004 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
sry für doppelpost
aber kann mir das einer schnell sagen, brauch es dringend!
nei nei so kann das nicht weitergehen...

Kryan

BeitragSo, Jan 18, 2004 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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!

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 18, 2004 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Exclamation
evt bild noch mit midhandle anpassen
und Bild passend drehen, probiers aus
[BB2D | BB3D | BB+]
 

haschhase

BeitragMo, Jan 19, 2004 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
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


user posted image
nei nei so kann das nicht weitergehen...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Jan 20, 2004 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
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+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group