Hab Problem, weiss nur nicht wo er liegt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

emde

Betreff: Hab Problem, weiss nur nicht wo er liegt

BeitragDo, Jan 03, 2008 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Community,
ich habe ein kleines problem mit meinem code, wo er genau liegt kann ich nicht sagen. Also der code soll folgendes machen:
10 Punkten erstellen, sie willkürlich irgendwo hinstellen. Dann sollen sie auf knopfdruck(1) alle auf die Y koordinaten 240 gehen. Das problem ist nun, dass die Punkte nicht auf 240 Y gehen. Hoffe ihr könnt mir helfen.

Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()


Type yrr
   Field x#
   Field y#
   Field zusammen#
End Type

Global yrr.yrr

For i=1 To 10
yrr=New yrr
yrr\x=Rnd(0,640)   
yrr\y=Rnd(0,480)
yrr\zusammen=0
Next

Repeat
Cls

For yrr=Each yrr
Plot yrr\x,yrr\y
Next

If KeyHit(2)
   For yrr=Each yrr
   
   If yrr\y>240
   
   Repeat
   yrr\y=yrr\y-1
   Until yrr\y=240
   
   EndIf
   Next   
EndIf

Flip
Until KeyHit(1)


Nette grüße emde
 

Florian

BeitragDo, Jan 03, 2008 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

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


Type yrr
   Field x#
   Field y#
   Field zusammen#
End Type

Global yrr.yrr

For i=1 To 10
 yrr=New yrr
 yrr\x=Rnd(0,640)   
 yrr\y=Rnd(0,480)
 yrr\zusammen=0
Next

Repeat
 Cls

 For yrr=Each yrr
  Plot yrr\x,yrr\y
 Next

 If KeyHit(2) Then
  Bewegung=True
 EndIf

 If Bewegung=True Then
  For yrr=Each yrr
   
  If yrr\y>240 Then     
   yrr\y=yrr\y-1
  ElseIf yrr\y<240 Then 
   yrr\y=yrr\y+1     
  EndIf
  Next   
 EndIf
 Flip
Until KeyHit(1)
 

emde

BeitragDo, Jan 03, 2008 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
So, habe ein neues problem. Ich habe folgendes probiert, die punkte sollen sich nun zum durschnittswert aller x und y werte vom anfang der punkte bewegen, das problem ist nun, das sich die punkte bewegen wenn das rechteck kommt, und dardurch verändern sich natürlich auch die durschnitts werte, nun meine frage wie bekomme ich es hin das sie sich zum durchschnittwert des x und y wertes bewegen?


Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()


Type yrr
   Field x#
   Field y#
   Field zusammen
End Type

Global yrr.yrr
Global xm=640
Global ym=480
Global bewegung
Global bm
Global xd
Global yd
Global d

yrr1create()

Repeat
Cls

   yrr1draw()

   Color 213,223,249
   Rect xm,ym,10,10
   Color 0,0,0

   If KeyHit(2)
      bm=True
   EndIf

   If bm=True
      xm=xm-1
      ym=ym-1
   EndIf

   If xm<640 And ym<480
      bewegung=True
   EndIf

   If KeyHit(3)
      xm=640
      ym=480   
      bewegung=False
      bm=False
   EndIf

   If bm=True
      yrr1connect()
   EndIf
   
   Color 234,234,234
   Text 10,10,xd
   Text 50,10,yd
   Color 0,0,0
   
   
Flip
Until KeyHit(1)

Function yrr1create()

   For i=1 To 10
      yrr=New yrr
      yrr\x=Rnd(0,640)   
      yrr\y=Rnd(0,480)
      yrr\zusammen=0
   Next

End Function

Function yrr1draw()

   For yrr=Each yrr
      Color 255,0,255
      Plot yrr\x,yrr\y
      Color 0,0,0
   Next

End Function

Function yrr1connect()

If bewegung=True
   d=True
EndIf

If d=True
   For yrr=Each yrr
   xd=yrr\x+xd
   yd=yrr\y+yd
   Next
EndIf

xd=xd/10
yd=yd/10

If bewegung=True
   For yrr=Each yrr
   If yrr\x>xd
   yrr\x=yrr\x-1
   Else
   yrr\x=yrr\x+1
   EndIf
   If yrr\y<yd
   yrr\y=yrr\y+1
   yrr\y=yrr\y-1
   EndIf
   Next
EndIf
   
End Function

 




 

emde

BeitragSo, Jan 06, 2008 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
keine eine idee? Question Idea

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 06, 2008 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Speichere den durchschnittwert in einer Var und benutzte dieser anstatt immer neu zu berechnen
[BB2D | BB3D | BB+]
 

emde

BeitragSo, Jan 06, 2008 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Das wäre natürlich eine idee, aber ich möchte den wert immer einmal berechnen bevor sie zusammen finden, denn später sollen es auch andere startpunkte für die punkte geben. Oder habe ich dich falsch verstanden.

emde

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 06, 2008 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sehe gerade das die Variblen xd un yd global sind... machst du auch immer einen reset der Variablen bevor du den neuen Durchschnitt ausrechnest?

Und dann könnte es noch Probleme geben mit den x# und y#, da es evt nie = xd bzw. yd sein kann und diese deshalb nicht still stehen bleiben auf dem durchschnittspunkt.
[BB2D | BB3D | BB+]
 

emde

BeitragSo, Jan 06, 2008 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Das verstehe ich jetzt nicht ganz, könntest du mir das bitte etwas genauer erklären? Danke.

emde

PS: Bin anfänger

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jan 06, 2008 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function yrr1connect()

If bewegung=True
   d=True
EndIf
xd=0;          die Variablen wieder auf 0 setzten da diese    <<<<<<<<<<<<<<<<<<
yd=0;          beim 2.Durchlauf noch den Durchschnittswert haben  <<<<<<<<<<<<<
;                  und das dann zu falschen ergebnissen führt  <<<<<<<<<<<<<<<<<<
If d=True
   For yrr=Each yrr
   xd=yrr\x+xd
   yd=yrr\y+yd
   Next
EndIf

xd=xd/10
yd=yd/10
[BB2D | BB3D | BB+]
 

emde

BeitragSo, Jan 06, 2008 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank, nun läuft es so wie ich es mir vorstelle.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group