Gegner hin und her laufen lassen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

bruce185

Betreff: Gegner hin und her laufen lassen

BeitragSo, Jul 31, 2005 4:24
Antworten mit Zitat
Benutzer-Profile anzeigen
also, ich möchte einen gegner in meiner tilemap laufen lassen, ich habe das so versucht:

BlitzBasic: [AUSKLAPPEN]

If gx = 0 Then gx = gx + 1 ;gx Gegner X Position

If gx = 10 Then gx = gx - 1 ;gx Gegner X Position


also, meine Bausteine von der Tile map ist 32 pixel breit und 32 pixel hoch
und wenn es 1 dazu gezählt wird, dann bewegt der gegner sich 32 pixel rechts, und wenn der gegner 320 pixel rechts gelaufen ist, dann soll der gegner sich wieder nach links bewegen, 32 * 10 sind ja 320 pixel, wisst ihr zufälligerweise wie das funktioniert, mit der if anweisung geht das nicht, weil wenn der gegner 32 pixel weg läuft, dann kann die if anweisung ja garnicht mehr ausgeführt werden, weil der gegner von der Position 0 weg ist, ich habe das mit der for next schleife probiert, es ging aber der gegner hat sich dann zimlich schnell bewegt, nun bitte ich um eure hilfe, ich danke euch schonmal Crying or Very sad

bruce185

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Jul 31, 2005 4:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht auch mit der IF-Anweisung, z.B. so...


richtung=1
position=0

While Not KeyHit(1)
position=position+richtung
if position=>320 then richtung=-1
if position=<0 then richtung=1
Wend

bruce185

BeitragSo, Jul 31, 2005 5:59
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für dein tip, aber es funktioniert nicht, der gegner rührt sich kein millimeter, gibt es vieleicht auch eine andere möglichkeit das der gegner sich bewegt, ich danke dir schonmal Smile

bruce185

SoNenTyp

BeitragSo, Jul 31, 2005 7:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Du muss ja auch noh das

If richtung Then
gx = gx + 1
else
gx= gx-1
end if

eibauen.
Gruss Der Typ.

User posted image

bruce185

BeitragSo, Jul 31, 2005 7:29
Antworten mit Zitat
Benutzer-Profile anzeigen
das hab ich doch gemacht, der gegner bewegt sich nur nach rechts, aber nicht nach links, ich habe schon viele möglichkeiten probiert, aber es will einfach nicht funktionieren, hier im Forum habe ich auch schon nach gekuckt über gegner, aber nichs passendes gefunden, kann ich das auch mit einer Schleifendurchlauf machen, das es unendlich durchläuft, oder geht das nicht, ich danke euch schonmal Wink

bruce185

skey-z

BeitragSo, Jul 31, 2005 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
also wie es mir scheint, hast du nicht das buch von Rene, oder? dort ist so ein beispiel drin, wenn du es nicht hast, schreib mir mal ne pn.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Horst der Biber

BeitragSo, Jul 31, 2005 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
morgen!

versuch das ma
BlitzBasic: [AUSKLAPPEN]

wechsel=1

gx=gx+wechsel

If gx = 0 Then wechsel=1 ;gx Gegner X Position

If gx = 10 Then wechsel=-1 ;gx Gegner X Position

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Jul 31, 2005 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
@bruce185

Hey bruce, daß hast du eben nicht in deinem Beispiel gemacht. Du hast folgendes geschrieben...

If gx = 0 Then gx = gx + 1 ;gx Gegner X Position
If gx = 10 Then gx = gx - 1 ;gx Gegner X Position

In den Kommentarzeilen steht (gx Gegner X Position). Du fragst ob gx kleiner als 0 dann gx=gx+1. Das soviel bedeutet, daß er sich zwar einen Pixel nach rechts bewegt aber dann nie mehr von einer der beiden Abfragen beeinflusst wird. Was du brauchst ist eine zusätzliche Variable die die Geschwindigkeit oder Richtung angiebt. Die Position wird von der Geschwinsigkeit/Richtung beeinflusst. Die RICHTUNG ÄNDERT sich nachdem die POSITION abgefragt wurde. Sollte doch klar sein.

Hier mal ein funzenden Beispielcode...
Code: [AUSKLAPPEN]

Graphics 640,480,0,2
SetBuffer BackBuffer()

xp=0
xg=1


While Not KeyHit(1)
 If xp=>100 Then xg=-1
 If xp<=0 Then xg=1
 xp=xp+xg

 Rect xp,0,20,20,1

 Flip
 Cls
Wend
End

bruce185

BeitragSo, Jul 31, 2005 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, "Horst der Biber", deine if anweisung funktioniert hervorragend, ich bin dir sehr dankbar für die hilfe Laughing

bruce185
 

NicroS

Betreff: @hectic

BeitragMo, Aug 01, 2005 1:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich komme nicht dahinter, wie ich das Quadrat von oben nach unten fallen lassen kann. Bitte um Tipps

hectic

Sieger des IS Talentwettbewerb 2006

Betreff: Re: @hectic

BeitragMo, Aug 01, 2005 4:57
Antworten mit Zitat
Benutzer-Profile anzeigen
NicroS hat Folgendes geschrieben:
Ich komme nicht dahinter, wie ich das Quadrat von oben nach unten fallen lassen kann. Bitte um Tipps


Hi Nicros,
meinst du das so?..
Code: [AUSKLAPPEN]

Graphics 640,480,0,2
SetBuffer BackBuffer()

SeedRnd MilliSecs()

xp#=80
yp#=80
xg#=Rnd(10,20)
yg#=Rnd(-10,10)


While Not KeyHit(1)

If xp<=0 Or xp=>620 Then xp=xp-xg : xg=-xg/1.2 : yg=yg/1.02   ;Letzten beiden sind Aufschlagswiederstand
If yp<=0 Or yp=>460 Then yp=yp-yg : yg=-yg/1.2 : xg=xg/1.02   ;Letzten beiden sind Aufschlagswiederstand

yg=yg+0.2   ;Gravitation
xg=xg/1.002   ;Luftwiederstand
yg=yg/1.002   ;Luftwiederstand

xp=xp+xg
yp=yp+yg

Oval xp,yp,20,20,1

Flip
Cls
Wend
End

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group