Seite 1 von 1

Mir war langweilig

Verfasst: 17.03.2005 16:28
von Lukas-P

Code: Alles auswählen

Structure punkt
  x.f
  y.f
  movey.f
  movex.f
  altx.f
  alty.f
EndStructure
NewList punkt.punkt()

InitSprite()
InitMouse()
InitKeyboard()

OpenScreen(640,480,32,"test")

DefType.f y

Repeat

  ClearScreen(0,0,0)
  
  StartDrawing(ScreenOutput())
  
  ForEach punkt()
    punkt()\altx=punkt()\x
    punkt()\alty=punkt()\y
    punkt()\y=punkt()\y+punkt()\movey
    punkt()\x=punkt()\x+punkt()\movex
    punkt()\movey=punkt()\movey+0.1
    If punkt()\y=>480
      punkt()\movey=-5
      beep_(100,1)
    EndIf
    If punkt()\y=<y
      punkt()\movey=-punkt()\movey+5
      beep_(100,1)
    EndIf
    If punkt()\x=<0
      punkt()\movex=5
      punkt()\movey=punkt()\movey-5
      beep_(100,1)
    EndIf
    If punkt()\x=>640
      punkt()\movex=-5
      punkt()\movey=punkt()\movey-5
      beep_(100,1)
    EndIf
    LineXY(punkt()\altx,punkt()\alty,punkt()\x,punkt()\y,RGB($FF,$FF,$0))
        Plot(punkt()\x,punkt()\y,RGB(255,0,0))
  Next punkt()
  

  Box(MouseX(),MouseY(),20,20,RGB(0,255,0))
  LineXY(0,y,768,y,RGB(0,255,0))
  StopDrawing()
  FlipBuffers()
  
  ExamineMouse()
  If MouseY()>y
  If MouseButton(1)
    AddElement(punkt())
    punkt()\x=MouseX()
    punkt()\y=MouseY()
    punkt()\movey=Random(10)-5
    punkt()\movex=Random(10)-5
  EndIf
EndIf
  
  If yspeed=0
    y=y+0.1
  Else
    y=y-0.1
  EndIf
  
  If y=>420
    yspeed=1
  EndIf
  If y=<0
    yspeed=0
  EndIf
  
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Edit by NicTheQuick: Quote-Tags durch Code-Tags ersetzt

Verfasst: 17.03.2005 16:38
von DarkDragon
:? Man sollte langsam merken, was man nicht machen sollte: Ein Plot außerhalb des Drawing Bereichs. Versuchs mit Box und einer größe von 1x1 oder änder das mit dem Plot mal so dass es nichtmehr außerhalb ist.

Verfasst: 17.03.2005 16:48
von MUDHead
Super, freundlich auf den Fehler hingewiesen! :allright:

Verfasst: 18.03.2005 05:52
von THEEX
Man sollte langsam merken, was man nicht machen sollte: Ein Plot außerhalb des Drawing Bereichs. Versuchs mit Box und einer größe von 1x1 oder änder das mit dem Plot mal so dass es nichtmehr außerhalb ist.
Versteh ich jetzt nicht... Also wenn ich den Code seh, dann ist doch Plot innerhalb Start- und StopDrawing (oder wurde das nachträglich geändert?). Bzw könnte man Deinen Text auch so verstehn, das eine Box nicht immerhalb Start- und StopDrawing stehn muß?!!
Oder wie haste das nun gemeint?

Verfasst: 18.03.2005 09:06
von MUDHead
Ich glaube, Lukas hat den Code verändert.

Aber er ist immer noch fehlerhaft.
Muss jetzt aber zur Schule.

Verfasst: 18.03.2005 15:01
von DarkDragon
CSprengel hat geschrieben:
Man sollte langsam merken, was man nicht machen sollte: Ein Plot außerhalb des Drawing Bereichs. Versuchs mit Box und einer größe von 1x1 oder änder das mit dem Plot mal so dass es nichtmehr außerhalb ist.
Versteh ich jetzt nicht... Also wenn ich den Code seh, dann ist doch Plot innerhalb Start- und StopDrawing (oder wurde das nachträglich geändert?). Bzw könnte man Deinen Text auch so verstehn, das eine Box nicht immerhalb Start- und StopDrawing stehn muß?!!
Oder wie haste das nun gemeint?
Außerhalb der DrawingArea(Nicht zwischen 0 und der Bildschirmgröße-1). Innerhalb des Start- StopDrawings ist es ja, aber nicht innerhalb des Bildschirms.

Verfasst: 18.03.2005 15:38
von bluejoke
Um kurz einen funktionierenden Code zu bekommen einfach

Code: Alles auswählen

Plot(punkt()\x,punkt()\y,RGB(255,0,0))
mit

Code: Alles auswählen

If punkt()\x > 0 And punkt()\x < 639 And punkt()\y > 0 And punkt()\y < 439
Plot(punkt()\x,punkt()\y,RGB(255,0,0))
EndIf
ersetzen (Zeile 50)


Ist dann aber nach wie vor nicht perfekt programmiert.
Ist zwar schön, ich finde das Abprallverhalten aber noch nicht gerade perfekt.