Seite 1 von 1

Beginnerfrage

Verfasst: 23.07.2010 22:18
von System Freeze
Hallo !

Ich habe mal eine Frage.Es geht um folgendes.Ich habe vor Jahren auf dem C=64 programmiert ( :lol: ), und wollte jetzt auf dem PC wieder beginnen.Dachte das da Pure Basic genau richtig ist da ich auf dem C=64 auch mit Basic geschrieben habe.Mein Ziel ist es so eine Art "Demo" zu schreiben wie es damals auf dem C=64 war.Ist es möglich Text zu schreiben (am besten als Laufschrift) wenn ich openscreen benutzt habe?Muss ja sagen das ich bei Pure Basic ein totaler Anfänger bin.Meine bisherigen Versuche sind leider fehlgeschlagen :( .Vielleicht kann mir wer den ein oder anderen Tip geben wie ich zu meinem Ergebis kommen kann bzw erstmal wie ich beginnen kann die Sprache zu erlernen.Würde mich sehr über Antworten freuen.Vielen Dank im Vorraus...

Greetz

Freeze

Re: Beginnerfrage

Verfasst: 24.07.2010 01:56
von Bisonte
Auch wenns nicht sein soll, aber da Du ja schon seit 2005 hier registriert bist .... nur für dich ;)

Re: Beginnerfrage

Verfasst: 25.07.2010 01:06
von System Freeze
Hallo Bisonte

Danke für die Antwort :). Bin leider ein wenig "überfordert" mit den vielen Befehlen und weiß einfach nicht wo ich beginnen soll. Welche Befehle sollte ich mir mal vornehmen um etwas auf die Reihe zu bekommen? Eine lange Liste mit Befehlen hilft da nicht so wirklich. Wie gesagt habe auch einige Jahre nichts gemacht und Du hast Recht das ich Pure Basic schon eine ganze Weile besitze,nur leider nie wirklich dazu gekommen bin was zu machen. Daran will ich aber arbeiten :)...

Greetz

Freeze

Re: Beginnerfrage

Verfasst: 25.07.2010 01:27
von TomS
StartDrawing() und StopDrawing()
Zwischen den beiden benutzt du DrawText()
Dort kannst du mir Farbe und Position spielen.
Für einen Scroll-Effekt z.B. Y als Konstande und X als Variable die du bei jedem Schleifendurchlauf rauf oder runter setzt.
Den Rest findest du in deinem PureBasic-Ordner unter \Examples\Sources\Sprite.pb
Dort ist ein einfaches Beispiel, dass alle benötigten Befehle beinhaltet (InitSprite(), Repeat...)

Re: Beginnerfrage

Verfasst: 25.07.2010 04:20
von Vera
Hallo System Freeze,

willkommen an Board :)

Im englischen Forum bin ich unlängst auf einen Thread aufmerksam geworden, worin ein kleiner Code nach und nach, von jedem der mitmachen wollte, erweitert wurde. Es hat sogar mit laufendem und fließendem Text zu tun. :wink:
Auch wenn's nicht ganz Dein Anliegen trifft, ist es doch ein tolles Beispiel, um zu sehen, wie sich der Befehlsumfang allmählich erweitert und wandelt. (Bis auf eine Unterbrechung, sind sie auch crossplattform.)

PureBasic Community: Evolving Code - Zum Neueinstieg bestimmt lehrreich und animierend.

viel Erfolg ~ Vera

Re: Beginnerfrage

Verfasst: 25.07.2010 10:38
von WPö
Servus, System Freeze!

Wenngleich auch schon seit fünf Jahren an Bord, auch von mir ein Willkommen entgegengeschmettert! Nun scheint für Dich der Durchbruch bei PureBasic gekommen.

Die Beispielprogramme zu PureBasic liegen zwar kostenlos, aber nicht umsonst bei. Schau Dir die Programme 'mal an und lerne so an funktionierenden Beispielen den Wortschatz kennen.

Übrigens: Hinter Interpunktionen müssen Leerzeichen stehen.

Gruß - WPö

Re: Beginnerfrage

Verfasst: 27.07.2010 19:30
von System Freeze
Hallo !

Erstmal vielen Dank für die Antworten...Als Ihr mit Pure Basic begonnen habt,was habt Ihr da so als erstes gemacht,programmiert bzw. welche Befehle habt Ihr Euch als erstes vorgenommen um in die Sprache zu finden?

@ WPö:Welche Beispielprogramme meinst Du?Die aus der Hilfe oder von den Tutorials?

Greetz

Freeze

Re: Beginnerfrage

Verfasst: 27.07.2010 20:10
von WPö
Sowohl als auch. Hier im Forum findeste auch ne Menge an Beispielprogrammen, tlw. aber sehr fortgeschritten.

Begonnen habe ich mit Vorkenntnissen in AmigaBasic, Assembler und ANSI-C und habe mich erstmal an die Datei-Ein-/Ausgabe gemacht. Alles, was mit Verzeichnisoperationen und Lesen/Schreiben in Dateien zu tun hat.

Es folgten Fenster und Innereien, hauptsächlich diese... na, die Dings, die Gadgets :mrgreen: inkl. Ereignisabfragen.

Wennste das dann intus hast, versuchs mal mit 3D oder Audio. Meine Baustelle ist da eher die Schnittstelle zur selbstgebauten Hardware.

Gruß - WPö

Re: Beginnerfrage

Verfasst: 28.07.2010 14:17
von bobobo
ne art demo .. viel Spass beim weiterspielen

Code: Alles auswählen

;initialisierung
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitSprite3D()=0
  MessageRequester("Error", "Sprite system can't be initialized", 0)
  End
EndIf
ExamineDesktops() ;ermittlung der screecapabilities
w=DesktopWidth(0)
h=DesktopHeight(0)
f=DesktopFrequency(0)
d=DesktopDepth(0)
Enumeration ;etwas bürokratie
  #font
  #spriteimage1
  #sprite
  #sprite3d
  #background
EndEnumeration
If OpenScreen(w,h,d,"mein scroller",#PB_Screen_SmartSynchronization ,f) ;schirm auf
  If CreateSprite(#sprite,128,128,#PB_Sprite_Texture) ;hier die spriteerstellung texture
  Else                                                ; abfangen, das hat mal übel bei
    End                                               ; mir gekracht
  EndIf
  CreateImage(#background,w,h,d) ; Bild hintergrund malen
  StartDrawing(ImageOutput(#background))
      DrawingMode(#PB_2DDrawing_Gradient)
      BackColor(#Red)
      FrontColor(#Blue)
      LinearGradient(0,0,w,h)
      Box(0,0,w,h)
    
    StopDrawing()
  LoadFont(#font,"",24); font für die Schriftausgabe, hier nur Größe ändern
  CreateImage(#spriteimage1,128,128) ; Spriteinhalt malen
  StartDrawing(ImageOutput(#spriteimage1))
    DrawingMode(#PB_2DDrawing_Gradient)
    BackColor(#Blue)
    FrontColor(#Red)
    LinearGradient(0,0,128,128)
    Box(0,0,128,128)
    DrawingMode(#PB_2DDrawing_Default)
    Box(0,0,90,90,#Yellow)
    DrawingMode(#PB_2DDrawing_Transparent)
    DrawingFont(FontID(#font));Font zuweisen
    For c=255 To 0 Step -25
      DrawText(c/25,c/25,"Demo",RGB(255-c,0,c))
      Next
  StopDrawing()
  CreateSprite(#sprite,128,128,#PB_Sprite_Texture)
  StartDrawing(SpriteOutput(#sprite))
    DrawImage(ImageID(#spriteimage1),0,0)
  StopDrawing()
  TransparentSpriteColor(#sprite, #Yellow) ; Our gilb is transparent :)
  CreateSprite3D(#sprite3d,#sprite) ;3dSprite aus sprite erzeugen (inklusive transparenz)
  speed=5 ; je höher desto scroll
  x=-100  ; x initialisieren
  Repeat
    x=x+1*speed
    If x>w
      x=-100
    EndIf
    FlipBuffers()
    ClearScreen(RGB(0,0,0))
    StartDrawing(ScreenOutput())
      DrawImage(ImageID(#background),0,0)  
    StopDrawing()
    RotateSprite3D(#sprite3d, 0.6,#PB_Relative)
    If Start3D()
      DisplaySprite3D(         #sprite3d, x,       h/2+Sin(x/100)*250) ; 3dSprite von oben
      DisplaySprite(#sprite  , w-x, h/2+Sin(x/100)*250) ;nicht transparent
      DisplayTransparentSprite(#sprite  , w-x-200, h/2+Sin(x/100)*250) ;transparent
      DisplaySprite3D(         #sprite3d, w-x-100, h/2+Sin(x/100)*(Random(50)+200)); 3dSprite von oben
    EndIf
    ExamineKeyboard()
  Until KeyboardPushed(#PB_Key_Escape)
Else
  MessageRequester("tja","da scrollt sich nix")
EndIf
End