Springender Ball
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- Milchshake
- Beiträge: 166
- Registriert: 30.01.2006 17:47
- Wohnort: Zwischen dem Sessel und dem Computer
Ja, ich finde es gut, das du Probierst dein Problem selber zu lösen, aber bei einem größeren Projekt kommst du mit dieser "Technik" nicht weit.
Hier mal ein Code, wie ich es machen würde.
Wenn du noch fragen hast, nur zu^^
Hier mal ein Code, wie ich es machen würde.
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"Spur-Test")
CreateSprite(0,10,10) ;Erstellt einen Neuen Sprite (Spur)
StartDrawing(SpriteOutput(0)) ;Zeichnet auf diesen Neuen Sprite
Box(0,0,10,10,#Red)
StopDrawing()
CreateSprite(1,10,10) ;Erstellt einen Neuen Sprite (Spieler)
StartDrawing(SpriteOutput(1)) ;Zeichnet auf diesen Neuen Sprite
Box(0,0,10,10,#Green)
StopDrawing()
Structure Spur ;Erstellt eine Structur für die spätere Liste
X.w
Y.w
EndStructure
Global NewList Spur.Spur() ; Erstellt eine Liste mit den Eigenschaften der Structur Spur.
; Die Liste heist aber auch Spur
Repeat
FlipBuffers()
ClearScreen(0)
ExamineKeyboard()
;Steuerung
If KeyboardPushed(#PB_Key_Left)
PlayerX - 2
EndIf
If KeyboardPushed(#PB_Key_Right)
PlayerX + 2
EndIf
If KeyboardPushed(#PB_Key_Up)
PlayerY - 2
EndIf
If KeyboardPushed(#PB_Key_Down)
PlayerY + 2
EndIf
If KeyboardPushed(#PB_Key_F12)
ClearList(Spur()) ;Löscht die Liste
EndIf
;Immer, wenn sich der Spieler bewegt, dann wird ein Spur-Kästchen erstellt.
;Weil wenn das Programm die ganze Zeit Kästchen erstellt, kostet das nur Rechenleistung
;Außerdem sieht der Spieler diese nicht
If PlayerX <> Old_PlayerX Or PlayerY <> Old_PlayerY
AddElement(Spur()) ;Der Befehl um eine neues Element der Liste Spur hinzufügen.
Spur()\X = PlayerX ;Definiert die Variable X des zuvor erstellten Listen Elements
Spur()\Y = PlayerY
Old_PlayerX = PlayerX
Old_PLayerY = PlayerY
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
DrawText(0,0,"Anzahl der Objekte Spur: "+Str(CountList(Spur())),#White) ;Zählt die Elemente der Liste Spur
DrawText(0,15,"Für das Löschen aller Objekte F12",#White)
StopDrawing()
;Darstellung
ForEach Spur() ;Für jedes Element der Liste Spur
DisplaySprite(0,Spur()\X,Spur()\Y) ;Mache ein Bild auf dem Screen.
Next ;Und ab zum nächsten Bild
DisplaySprite(1,PlayerX,PlayerY) ; Das ist das Bild des Spielers
Until KeyboardPushed(#PB_Key_Escape)
Hab jetzt PB 4.02
Muhahaha!!!!
Muhahaha!!!!
Sicher ... und nach 1 min Spielzeit kann man nichts mehr erkennen ...PureMax hat geschrieben:aber es hinterlässt eine und mir reichts ^^
vllt bin ich ja ne kleiner noob oder wie auch immer ihr das ausdrücken mögt aber ich machs auf meine art ^^
mfg MAX
entweder, weil die Augen wegen des flakerns angefangen haben zu
tränen ... oder weil das Bild voller springender Bälle ist.
Noob ist die Bezeichnung für "Anfänger" und solche sollten erst recht auf
die Ratschläge der anderen eingehen, wenn sie keine vernünftigen
Gegenargumente haben.

MFG PMV
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
also, ich versteh unter ner spur eher sowas:
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024,768,32,"Spur")
Dim Spur.COORD(33)
#MaxD = 4
PX.f = 512 : PY.f = 384
MX = 512 : MY = 384
MouseLocate(MX,MY)
Repeat
ExamineKeyboard()
ExamineMouse()
MX = MouseX()
MY = MouseY()
ClearScreen($302010)
StartDrawing(ScreenOutput())
For n=0 To 32
Spur(n)\x = Spur(n+1)\x
Spur(n)\y = Spur(n+1)\y
If n%4 = 0
Circle(Spur(n)\x, Spur(n)\y, 7, RGB(0,6*n+63, 3*n+31))
EndIf
Next
Line(MX-4,MY,9,0,$00C0C0)
Line(MX,MY-4,0,9,$00C0C0)
StopDrawing()
DX.f = (MX - PX) / 16
If DX > #MaxD : DX = #MaxD : EndIf
If DX < -#MaxD : DX = -#MaxD : EndIf
DY.f = (MY - PY) / 16
If DY > #MaxD : DY = #MaxD : EndIf
If DY < -#MaxD : DY = -#MaxD : EndIf
PX + DX : PY + DY
Spur(33)\x = PX : Spur(33)\y = PY
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Milchshake
- Beiträge: 166
- Registriert: 30.01.2006 17:47
- Wohnort: Zwischen dem Sessel und dem Computer
Aus Optimierungsgründen sind Arrays hier besser ... weil du ja eh vorherMilchshake hat geschrieben:Ja, aber mit einer Liste finde ich es einfacher zu verstehen.
Aber es sind beides Möglichkeiten^^
weist, wie lang die Spurr am ende werden soll und somit, wie viele
Elemente es maximal hat

Möglich sind aber natürlich beide.
MFG PMV
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
LINIEN?!
okay ich blick da teiweise noch nich ganz durch aber naja das kommt schon noch hoffe ich.
noch ne frage. wie macht man linien?
Mfg MAX
noch ne frage. wie macht man linien?
Mfg MAX