Wir programmieren Teil 3

Dieses ist der 3. Teil der Reihe, hier geht es zum 2. Teil.

Zuerst zur Lösung der kleinen Aufgaben:

void setup() {
size(300, 200);
smooth();
frameRate(30);
}

int x = 0;
int y = 0;
int vx = 3;
int vy = 3;
void draw() {
background(0);
fill(0,0,255);
stroke(0,0,255);
ellipse(x,y,10,10); // Eine Ellipse mit gleicher Breite und Höhe ist ein Kreis
x=x+vx;
// x ist nicht mehr die linke obere Ecke, sondern das Zentrum des Kreises!
if (x>width-5) { x=width-5; vx=-6; }
if (x< 5 ) { x=5; vx=3; }
y=y+vy;
if (y>height-5) { y=height-5; vy=-3; }
if (y < 5 ) { y=5; vy=3;}
}

Eine Kleinigkeit kann erstmal schwierigkeiten bereiten: die Positionen, die zum Zeichnen von Rechteck und Kreis den Befehlen übegeben werden beziehen sich auf unterschiedliche Punkte im Rechteck bzw. Kreis. Beim Rechteck wird die linke obere Ecke dem Befehl übergeben, beim Kreis das Zentrum. Somit erreicht der Kreis nicht bei 0 sondern schon bei 5 den linken Rand.

Ungewohnt ist auch die Notattion von mehreren Befehlen in einer Zeile. Da Befehle durch ein Semikolon getrennt werden, ist dieses problemlos möglich.

Doch lasst uns weiter machen, für ein kleines Spiel brauchen wir die Möglichkeit die Tastatur abzufragen:

void draw(){} // die Funktion "draw" muss immer definiert werden
// Die Funktion keyPressed wird gestartet, wenn eine Taste gedrückt wird.
// Diese Funktion ist eine Interrupt, denn der Computer unterbricht seine
// aktuelle Tätigkeit, wenn eine Taste gedrückt wurde.
void keyPressed() { 
println(keyCode); // Der Tastencode wird im Editorfenster ausgegeben.
}

Anhand dieses kleinen Programms lassen sich nun Tastencodes ermitteln, z. B.:

  • a -> 65
  • y -> 89

Das nächste, was wir brauchen ist ein "Array", also eine Tabelle. Wie die genutzt wird lernt Ihr im folgenden Programm kennen:

void setup() {
size(300, 200); smooth(); frameRate(30);
} // Koordinaten und Geschwindigkeiten des Balles
int x = 0;
int y = 0;
int vx = 3;
int vy = 3; // Wir brauchen nicht nur den Ball, sondern auch einen Schläger
int sy=height/2;
int svy=3; // Hier wird eine Tabelle von Wahrheitswerten (booleschen Werten)
// definiert. Die Tabelle hat 526 Zeilen
// In der Tabelle wird später vermerkt, ob die zugrhörige Taste
// gedrückt wurde.
boolean[] k=new boolean[526]; void draw() {
background(0);
fill(0,0,255);
stroke(0,0,255);
ellipse(x,y,10,10); // Eine Ellipse mit gleicher Breite und Höhe ist ein Kreis
x=x+vx;
// x ist nicht mehr die linke obere Ecke, sondern das Zentrum des Kreises!
if (x > width-5) { x=width-5; vx=-3; }
if (x < 5 ){
// Der Ball soll nur dann zurückprallen, wenn er auf den Schläger trifft
// also die y-Position des Balles muss größer sein, als die des Schlägers
// aber (und) gleichzeitig kleiner sein als y-Position des Schlägers + seine Länge
if ( y > sy && y < sy+30 ) { x=5; vx=3; }
// Im anderen Fall geht der Ball durch, erscheint also auf der Rechten Seite.
// Hier müsste also ein Game-Over erscheinen, das kommt aber noch.
else { x=width-5;}
}
y=y+vy;
if (y>height-5) { y=height-5; vy=-3; }
if (y < 5 ) { y=5; vy=3;}

// Hier wird der Schläger bewegt. Dazu wird abgefragt,
// ob die Tasten a bzw y gedrückt wurden.
// Dazu schaut man in der Tabelle k[] in der zugehörigen
// Zeile z. B.85 nach: k[85].
// Wurde die Taste gedrückt, so wird der Schläger bewegt.
if (k[65]==true) {
sy=sy-svy;
if (sy < 0) { sy=0; }
}
if (k[89]==true) {
sy=sy+svy;
if (sy >height-30) { sy=height-30; }
}
rect(0,sy,3,30);
}
// Hier kommen die Interrupt-Funktionen, die in der Tabelle verzeichnen,
// ob eine Taste gedrückt wurde oder losgelassen wurde.
// Wenn in einer Zeile "true" also wahr drin steht, so IST die Taste
// aktuell gedrückt.
void keyPressed() {
k[keyCode]=true;
}
void keyReleased() {
k[keyCode]=false;
}

Unser Programm wird schon etwas länger, wie wir auch bei längeren Programmen die Übersicht behalten erkläre ich später, nun zu den Aufgaben:

  • Wir brauchen nicht nur einen Schäger, sondern 2 Schläger.
  • Die Schläger sollen verschiedene Farben haben.
  • Schwieriger: die Geschwindigkeit des Balles soll sich langsam erhöhen!

Wie immer viel Spaß! Weiter geht es morgen mit dem Teil 4.

Vielleicht auch interessant:

Termine

  • 10.12. Jugend trainiert für Olympia Handball
  • 11.12. Exkursion Planetarium Wolfsburg 5d 07:55-15:30
  • 12.12. Eishalle am Pferdeturm, Weihnachtsmarkt 13:15-19:00
  • 14.12. Nachschreibtermin Reserve
  • 17.12. Probentag Adventskonzert
  • 17.12. Sprechprüfungen Englisch Jg12
  • 18.12. Exkursion Geschichte Jg5
  • 19.12. Adventskonzert Nr. 1 17:00-19:00
  • 19.12. Adventskonzert Nr. 2 19:30-21:30
  • 23.12.–06.01. Weihnachtsferien
  • 07.01.–22.01. Peine in Colmar
  • 08.01. Zahnarzt Jg5 Jg6
  • 09.01. ex. DB Feuerwache
  • 10.01. AG Programmieren 14:00-19:00
  • 13.01.–31.01. Betriebspraktikum
  • 14.01. Bolyai-Wettbewerb SekI
  • 15.01. Zensurenabgabe 11
  • 15.01. FK Geschichte 17:00-18:30
  • 15.01. Abi-Info I Jg10 19:00-21:00
  • 16.01. Exkursion Phaeno WOB mit Workshop 6d 07:55-17:05
  • 20.01.–24.01. Physik für helle Köpfe
  • 20.01.–24.01. Präventionswoche
  • 20.01.–21.01. Xanten Lateinfahrt Jg8
  • 21.01. Zensurenabgabe 12
  • 21.01. Prävention Jg. 7
  • 22.01.–11.02. Colmar in Peine
  • 22.01. Zeugniskonferenzen 5-8 15:00-20:00
  • 23.01. Zensurenkonferenzen 2: 9-12
  • 23.01. Exkursion Braunschweigisches Landesmuseum 08:00-17:00
  • 23.01. Elternabend Medienkompetenz Präventionswoche 18:30-20:00
  • 24.01.–01.02. Ski- und Snowboardfahrt
  • 24.01. Deutsch-französischer-Tag
  • 27.01.–29.01. Musik-Probenfahrt
  • 28.01.–30.01. MINT-Fahrt
  • 31.01. Unterrichtsschluss nach der 3. Stunde
  • 31.01. Zeugnisausgabe 09:45-10:30
  • 03.02.–04.02. Halbjahresferien
  • 05.02.–06.02. M+E Info-Truck Jg. 10
  • 06.02. Mathe ohne Grenzen
  • 10.02. Etat-Konferenz 16:00-18:00
  • 13.02. Exkursion Ostfalia Universität in WOB 07:55-17:05
  • 13.02. Elternsprechtag 5-12 15:00-19:00
  • 14.02. Elternsprechtag 5-12
  • 17.02. Beginn Chorprojekt
  • 17.02. Turnpark Jg5
  • 20.02. Infoabend Musikprofil 17:00-19:00
  • 21.02. Matheolympiade Landesrunde
  • 22.02. Matheolympiade Landesrunde
  • 02.03. Sprechprüfungen Englisch Jg6
  • 02.03.–07.03. Peine in Heinola
  • 02.03. Thematische DB 16:00-18:00
  • 03.03.–13.03. Alcorcón in Peine
  • 03.03. ASA-Sitzung 16:00-17:00
  • 05.03. Mathe ohne Grenzen
  • 06.03. Info-Tag für die 4. Klassen 16:00-21:00
  • 09.03.–13.03. Woche der offenen Musik-Ensembles
  • 09.03.–13.03. Colmar in Peine
  • 11.03. MINT-Berufe besuchen Schulen 08:00-13:00
  • 17.03. Sprechprüfungen Englisch Jg. Jg9
  • 18.03. 2. Gesamtkonferenz 17:00-19:00
  • 18.03. Schulvorstand 19:00-21:00
  • 19.03. Känguru-Wettbewerb Jg5 Jg6 Jg7 09:30-11:20
  • 20.03. Aula Musikschule
  • 23.03. Ende Chorprojekt
  • 23.03. Ganztagsschnuppern 14:00-15:35
  • 24.03. Workshopkonzert
  • 24.03. Infoabend Musik 19:15-20:30
  • 26.03. Zukunftstag
  • 26.03. Schulinterne Lehrerfortbildung
  • 27.03. Völkerballturnier Jg6
  • 30.03.–14.04. Osterferien
  • 15.04.–26.04. Peine in Alcorcón
  • 15.04.–20.04. Heinola in Peine
  • 15.04. FK Religion 17:00-18:30
  • 16.04. FK Französisch
  • 16.04. Raste-Party 16:30-18:00
  • 21.04. FK Latein
  • 21.04. Päd. DBen 5-10 15:00-18:00
  • 24.04. Aprilwarnungen
  • 30.04. FK Physik 16:00-18:30
  • 04.05. FK Chemie 17:00-19:00
  • 06.05. FK Musik 18:00-19:30
  • 09.05. Kreismusikschule
  • 11.05.–15.05. Peine in Colmar
  • 11.05. FK Deutsch 17:00-18:30
  • 14.05.–16.05. Unterstufenchorfahrt
  • 18.05. FK Geschichte 17:00-18:30
  • 21.05. Himmelfahrt
  • 22.05. Brückentag
  • 01.06.–02.06. Pfingsten
  • 03.06. Sprechprüfung 2. Fremdsprache Jg10
  • 04.06. Sprechprüfung 2. Fremdsprache Jg8
  • 06.06. Nachschreibtermin
  • 08.06. FK Kunst
  • 08.06. FK Mathematik 16:00-17:30
  • 08.06. FK Informatik 18:00-19:30
  • 09.06. FK Spanisch 17:00-18:30
  • 10.06. FK Erdkunde 17:00-18:30
  • 12.06. Schwimm-Wettkämpfe Jg10
  • 13.06. Nachschreibtermin Reserve
  • 15.06. FK Sport 17:00-19:00
  • 15.06. FK Po-Wirtschaft 17:00-18:30
  • 16.06. Sportabzeichentag Jg7 Jg8
  • 17.06. FK Englisch 17:00-18:30
  • 18.06. Thematische DB 16:00-18:00
  • 23.06. FK Werte u. Normen 16:00-17:30
  • 24.06. Probentag Sommerkonzert
  • 24.06. ASA-Sitzung 16:00-17:00
  • 26.06. Sommerkonzert 17:00-19:00
  • 26.06. Sommerkonzert 19:30-21:00
  • 01.07. Vocatium Braunschweig Jg12
  • 02.07. Zensurenkonferenz 1: 7+10
  • 05.07.–11.07. Englandfahrt 7a 7b 7c 7d
  • 06.07.–10.07. Projektwoche
  • 06.07.–10.07. Klassenfahrt 10a 10b 10c 10d
  • 06.07.–07.07. Betreibspraxistage Ausweichtermine
  • 06.07. Zensurenkonferenz 2: 5,6,8 14:00-19:00
  • 07.07. Zensurenkonferenz 3: 9,11,12
  • 08.07.–09.07. Betriebspraxistage 9
  • 10.07. Schulfest 14:00-19:00
  • 14.07. Allg. DB 13:30-15:00
  • 16.07.–26.08. Sommerferien
  • 07.09.–11.09. Klassenfahrt Jg. 6
  • 07.09.–11.09. Studienfahrten Jg. 12
  • 09.11. Exkursioon Jg. 10 Bergen-Belsen
  • 13.11. Exkursion Jg. 10 Bergen-Belsen

Programmieren und Basteln

Du interesssierst Dich für Computer, Elektronik und Programmieren?Dann schau doch einfach mal von Dienstag bis Freitag jeweils in der 7. Stunde im Computerraum 1 bzw....
Aufrufe: 7778 - 20.05.2012 mehr

Programmieren und Basteln

Liebe Schülerinnen und Schüler, leider ist eine Stunde pro Woche in der Schulzeit viel zu kurz zum Programmieren und Arduino-Basteln. Kaum hat man das...
Aufrufe: 7752 - 26.03.2012 mehr

Langweilige Präsentationen?

Oben ist nur das Standardbild zu sehen? Dann ist der Browser nicht aktuell genug, verwendet IE 9.0, Firefox, Opera, Chrome, Safari oder besser! Nutzern des IE könnte...
Aufrufe: 7334 - 23.11.2011 mehr

Wir programmieren Teil 9

Dieses ist der Teil 9 der Reihe. Hier geht es zum 8. Teil.Die Lösung für die Aufgabe habe ich als Applet heraufgeladen. Auch der Quellcode ist hier...
Aufrufe: 11031 - 05.08.2011 mehr

Wir programmieren Teil 8

Dieses ist der 8. Teil. Hier geht es zum 7. Teil.Erstmal zur Lösung:int[][] feld=new int[10][10];int[][] z=new int[10][10];int xs=0;int ys=0;//...
Aufrufe: 10977 - 05.08.2011 mehr

Wir programmieren Teil 7

Nachdem wir unser erstes Spiel programmiert haben, widmen wir uns nun weiteren sprachlichen Strukturen.Wir wollen [[Conways Spiel des Lebens]]...
Aufrufe: 11441 - 05.08.2011 mehr

Wir programmieren Teil 6

Dieses ist der 6. Teil der Reihe. Hier findet ihr den 5. Teil.Die Lösung und unser bisheriges Spiel findet ihr auf folgender Seite. Dort ist auch der...
Aufrufe: 11042 - 05.08.2011 mehr

Wir programmieren Teil 5

Dieses ist der 5. Teil der Reihe. Hier geht es zum 4. Teil.Aufgabe war es, die Fehler zu finden. Der 1. Fehler war einfach zu finden, das Programm ließ...
Aufrufe: 14061 - 04.08.2011 mehr

Wir programmieren Teil 4

Dieses ist der vierte Teil, hier geht es zum 3. Teil.Zuerst wie immer zur Lösung. Dieses mal ist meine Musterlösung ggf. schwieriger zu verstehen, da...
Aufrufe: 14121 - 03.08.2011 mehr

Wir programmieren Teil 2

Dieses ist der 2. Teil, hier gehts zum Einstiegsteil.Zuerst mal eine möglich Lösung der kleinen Aufgaben. Die Änderungen sind fett markiert und...
Aufrufe: 14746 - 02.08.2011 mehr

Wir programmieren

In dieser Beitragsreihe könnt Ihr in das Schreiben von Computerprogrammen einsteigen. Wenn ihr Lust habt mehr mit Eurem Computer zu tun als nur zu...
Aufrufe: 12195 - 02.08.2011 mehr

Wochenend-Bastelei es geht weiter

hwNach den doch recht schleppenden Beginn geht es nun doch vorwärts. Auf der Seite http://reactivision.sourceforge.net/ fand sich die benötigte Software und ich wagte...
Aufrufe: 8693 - 20.02.2011 mehr

Wochenend-Bastelei Multitouch-Table

hwManche Projekte dauern doch etwas länger. Nachdem ich mich letztes Wochenende um die Beleuchtung der Acrylglasplatte gekümmert hatte, geht es in dieser Woche um die...
Aufrufe: 10084 - 19.02.2011 mehr

Wochenend-Bastelei gescheitert (noch)

hwTja, so kann es gehen, da nehme ich mir mein nächstes Projekt vor, besorge die Materialien und dann schaffe ich es nicht am Samstag fertig zu werden und ich denke,...
Aufrufe: 11078 - 13.02.2011 mehr

Wochenend-Bastelei

hwLanges Wochenende und ebenso lange Weile? Da kann ich helfen, beim Stöbern nach Projekten für unsere Schule stieß ich auf folgendes YouTube-Video. Das können wir...
Aufrufe: 10797 - 29.01.2011 mehr