problem mit fahrzeugsteuerung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Master King of

Betreff: problem mit fahrzeugsteuerung

BeitragDo, März 17, 2005 0:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 1280,768,16,1
SetBuffer BackBuffer()
Global Boden = LoadImage("C:\BodenTextur.bmp");Bodentextur
Global Pointer = LoadImage("C:\Pointer.bmp");Mauszeiger
Global Punkt = LoadImage("C:\Punkt.bmp");einheit
MaskImage Punkt,255,255,255
MaskImage Pointer,255,255,255
Global X = 0;X für landschaft
Global Y = 0;Y für landschaft
Global ZielX = 0;Ziel einer einheit
Global ZielY = 0;Ziel einer einheit
MoveMouse 640,384;Maus zur Mitte

;###########################################################
Type Einheit
Field Speed#
Field XKoordinate%
Field YKoordinate%                 ;Typefeld für einheiten
Field Ausgewaehlt% = 0
Field Zielerreicht% = 1
Field ZielX%
Field ZielY%
End Type
;###########################################################

;################################################################################
Einheit1.Einheit = New Einheit
Einheit1\Speed = 2
Einheit1\XKoordinate = 50                       ;einstellung der ersten einheit
Einheit1\YKoordinate = 50
Einheit1\Ausgewaehlt = 0
;################################################################################



Repeat;##########################       hauptschleife

Cls;löschen

MausX = MouseX() ;Mauskoordinaten überprüfen
MausY = MouseY() ;Mauskoordinaten überprüfen

If MausY <= 0 Then Y = Y + 7;scrollen
If MausY >= 767 Then Y = Y - 7;scrollen
If MausX <= 0 Then X = X + 7;scrollen
If MausX >= 1279 Then X = X - 7;scrollen

For Einheit1.Einheit = Each Einheit;########################################einheit mitscrollen############
If MausY <= 0 Then Einheit1\YKoordinate = Einheit1\YKoordinate + 7
If MausY >= 767 Then Einheit1\YKoordinate = Einheit1\YKoordinate - 7
If MausX <= 0 Then Einheit1\XKoordinate = Einheit1\XKoordinate + 7
If MausX >= 1279 Then Einheit1\XKoordinate = Einheit1\XKoordinate - 7
Next
;##########################################################################################################

If MouseHit(1) Then;###############################überprüfen ob einheit ausgewählt wurde und ziel setzen###################

For Einheit1.Einheit = Each Einheit
If ImagesOverlap(Pointer,MausX,MausY,Punkt,Einheit1\XKoordinate,Einheit1\YKoordinate) Then
Einheit1\Ausgewaehlt = 1
End If
If Einheit1\Ausgewaehlt = 1 Then Einheit1\Zielerreicht = 0
Next

For Einheit1.Einheit = Each Einheit
If Einheit1\Ausgewaehlt = 1 Then
Einheit1\ZielX = MausX
Einheit1\ZielY = MausY
End If
Next

End If

;#################################################einheit bewegen##################################################
For Einheit1.Einheit = Each Einheit

If Einheit1\Zielerreicht = 0 Then
If Einheit1\XKoordinate < Einheit1\ZielX Then
Einheit1\XKoordinate = Einheit1\XKoordinate + Einheit1\Speed
End If
If Einheit1\XKoordinate > Einheit1\ZielX Then
Einheit1\XKoordinate = Einheit1\XKoordinate - Einheit1\Speed
End If
If Einheit1\YKoordinate < Einheit1\ZielY Then
Einheit1\YKoordinate = Einheit1\YKoordinate + Einheit1\Speed
End If
If Einheit1\YKoordinate > Einheit1\ZielY Then
Einheit1\YKoordinate = Einheit1\YKoordinate - Einheit1\Speed
End If
End If

If Einheit1\XKoordinate = Einheit1\ZielX And Einheit1\YKoordinate = Einheit1\ZielY Then Einheit1\Zielerreicht = 1

Next
;##################################################################################################################

;#######################################################Boden zeichnen###########################
DrawBlock Boden,X,Y
DrawBlock Boden,X+476,Y
DrawBlock Boden,X+476+476,Y
DrawBlock Boden,X+476+476+476,Y
DrawBlock Boden,X,Y+409
DrawBlock Boden,X+476,Y+409
DrawBlock Boden,X+476+476,Y+409
DrawBlock Boden,X+476+476+476,Y+409
DrawBlock Boden,X,Y+409+409
DrawBlock Boden,X+476,Y+409+409
DrawBlock Boden,X+476+476,Y+409+409
DrawBlock Boden,X+476+476+476,Y+409+409
;################################################################################################

;###################################################Einheit zeichnen##################
For Einheit1.Einheit = Each Einheit
DrawImage Punkt,Einheit1\XKoordinate,Einheit1\YKoordinate
Next
;#####################################################################################

DrawImage Pointer,MausX,MausY;mauszeiger zeichnen

Flip;flip halt

Until KeyHit(1)
;hauptschleife beenden

ich habe euch den code einfach mal ganz gegeben, damit ihr das einfach mal ausprobieren könnt es fehlen aber noch 3 bilder: bodentextur,punkt,mauszeiger
der punkt muss nicht grösser sein als 39*32
und die textur muss 476*409 gross sein
zeiger ist ja eure sache
vielen dank schonmal im voraus für eure mühen

also das problem wie ihr dann vielleicht bemerken werdet ist, dass wenn man den punkt zu einem bestimmten punkt hinschickt und dann dabei scrollt der punkt nicht aufhört zu fahren.
 

getlose

BeitragDo, März 17, 2005 1:05
Antworten mit Zitat
Benutzer-Profile anzeigen
dir wird niemand helfen, weil :
1. code, aber ohne media (grafiken)
2. aus deinem "geschriebenen" kann man nicht wirklich
schließen, welches Problem du überhaupt hast.
 

Gerhard

BeitragDo, März 17, 2005 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Vermutung:

Wenn du deine Einheiten um einen (nicht ein Pixel großen) Wert bewegst, wirst du deine Zielkoordinaten einfach nicht genau treffen.

Um zu erkennen, ob du am Ziel bist, müsstest du aber ganz genau die Zielkoordinaten treffen, sonst kommst du nie an.
 

Master King of

BeitragDo, März 17, 2005 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
scrollt man nicht wenn der punkt fährt kommt er ans ziel
scrollt man aber wenn er fährt kommt er nie ans ziel obwohl die zielkoordinaten nicht verändert wurden
 

Master King of

BeitragDo, März 17, 2005 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
jo leude problem jez schon geköst kann ich diesen dingens hier dat theam selber wieder löschen?

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group