Seite 2 von 12

Re: Warum eigentlich noch PureBasic?

Verfasst: 15.12.2008 11:14
von Dare Devil
Kiffi hat geschrieben:@Dare Devil: Danke für Deine Antwort,
Dare Devil hat geschrieben:FreeBasic kann - allesmoegliche machen. Programme, Spiele...
aha, genauso wie mit PureBasic ;-)

ich wollte von Arthur eigentlich wissen, was an FreeBasic im Vergleich
zu PureBasic
so entscheidend besser ist, dass man PB nicht mehr
nutzt.

FreeBasic habe ich mir jetzt schon mehrere Male in unterschiedlichen
Versionsstufen angeschaut. Prinzipiell finde ich es schon nicht schlecht,
aber die applikationsspezifischen Sachen (Fenster, Gadgets,
Eventhandler) sind IMO in PureBasic wesentlich komfortabler zu
programmieren.

Grüße ... Kiffi
Ja sorry. Ich weiss, dass ich nich Arthur bin, nur konnte nich widerstehen :wink:

Ich war mal bei der Entscheidung: Welches Basic nehme ich jetzt?
Damals - vor nicht allzulanger Zeit - programmierte ich noch in BlitzBasic. Hab mir FreeBasic nur kurz angesehen und bin nich weiter darauf eingegangen. ich weiss jetzt auch nicht mehr welche Gruende massgeblich waren, dass ich PB gewaehlt habe, aber ich glaube unter anderem, weil die Community nur schwach vorhanden ist und PB einige Vorteile in der Anwendungsprogrammierung hatte. In FreeBasic wird - soviel ich weiss nur in der WinAPI programmiert, was GUI betrifft.
Fuer Spieleprogrammierer ist FreeBasic aber eindeutig eine bessere Wahl als PB (PB unterstuetzt ja immernoch eine noch nicht vollstaendige 3D-Engine).

Re: Warum eigentlich noch PureBasic?

Verfasst: 15.12.2008 11:39
von Kiffi
Dare Devil hat geschrieben:Ja sorry. Ich weiss, dass ich nich Arthur bin, nur konnte nich widerstehen :wink:
Kein Problem! Ich weiß ja noch nicht einmal, ob Arthur nun wirklich
FreeBasic benutzt. Ist nur eine Vermutung, weil's in seiner Sig steht (die
muss ja nicht aktuell sein). ;-)
Dare Devil hat geschrieben:In FreeBasic wird - soviel ich weiss nur in der WinAPI programmiert, was GUI betrifft.
... was für mich momentan die kompliziertere Wahl wäre. Ich finde es
gut, wie einfach man mit PB GUIs erzeugen kann.
Das verstehe sogar ich :lol:
Dare Devil hat geschrieben:Fuer Spieleprogrammierer ist FreeBasic aber eindeutig eine bessere Wahl als PB (PB unterstuetzt ja immernoch eine noch nicht vollstaendige 3D-Engine).
tscho, ich bin kein Game-Progger, insofern ist dieses Argument für mich
nicht ausschlaggebend. ;-)

Grüße ... Kiffi

Verfasst: 15.12.2008 11:43
von STARGÅTE
Bitte beachte aber das "Spieleprogrammierer" nicht gleich "3D-Spieleprogrammierer" ist!

Die Sprite3D-Lib ist (wie ich finde) schon eine mechtige Lib, mit der man sehr viele verschiedene Spiele Programmieren kann, und sogar ISO-3D erzeugen kann (TransformSprite3D), und auch Sprite3DBlendingMode bietet eine menge Effektmöglichkeiten.

Verfasst: 15.12.2008 11:56
von Dare Devil
STARGÅTE hat geschrieben:Bitte beachte aber das "Spieleprogrammierer" nicht gleich "3D-Spieleprogrammierer" ist!

Die Sprite3D-Lib ist (wie ich finde) schon eine mechtige Lib, mit der man sehr viele verschiedene Spiele Programmieren kann, und sogar ISO-3D erzeugen kann (TransformSprite3D), und auch Sprite3DBlendingMode bietet eine menge Effektmöglichkeiten.
Als Nicht-FreeBasic-Programmierer kann ich da echt nich viel sagen, ob FreeBasic besser/komfortabler ist als PB. Das muesste wenn dann jemand anderes machen. Ich meine nur, dass so gehoert/gelesen zu haben...
Bin mit der Gamelib von PB btw voellig zufrieden. Ich programmiere eh kein 3D. Mein Genre sind 2D-JumpnRuns, und die kann man in PB auf einfachste Weise erstellen...


@Kiffi
Ja, das war wohl einer meiner Gruende :wink: PB bietet die Moeglichkeit auf einfachste Weise GUIs zu erstellen und dennoch kann man noch notfalls auf die WinAPI zurueckgreifen, falls man mehr Moeglichkeiten braucht. Von daher ist PB hier um laengen besser.

Verfasst: 15.12.2008 12:30
von rolaf
>>> Warum eigentlich noch PureBasic?

Gegenfrage: Warum eigendlich nicht?

Verfasst: 15.12.2008 13:04
von NicTheQuick
Ich programmiere nicht mehr mit Purebasic, seitdem ich Linux x64 habe und es dort
überhaupt nicht läuft. Ich verstehe den Grund auch immer noch nicht so richtig, warum es
so kompliziert ist, eine 64-Bit Linux Version rauszuhauen.
Da bin ich momentan also ein bisschen enttäuscht.
Momentan nutze ich deswegen eher Java für Unikram und Privates, C# in der Firma und an
C++ taste ich mich auch ran. OOP forever! :wink:

Verfasst: 15.12.2008 14:22
von THEEX
Für mich persöhnlich überwiegen die Vorteile von PB zur Zeit die Nachteile und sind die letzte Zeit sogar stark gesteigert worden. Aber auch an C++ taste ich mich heran, das macht aber zur Zeit wegen eines Projektes, was ich mit PB realisiere, pause.

Verfasst: 15.12.2008 15:50
von PMV
Ich weis was PB kann ... ich weis was PB nicht kann ... ich weis wie ich
etwas am besten mit PB lösen kann ... ich weis wo ich aufpassen muss ...
dank der jahrelangen Erfahrung. Die Syntax ist einfach und die
Möglichkeiten nur begrenzt bei 3D. Nützliche Tools gibt es für (fast) jedes
Problem. IDE und Debugger sind vorbildlich ausgebaut. Die offiziellen
Bibliotheken sind so umfangreich, dass nur sehr wenige jemals alle
ernsthaft nutzen werden. PB hat sein Entwicklungsende noch lange nicht
erreicht. Die Community ist trotz der geringen Größe unglaublich hilfsbereit.

MFG PMV

Verfasst: 15.12.2008 16:26
von Joel
STARGÅTE hat geschrieben: (Spiele, Anwendungen, Codetests, Hausaufgaben)
lol, wie kann man mit PB Hasuaufgaben machen?

Also ich nutze PB, weil ich damit alles Programmieren will, was mir einfällt und weil ich noch auf keine Grenze gestoßen bin.

Verfasst: 15.12.2008 16:50
von STARGÅTE
@Joel:

vorwiegend für Mathe,
zum Beispiel zum schnellen testen von konvergenz von Reihen, einfach mal ein paar Tausen Glieder errechnen lassen usw.
Oder um kleine Animationen zu schreiben, welche ich dann als exe hochladen und als URL abgebe. Nein das ist kein Scherz!

OT:
Aktuelle lasse ich mir die Mandelbrot-Menge in verschiedenen Farben Plotten, mit Zoom-Verfahren: (links klick vergrößert bereich, berechnungen dauern etwas)
Als Beispiel für Komplexe Folgen ...

OHNE DEBUGGER STARTEN!, sonst dauern die berechnungen zu lange

Code: Alles auswählen

InitSprite()
InitKeyboard()
InitMouse()

Global xP = 600
Global yP = 600

Global Zoom.d = 2.0
Global dx.d = -0.5
Global dy.d = 0.0

Global maxQuaAbs = 6
Global maxIter = 256

Global E

Procedure.d PunktIteration(cx.d, cy.d)
 Protected QuaAbs.d, Iter.l, x.d, y.d, xt.d, yt.d, ReturnIter.d
 While x*x + y*y <= maxQuaAbs And Iter < maxIter 
  xt = x*x - y*y + cx
  yt = 2*x*y + cy
  x = xt
  y = yt
  Iter + 1
 Wend
 E = #True
 ProcedureReturn Iter
EndProcedure

 Global Wieder = 0
 Global maxEnergie = 256+$600*(Wieder+1)
 Global Dim Energie(maxEnergie)
 For n = 0 To 255
  Energie(n) = RGB(0,0,n)
 Next
 For j = 0 To Wieder
 For n = 0 To 255
  Energie(j*$600+n+$100) = RGB(  0  ,  n  ,$FF  )
  Energie(j*$600+n+$200) = RGB(  0  ,$FF  ,$FF-n)
  Energie(j*$600+n+$300) = RGB(  n  ,$FF  ,  0  )
  Energie(j*$600+n+$400) = RGB($FF  ,$FF-n,  0  )
  Energie(j*$600+n+$500) = RGB($FF  ,  0  ,  n  )
  Energie(j*$600+n+$600) = RGB($FF-n,  0  ,$FF  )
 Next
 Next

Procedure Farbe(iterations_wert) 
 ProcedureReturn Energie(Int(iterations_wert*maxEnergie/maxIter))
EndProcedure


Procedure Erstellen(Wert)
 CreateSprite(0, xP, yP)
 StartDrawing(SpriteOutput(0)) 
  DrawingMode(1)
  For x = 0 To xP-1 Step 1
   For y = 0 To yP-1 Step 1
    Iter = PunktIteration((-1+x/300)*Zoom+dx, (-1+y/300)*Zoom+dy)
    Plot(x, y, Farbe(Iter))
   Next y
  Next x
 StopDrawing()
EndProcedure

OpenWindow(0, 0, 0, xP, yP, "SCREEN", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, xP, yP, 0, 0, 0)

 CreateSprite(0, xP, yP)

 CreateSprite(1, xP/4, yP/4)
 StartDrawing(SpriteOutput(1))
  DrawingMode(4)
  Box(0, 0, xP/4, yP/4, $FFFFFF)
 StopDrawing()
 
 Erstellen(1)
 
Repeat
 
 Delay(10)
 
 WindowEvent()

 ClearScreen(0)

 DisplaySprite(0,0,0)
 DisplayTransparentSprite(1,Mx-xP/8,My-yP/8)
 
 StartDrawing(ScreenOutput())
 DrawText(0,0,"Zoomfaktor: "+StrD(1/ZOOM,0), $A0A0A0, $505050)
 DrawText(0,20,"d: "+StrD(dx)+" , "+StrD(dy), $A0A0A0, $505050)
 StopDrawing()
 
 FlipBuffers()
 
 ExamineMouse()
 Mx = MouseX()
 My = MouseY()
 If Not E
  If MouseButton(1)
   dx + (Mx/300-1)*Zoom
   dy + (My/300-1)*Zoom
   Zoom / 4
   Erstellen(1)
  EndIf
  If MouseButton(2)
   dx + (Mx/300-1)*Zoom
   dy + (My/300-1)*Zoom
   Erstellen(1)
  EndIf
 EndIf
 If MouseButton(1)=0 And MouseButton(2)=0
  E = #False
 EndIf
 
 ExamineKeyboard()
 If KeyboardPushed(#PB_Key_Escape) : End : EndIf

ForEver