Struktur im Programmablauf
Übersicht

AdabiBetreff: Struktur im Programmablauf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin
Ich habe die Nacht ein wenig mit BB experimentiert. Ich habe schon früher mal programmiert, aber das war in einem anderen Jahrhundert. Meine mir selbst gestellten Aufgaben waren folgende: - etwas auf dem Screen mit der Tastatur bewegen (Grafik mit Tastatursteuerung bewegen). - etwas auf dem Screen bewegen lassen (Grafik bewegt sich von A nach B). - etwas auf dem Screen animieren (3 Grafiken laufen der Reihe nach durch in einer Schleife). Soweit so mäßig auch gelöst. Zumindest für eine Nacht. ![]() Ich habe mir eben das Schuss-Tut von Dotterkopf durchgelesen. Daraus ergaben sich folgende Fragen: 1. Wenn ich die obigen Dinge kombinieren will, mache ich das im Grunde mit einer Schleife, die je nach Bedingung die einzelnen Programmteile (Functions?) abklappert? Ich habe nämlich versucht das o.g. zu kombinieren (Gosub...) und habe nämlich nicht geschafft die einzelnen Programmteile so miteinander zu verwurschten, dass sich: - eine "Kanone" horizontal bewegen lässt - und sich gleichzeitig ein Schuss nach Tastendruck vertikal bewegt. Vielen Dank und gute N8 A. |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier mal eine Lösung zu deiner Aufgabe
Code: [AUSKLAPPEN] Type schuss ; Type namens Schuss erstellen
Field x ; schuss folgende "attribute" geben, x und y Field y End Type Global px# Graphics 800,600,32,2 ;Graphics initialisieren px#=400 ; die Player X position auf 400 setzen (mitte) While Not KeyHit(1) ; Beginn der Schleife, so lange durchrattern bis ESC gedrückt wird Cls keys() schüsse_malen() Flip 60 Wend ; nun haben wir alles gemacht, wieder rauf zu wend ! End Function keys() ;Hier wird alles mit der Interaktion mit der Tastatur behandelt If KeyDown(205) px#=px#+0.7 If KeyDown(203) px#=px#-0.7 If KeyHit(57) s.schuss=New schuss s\x=px# s\y=0 EndIf End Function Function schüsse_malen() ; Hier wird jede Instanz von schuss durchgeangen und behandelt For s.schuss = Each schuss s\y=s\y+5 ;Nach unten bewegen Color 80,255,80 Oval s\x,s\y,10,30 ;Zeichnen Color 255,255,255 If s\y>600 Delete s.schuss ;Falls er vom Bildschirm rand verschwindet, löschen (Preformance!) Next Rect px#,10,10,10 End Function Vermeide Gosub / Goto ![]() Schau es dir mal durch und frage nach wenns unklarheiten gibt! hf mfg ozzi |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Tipp:
Beginne mit elementareren Sachen. Auch wenn es für einen außenstehenden recht simple aussieht, was du da proggen möchtest, ist es Programiertechnisch schon recht fortgeschritten. Was hast du den schon so für Kleine mini projekte gemacht ? Gerade beim Programieren sollte man die Grundlagen gut beherrschen, denn sonst erleidet man später einen gewaltigen Genickbruch *Klugscheiß* Allgemeiner Programm aufbau : ( Beachte jeder Programierer programiert anders und etwickelt seinen eigenen Programierstil). Aber im groben sollte der Code immer so aufgebaut sein. Code: [AUSKLAPPEN] ;grafik initialisieren ;variablen definieren ;arrys ;evt includes ;---------HAUPTSCHLEIFE----------- ; - Aufruf vierschiedener funktionen ;funktion1 (spieler updaten) ;funktion2 (Map malen) ;--------ende hauptschleife------- ;funktion 1 ( .. ) ;if wert = wert then.... ;funktion 2 (.....) If wert = wert then .... Gruß Dottakopf |
||
Adabi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, ich bin wieder wach. Danke für eure Antworten. Werde ich mir später ausführlich angucken.
Zitat: Was hast du den schon so für Kleine mini projekte gemacht ?
Nun ja, auf dem C64 ein paar Sprites fliegen lassen und Wasteland gecrackt. Mit dbaseIV hatte ich auch mal kurz was am Hut. Das liegt zwar nicht ganz so lange zurück wie Wasteland, war aber so öde, dass ich mich wenigstens noch an die 8Bit Assembler-Befehle LDA und STA erinnere aber an dbase nicht mehr. Oh Wunder. Kurz danach sind ja auch die Dinosaurier ausgestorben. Was zumindest aber erklärt, wieso ich auf die Idee mit Gosub gekommen bin ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group