Springender Ball

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

1. flirrt das bild fürchterlich, weil eben in jedem buffer jeder zweite kreis ist und
2. ist irgendwann das bild voll, wenn du nix löscht, das ist nicht der sinn einer "spur"
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
PureMax
Beiträge: 16
Registriert: 21.02.2008 19:32
Kontaktdaten:

Beitrag von PureMax »

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
Benutzeravatar
Milchshake
Beiträge: 166
Registriert: 30.01.2006 17:47
Wohnort: Zwischen dem Sessel und dem Computer

Beitrag von Milchshake »

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.

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)
Wenn du noch fragen hast, nur zu^^
Hab jetzt PB 4.02
Muhahaha!!!!
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

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
Sicher ... und nach 1 min Spielzeit kann man nichts mehr erkennen ...
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. :wink:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

Kaeru Gaman hat geschrieben:1. flirrt das bild fürchterlich, weil eben in jedem buffer jeder zweite kreis ist und
achso, stimmt ja. :freak:
ich hab mich dusslig gewundert warum ich die bälle in groesseren abständen sehe, wenn ich der bewegung mit dem auge folge, als wenn ich einen punkt fixiere. :mrgreen:
my pb stuff..
Bild..jedenfalls war das mal so.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

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.
Benutzeravatar
Milchshake
Beiträge: 166
Registriert: 30.01.2006 17:47
Wohnort: Zwischen dem Sessel und dem Computer

Beitrag von Milchshake »

Ja, aber mit einer Liste finde ich es einfacher zu verstehen.
Aber es sind beides Möglichkeiten^^
Hab jetzt PB 4.02
Muhahaha!!!!
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Milchshake hat geschrieben:Ja, aber mit einer Liste finde ich es einfacher zu verstehen.
Aber es sind beides Möglichkeiten^^
Aus Optimierungsgründen sind Arrays hier besser ... weil du ja eh vorher
weist, wie lang die Spurr am ende werden soll und somit, wie viele
Elemente es maximal hat :wink:

Möglich sind aber natürlich beide.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich find das array besser, obwohl oder auch weil man das selber durchscrollt,
weil man dann die darstellungsfarbe direkt in bezug zum index setzen kann.
(wie man in meinem demo ja gut sehen kann)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
PureMax
Beiträge: 16
Registriert: 21.02.2008 19:32
Kontaktdaten:

LINIEN?!

Beitrag von PureMax »

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
Antworten