BlitzPlus Tutorial #1
Übersicht

![]() |
ArtemisBetreff: BlitzPlus Tutorial #1 |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzPlus - Tutorial #1
Hallo und herzlich Willkommen zum BlitzPlus Tutorial. Dieses Tutorial setzt Grundkenntnisse im 2D-Bereich voraus. Wenn du diese nicht besitzt würde ich dir empfehlen, dir diese vorher anzueignen. #1.1 Windows und Events Wir wollen damit anfangen, dass wir erst ein einfaches Fenster erstellen. Dies kann so aussehen: BlitzBasic: [AUSKLAPPEN] ;Ein Fenster erstellen An dieser Stelle möchte ich die Parameter erklären die man der Funktion "CreateWindow" übergeben muss: BlitzBasic: [AUSKLAPPEN] Wenn wir unser Beispiel so lassen, dann wird ein Fenster erstellt, das Programm wird aber sofort wieder beendet. (Was natürlich heißt, das unser Fenster wieder gelöscht wird.) Dafür müssen wir jetzt eine Schleife einbauen, welche solange wiederholt wird, bis eine Abbruchbedingung erfolgt. Außerdem möchten wir jetzt mehrere Fenster erstellen, von denen eins als "Parent" ein anderes Fenster hat. Dies können wir so lösen: BlitzBasic: [AUSKLAPPEN] ;Drei Fenster erstellen Es ist jedoch unschön, da wir das Programm nur beenden können, wenn wir auf [Esc] drücken. Um es so hinzubekommen, das das Programm beendet wird, wenn der Benutzer auf den Schließen-Button ([X]) des Fensters drückt, müssen wir auf die "Events" zugreifen. Diese Events sind Ereignisse die in einem Fenster stattfinden. Um diese Events zu erkennen müssen wir in unsere Schleife den Befehl "WaitEvent()" einbauen. Dieser wartet entweder die Zeit die man ihm übergibt, oder bis ein Event eintritt. Danach müssen wir abfragen, was für ein Event stattgefunden hat. Dafür benutzen wir den Befehl "EventID()". Die Event-Identität des Schließ-Buttons bei einem Fenster ist Hexadezimal 803. Dies geben wir im Programm als $803 an. BlitzBasic: [AUSKLAPPEN] ;Ein Fenster erstellen Dies war der erste Teil des Tutorials, weitere sind in Arbeit. |
||
- Zuletzt bearbeitet von Artemis am Do, Jul 13, 2006 15:56, insgesamt einmal bearbeitet
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmmm.....
Hiert tut sich nichts! Ich mach dann ma etwas weiter: #1.2 Buttons und wie man sie abfragt Hierzu greife ich das letze Beispiel aus dem vorherigen Kapitel auf: BlitzBasic: [AUSKLAPPEN] ;Ein Fenster erstellen So, dem fügen wir zunächst einen Button hinzu: BlitzBasic: [AUSKLAPPEN] Button1 = CreateButton(\"Button\",5,5,100,25,Window) Dieser code muss unter das Window = .... Dies erstellt einen Button, in dem der Text "Button" steht, an Position X=5,Y=5 relativ zum Fenster 'Window'. Der Button ist 100Pixel breit, und 25 Pixel hoch. Der letzte Parameter gibt an, zu welcher Gruppe der Button gehören soll. Das heißt, worauf er erscheinen soll. Dies ist in der Regel ein Fenster, also hier 'Window'. Der gesammte code sähe dann so aus: BlitzBasic: [AUSKLAPPEN] ;Ein Fenster erstellen Dann müste man ein Fesnter mit einem Button drinne haben. So weit so gut, aber wenn wir jetzt wollen, dass etwas passiert, wenn wir den Button drücken, geht das so: BlitzBasic: [AUSKLAPPEN] ;Ein Fenster erstellen So, nun kommt, wenn ihr auf den Button klickt, eine Dos-Box, in der steht, dass unser Button gedrückt wurde. Um zu überprüfen, ob das nicht bei jedem Button passiert, könnt ihr ja einfach noch einen Button erstellen(natürlich muss die variable, in der ihr ihn speichert, anders heißen, als die erste, und es wäre auch gut, wenn er an einer anderen Position ist), und auf ihn klicken. Es wird nichts passieren. To be continued. Mfg, BORNtobeNAMELESS |
||
- Zuletzt bearbeitet von BtbN am So, Nov 27, 2005 11:02, insgesamt einmal bearbeitet
![]() |
bruce185 |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich finde dein tut gut, ist auch gut erklärt finde ich ![]() kannst ja noch welche schreiben wenn du willst, ich werde mich auch freuen auf die nächsten tutorials ![]() gruss Andreas |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aus mehr oder weniger aktuellem Anlass grab ich diesen Thread wieder aus um ihn zu ergänzen
#1.3 Texteingabe und Abfrage Auch ich möchte mich auf das bisherige Gerüst stützen: Code: [AUSKLAPPEN] ;Ein Fenster erstellen Window = CreateWindow("Test-Fenster",100,100,400,300,0,15) ;Unseren Button erstellen Button1 = CreateButton("Button",5,5,100,25,Window) ;Schleife ... Repeat ;Event abfragen (da ich die Klammern leer lasse, wartet Blitz so lange, bis irgendwas geschieht) WaitEvent() ;Identität des Events abfragen Select EventID() ;Falls auf [X] geklickt wurde, dann wird beendet Case $803 End ;Wenn auf irgend einen Button gedrückt wird, wird dieses Event ausgelöst Case $401 ;da ja ein belibeiger Button gedrück worden seien könnte, ;muss man weiter sieben: source$ = EventSource() ;hierrin steht nun der NAME der variable des Buttons, der gedrückt wurde ;um zu überprüfen, welcher Button gedrückt wurde, noch ein Select: Select source$ Case Button1 Print "Unser button wurde gedrueckt!" ;Sollte wohl klar sein End Select End Select ; ...für immer Until KeyHit(1) Und jetzt wirds interessant: Wir erzeugen ein Textfeld (einzeilig), die Parameter sind dieselben wie bei den Buttons, nur dass keine Beschriftung angegeben werden kann / muss Code: [AUSKLAPPEN] txtfield=CreateTextField(5,40,300,20,Window) ;Und manche wollen den Inhalt bestimmen. ;Dazu nehme man den Befehl SetGadgetText, der als Parameter das Gadget (=Ding, Objekt) und den Text verlangt Code: [AUSKLAPPEN] SetGadgetText txtfield,"Hallo" ;Soweit so gut. Nun kann der Benutzer in das Textfeld reinhämmern was er will und erzeugt dabei jedesmal einen $401-Event (das nur nebenbei erwähnt). ;Wir haben aber keine Ahnung, was der Benutzer da eingibt. Um das herauszufinden nehme man TextFieldText Code: [AUSKLAPPEN] eingabe$=TextFieldText(txtfield) ;Diese Errungenschaften setze ich in den Hauptcode ein: Code: [AUSKLAPPEN] ;Ein Fenster erstellen Window = CreateWindow("Test-Fenster",100,100,400,300,0,15) ;Unseren Button erstellen Button1 = CreateButton("Button",5,5,100,25,Window) ;Textfeld erstellen txtfield=CreateTextField(5,40,300,20,Window) ;Gleich einen Startwert reinschreiben SetGadgetText txtfield,"Hallo" ;Schleife ... Repeat ;Event abfragen (da ich die Klammern leer lasse, wartet Blitz so lange, bis irgendwas geschieht) WaitEvent() ;Identität des Events abfragen Select EventID() ;Falls auf [X] geklickt wurde, dann wird beendet Case $803 End ;Wenn auf irgend einen Button gedrückt wird, wird dieses Event ausgelöst Case $401 ;da ja ein belibeiger Button gedrück worden seien könnte, ;muss man weiter sieben: source$ = EventSource() ;hierrin steht nun der NAME der Variable des Buttons, der gedrückt wurde ;um zu überprüfen, welcher Button gedrückt wurde, noch ein Select: Select source$ Case Button1 ;Bei Klick auf den Button den eingegebenen Text anzeigen. (Wieder in der Konsole) Print TextFieldText(txtfield) End Select End Select ; ...für immer Forever Und nun gibt es noch "TextArea". Diese bietet mehr Funktionen, wie zB Schriftart einstelen und ist zudem mehrzeilig. Sie funktioniert ähnlich dem TextField, mit folgenden Änderungen: -) CreateTextField -> CreateTextArea -) TextFieldText -> TextAreaText (Ganz wichtig! wenn man zB TextFieldText auf eine TextArea anwendet, kommt ein Runtime-Error!) So. Das wäre es von meiner Seite. TextArea hab ich stark abgekürzt, hoffe das stört nicht. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Vidde |
![]() Antworten mit Zitat ![]() |
---|---|---|
trotz drei autoren ein leicht verständliches tut.
da aber auf dem gebiet BlitzPlus tuturialmangel herscht, wäre es toll, wenn sich wieder jemand erbarmt für uns noobs dieses hier weiterzuführen. vielen dank bis hierher. |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm ja tuturials gibts nicht viele, werde vlt mal weiter machen wenn der Bedarf besteht..
Edit: #1.4 Der Canvas&Grafisches Ein Canvas solltet ihr euch wie eine Leinwand vorstellen, ein Rechteck auf dem man alle Blitz2D Befehle anwenden kann! So wird er erstellt: Code: [AUSKLAPPEN] name = CreateCanvas(XPosition,YPosition,Höhe,Breite,Fenster)
Wobei Fenster für das Fenster steht auf dem er erscheinen soll. Nun setzt man mit Code: [AUSKLAPPEN] SetBuffer CanvasBuffer(canvas)
fest das alle Grafikausgaben auf dem ausgewählten Canvas gezeichnet werden sollen. Um das ganze auch noch für den User sichtbar zu machen Flipen wir (fast) wie gewohnt, nämlich mit Code: [AUSKLAPPEN] FlipCanvas can
Man kann natürlich auch mehrere Canvas objekte erstellen, aber achtet dabei stehts auf die Performance! ![]() Auch die Mausevents auf einem Canvas können ausgelesen werden (siehe Code) Code: [AUSKLAPPEN] $201 oder MouseX(Name des Canvas)/MouseY(Name des Canvas)
Zu den Panels, ein Panel ist ein Objekt zum Gruppieren weiterer Objekte. Mit der tollen möglichkeit ein Bild (oder eine Farbe) anzuzeigen. So wird ein Panel erstellt: Code: [AUSKLAPPEN] Panel=CreatePanel (x, y, breite, höhe, gruppe [,style])
Für den Style gibt man entweder 1 (standart) oder 65536 ein. Das 65536 zeichnet das Panel ohne Ramen. Merke: Ein Panel braucht weniger Leistung als ein Canvas, ist es nun nur ein Bild ist ein Panel (und dem Style 65536) zu bevorzugen. Nun wollen wir anhand unserem Grundgerüst gleich mal den Canvas und die Panels testen BlitzBasic: [AUSKLAPPEN] ;Fenster erstellen |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
- Zuletzt bearbeitet von ozzi789 am Mi, Jul 15, 2009 18:10, insgesamt 7-mal bearbeitet
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei "Jetzt lerne ich Spiele Programmieren mit BlitzBasic" ist auch ein BlitzPlus-Kapitel dabei(Jaa, ich habe das Buch bekommen, aber leider ohne CD...). Da ist das ganz gut erklärt. Naja, mal schauen. Funktioniert BlitzPlus auch unter Linux Ubuntu? Wollt ich gern wissen, bevor ich mir davon mal dei Demo hole ![]() |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, tut es nicht. Nur BlitzMax funktioniert unter Ubuntu.
Edit: Für BMax gibt es ja auch die MaxGUI. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
- Zuletzt bearbeitet von Nicdel am Mi, Jul 15, 2009 17:45, insgesamt einmal bearbeitet
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, tut es so ohne weiteres nicht, da es die WinAPI nutzt...
kA, wie das mit Wine ist. lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group