zufällige bewegung

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

andre

Betreff: zufällige bewegung

BeitragDi, Jan 25, 2011 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
hey leute ich habe ein riesen problem ich möchte ein spiel erstellen bin auch schon ziehmlich weit aber es gibt noch ein problem an der y achse meines spiels sollten sich eigentlich gegner zufälligbewegen dies funktioniert zwar ist aber nicht ausreichend laut meiner lehrerin.
so funktioniert meine bisherige bewegung:

Code: [AUSKLAPPEN]
SeedRnd MilliSecs()


SeedRnd MilliSecs()
richtung1=Rand(0,102)
bewegungszahl1=Rand(0,35)
grosenzahlrichtungsbestimmung1=51


If richtung1<grosenzahlrichtungsbestimmung1 Then rect1y=rect1y+bewegungszahl1


If richtung1>grosenzahlrichtungsbestimmung1 Then rect1y=rect1y-bewegungszahl1

If rect1y>800 Then rect1y=rect1y-bewegungszahl1
If rect1y<200


und ich möchte wissen wie sich dieese mit einer zielkoordinate bewegen kann.
in etwa so:

Code: [AUSKLAPPEN]
x=rand(0,1000)
if rect1y<x then
rect1y=rect1y+5
if rect1y=x then
new x=rand(0,1000)
endif

if rect1y>x then
rect1y=rect1y-5
if rect1y=x then
new x=rand(0,1000)
endif




dies funktioniert leider nicht bitte hilft mir weiter
MFG Andre

ZaP

BeitragDi, Jan 25, 2011 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Zwei Sachen vorweg: Bitte benutze (mindestens) Satzzeichen, es ist äußerst schwer, deinen Satz auseinander zu nehmen und zu verstehen, niemand wird sich für dich anstrengen, wenn Du dich nicht etwas anstrengst.
Dein Problem ist sehr schwammig formuliert, kannst Du vielleicht genauer sagen, was Du eigentlich haben möchtest?

Ich nehme an, Du möchtest bestimmten Entitäten deines Spiels zufällige Koordinaten zuweisen, deren Position diese annehmen sollen?
Starfare: Worklog, Website (download)
 

andre

BeitragDi, Jan 25, 2011 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ja dies ist korrekt und ich endschuldige mich für meine ausdrucksweise.
Und ich bin für jede hilfe dankbar

Xeres

Moderator

BeitragDi, Jan 25, 2011 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte achte etwas auf Rechtschreibung und Interpunktion, ohne wird Niemand verstehen was du willst und dir entsprechend nicht helfen können.

new ist ein Schlüsselwort in Verbindung mit Types, das brauchst du da sicher nicht.
- generiere eine Zielkoordinate
- überprüfe die Koordinaten des Objekts und bewege das Objekt in Richtung der Zielkoordinaten.
- wenn das Ziel erreicht ist, generiere neue Zielkoordinate.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

andre

BeitragDi, Jan 25, 2011 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
danke das problem ist aber das mein spiel mit einer while-schleife funktioniert und die zufällige zahl zu schnell neu ermittelt wird.
Dadurch bewegt sich das objekt nur hin und her Sad
weiß vlt jemand wie man eine zufallszahl ermittlung in einer while-schleife verzögert bis das objekt die alten koordinaten erreicht hat?
mfg andre Smile

Xeres

Moderator

BeitragDi, Jan 25, 2011 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Stichwort: IF Bedingung & Variablen.
Generiere neue Koordinaten erst dann, wenn das ziel erreicht wurde oder eine andere Bedingung eintrifft: Abstand mit dem Satz des Pythagoras ermitteln oder Zeit mittels Millisecs berechnen...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

andre

BeitragDi, Jan 25, 2011 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für den Tipp,
aber genau verstehe ich das jetzt nicht kannst du mir vlt. ein beispiel geben?

Xeres

Moderator

BeitragDi, Jan 25, 2011 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Bittesehr:
BlitzBasic: [AUSKLAPPEN]
If Distanz(objx, objy, zielx, ziely) < MinimumDistanz Then
;* Der Abstand ist so gering, das Ziel ist erreicht
;* Neuen Zielpunkt generieren:
zielx = Rand( ... )
ziely = Rand( ... )
Else
;* Der Abstand zum ziel ist noch größer, objekt
;* näher heran bewegen...

;* Mit etwas Vektorrechnung ginge es noch besser,
;* aber so ginge es auch für den Anfang:
If objx < zielx Then
; objx entsprechend ändern
Else
; objx entsprechend ändern
EndIf

;* Gleiches wie der vorherige Block, nur für Y
If objy < ziely Then
; ...
Else
; ...
EndIf
EndIf
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

andre

BeitragDi, Jan 25, 2011 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke ich werde es ausprobieren Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group