D.D.Tap - interaktive Spiel-Plattform mit Verarbeitung, Arduino und Twitter


Die D.D.Tap ist ein Spiel, die mit Sensoren verbunden mit Arduino und Schnittstelle, die es dem Spiel mit der Verarbeitung produziert gespielt werden kann. Es ist eine einfache Tanz Dance Revolution wie Spiel, Punkt ansammelt, wenn der Spieler die Sensoren aktiviert oder die Tasten der Tastatur betätigen, die zufällige Pfeile erreicht die rote Balken transparentere. Die Schaltung gebaut auf Arduino ist einfach, denn ich habe Sensoren beschränkt hatte. Ich habe die Photozellen in einer Pull-up-Konfiguration als Sensoren fungieren. Ich habe hochgeladen das Applet zu @http://www.openprocessing.org/visuals/?visualID=29670 , aber für die Twitter-Funktion arbeiten, geben Sie Ihren eigenen Verbraucher Schlüssel und So weiter Ihr OAuth-Konto auf http://dev.twitter.com/apps entnommen. Verladung auf openprocessing.org ist ziemlich lang, durch die große Datei so zu überspringen, drückst du "Source Code".
Auch ich das Lied yeahx3 von Chris Brown verwendet, da es den eingängigen Beat für die zufällige Pfeile hat ~

Das Ergebnis ist OK, aber ich möchte noch zum Beheben des Problems der mehr als eine Prämie für jeden Pfeil ansammeln. Dieses Problem war nicht so bedeutsam, wenn es mit der Tastatur gespielt, aber wenn seine Lesung serielle Daten aus den COM-Port, die Datenrate so schnell war, dass es Boni mehr als einmal für jeden Pfeil löst. Ich wäre froh, wenn jemand, mit der Verarbeitung-Codes helfen würde. Ich dachte, erstellen ein Array um die Boni zu überprüfen, aber das hat nicht gut funktioniert. Also, ich irgendwie halb dieses Problem gelöst mit Verzögerung in die Arduino-Code. Dies führte natürlich andere Probleme wie; Wenn beide Seiten des Pfeils zur gleichen Zeit erreicht, konnte nur ein Pfeilbonus in Anspruch genommen werden. Das Video zeigt das Beispiel der Interaktion und gäbe es ein neuen Highscore, die Partitur als Tweet auf Ihrer Seite veröffentlicht werden würde. Ich bin bereit, Anregungen Upgrade zu akzeptieren.

Hier ist der Code!!! Ohne die Twitter-Taste natürlich...
Gruppe der Pfeile
[] Zeiger Zeiger;
Boolescher Wert zurücksetzen = True;
Int Num;
öffentliche statische Schwimmer yPos, yPos2;

Twitter-Initialisierung
Tweet Twitter;

Serielle Kommunikation
Import processing.serial.*;
Serielle Schnittstelle;
Portname String = "COM1";
Int Baudrate = 9600;
Int lesen = 0;

PImage Bild, BlueButton, RedButton;
initialisieren Sie spielen für mp3
Import ddf.minim.*;
Minim Minim;
AudioPlayer ja;

Variablen zu initialisieren
PFont Schrift;
Int Ziel;
Int Ebene = 1;
Int Ergebnis = 0;
Int aufgezeichnet;
Int Leistung;
Boolesche gewinnen = False;
Boolescher Wert verlieren = False;
PrintWriter Ausgang;
String [] Datei;
Werte vom Typ String [];
Int [] Wert;

void setup() {}
Größe (600, 600);

Port zu initialisieren
Port = neue Seriennummer (diese, Portname, Baudrate);
println(Port);

Bild laden
Bild = loadImage("view.jpg");
BlueButton = loadImage("bluebutton.png");
RedButton = loadImage("redbutton.png");

Musik
Minim = new Minim(this);
Ja = minim.loadFile("yes.mp3");
Yes.Play();

Schriftart
Schriftart = loadFont("BerlinSansFB-Bold-48.vlw");
textFont(font);

Werte = loadStrings("Values.txt"); Belastungswerte
Wert = neue int[values.length];
für (Int ich = 0; ich < values.length; i ++) {}
println(Values);
Wert [i] = Integer.valueOf(values[i]).intValue(); String in Integer umwandeln
}

Datei = loadStrings("Highscore.txt"); vorherigen Datensatz zu laden
für (Int ich = 0; ich < file.length; i ++) {}
erfasst = Integer.valueOf(file[i]).intValue(); String in Integer umwandeln
}

frameRate(value[0]);
}

void draw() {}
yPos = 0; Pfeil-Position zurücksetzen
yPos2 = 0;
View(); Hintergrund-Design zeichnen

Stufe 1
Wenn (level == 1) {}
Wenn (Reset) {}
Make();
Ziel = Value [1];
}
Wenn ((millis() > = value[4]) & & (Partitur > = Ziel)) {}
Level = 2;
Reset = True;
Redraw();
}
ElseIf (millis() > = value[4]) {}
verlieren = True;
}
}
Stufe 2
ElseIf (Ebene == 2) {}
Wenn (Reset) {}
Make();
Ziel = Wert [2];
}
Wenn ((millis() > = value[5]) & & (Partitur > = Ziel)) {}
Level = 3;
Reset = True;
Redraw();
}
ElseIf (millis() > = value[5]) {}
verlieren = True;
}
}
Stufe 3
ElseIf (Ebene == 3) {}
Wenn (Reset) {}
Make();
Ziel = Wert [3];
}
Wenn ((millis() > = value[6]) & & (Partitur > = Ziel)) {}
gewinnen = True;
}
ElseIf (millis() > = value[6]) {}
verlieren = True;
}
}

Anweisungen
textSize(40);
Text ("Kontrollen", 410, 50);
textSize(20);
Text ("'a', linke \n'l zu schlagen", rechts zu schlagen ", 410, 100);
Zeichenfolge Beat = ("Ziel der Gäste:" + Ziel);
Text (Beat, 405, 200);
Text ("Ellapsed Zeit:", 410, 250);
Text (Millis () / 1000, 410, 280);
Untersuchung eine Zeichenfolge = ("Frühere Highscore:\n" + aufgenommen);
Text(beatH,410,320);

Ebene und score
Fill(0);
Ergebnis = Ergebnis + Leistung;
textSize(40);
Text ("Score", 420, 450);
Text (Score, 420, 480);
String-Lev = "Ebene" + Ebene;
Text (Lev, 420, 410);
Leistung = 0; Zurücksetzen der Leistung

Display-Pfeil
für (Int ich = 0; ich < Num; i ++) {}
(Zeiger [i] .arr); //make den Pfeil
Pointers[i].Motion();
}

Ausgang Kontrollen und Aktionen beim Spieler alle Runden beendet
Wenn (Win) {}
Füllung (255, 73, 73, 190);
textSize(80);
Text ("SIE gewinnen!!! \nPress ESC", 80, 300);
Speichern ("Tap Partitur" + Punkte + ".jpg"); kann verwendet werden, wenn Sie Anzeige auf ausgezeichnete speichern möchten

Vergleichen Sie gespeicherte Highscore und sparen Sie höchste Punktzahl
Wenn (Wert > = aufgezeichnet) {}
Fill(0);
Text ("\tNEW\nHIGHSCORE!!!", 20, 100);
Ausgang = createWriter("Highscore.txt");
Output.println(Score);
Output.Flush();
Output.Close();

senden Sie Ergebnis zu twitter
Twitter = neue tweet(score);
twitter.sendHighscore();
}
noLoop(); Stopp-Anzeige
}
ElseIf (verlieren) {}
Füllung (255, 73, 73, 190);
textSize(80);
Text ("SIE verlieren!!! \nTRY wieder: P ", 50, 350);
noLoop();
}
seriellen Port lesen
während (port.available () > 0) {}
portRead();
}
}

void stop() //stop Musik
{
Minim Audio-Klassen immer zu schließen, wenn Sie mit ihnen fertig
Yes.Close();
halten Sie immer Minim vor dem beenden
minim.Stop();
super.Stop();
}

void view() {//background design
Smooth();
noStroke();
Background(0); weißen Hintergrund festlegen
Image(Picture,0,0);
Füllung (151, 16, 201, 90); //purple bar
Quad (15, 450, 385, 450, 385, 490, 15, 490);
Füllung (2,56,242,30); //side bars
Quad (400, 10, 590, 10, 590, 590, 400, 590);
Fill(242,2,79,30);
Quad (405, 15, 585, 15, 585, 585, 405, 585);
Bild (BlueButton, 0,450);
Bild (RedButton, 200.450);
Fill(30);
}

void make() {//create Pfeile
NUM = Wert [7]; Anzahl der Pfeile
Reset = False;
Zeiger = neue Zeiger [Num];

Pfeile zu machen
für (Int ich = 0; ich < Num; i ++) {}
Hinweise [i] = neue Zeiger (Ebene); //make einen neuen Pfeil
}
Hintergrund (0); //show aktualisieren
Delay(2000);
}

void portRead() {//acts fast wie ein Interrupt, wenn Tasten gedrückt werden
Fill(255);
Lesen = port.read();
Wenn (lesen == 'A') {}
Ellipse (100, 550, 80, 80);
für (Int ich = 0; ich < pointers.length; i ++) {}
Wenn ((yPos > = 450)) {}
Leistung = 100;
}
}
}
ElseIf (lesen == 'B') {}
Ellipse (300, 550, 80, 80);
für (Int ich = 0; ich < pointers.length; i ++) {}
Wenn ((yPos2 > = 450)) {}
Leistung = 100;
}
}
}
Fill(30);
}

void keyPressed() {//acts in der Nähe einen Interrupt, wenn Tasten gedrückt werden
Wenn (Schlüssel == 'a') {}
Ellipse (100, 550, 80, 80);
Wenn ((yPos > = 450)) {}
Delay(5);
Leistung = 100;
}
}
ElseIf (Schlüssel == 'l') {}
Ellipse (300, 550, 80, 80);
Wenn ((yPos2 > = 450)) {}
Delay(5);
Leistung = 100;
}
}
}

Klasse-Zeiger
{
Schwimmer, links, rechts;
PVector pos, pos2;
PVector Vel;

Zeiger (Int V) {}
POS = neue PVector (100, Int (zufällige (-12000, 0)));
Pos2 = neue PVector (300, Int (zufällige (-12000, 0)));
Vel = neue PVector (0, (V * 2) + 3); nur verschieben in y-Richtung
}

void arr() {}
Fill(255);
strokeWeight(9);
Schlaganfall (54,83,234, 160); //vary Farben

Pfeil nach links
Wenn (pos.y < = 490) {}
Wenn (pos.y > = yPos) {}
yPos = pos.y;
}
beginShape();
Scheitelpunkt (pos.x-20, pos.y);
Scheitelpunkt (pos.x, pos.y-20);
Scheitelpunkt (pos.x, pos.y-10);
Scheitelpunkt (pos.x+10, pos.y-10);
Scheitelpunkt (pos.x+10, pos.y+10);
Scheitelpunkt (pos.x, pos.y+10);
Scheitelpunkt (pos.x, pos.y+20);
endShape(CLOSE);
}

Schlaganfall (13,242,2, 160); //vary Farben
Pfeil nach rechts
Wenn (pos2.y < = 490) {}
Wenn (pos2.y > = yPos2) {}
yPos2 = pos2.y;
}
beginShape();
Scheitelpunkt (pos2.x+20, pos2.y);
Scheitelpunkt (pos2.x, pos2.y+20);
Scheitelpunkt (pos2.x, pos2.y+10);
Scheitelpunkt (pos2.x-10, pos2.y+10);
Scheitelpunkt (pos2.x-10, pos2.y-10);
Scheitelpunkt (pos2.x, pos2.y-10);
Scheitelpunkt (pos2.x, pos2.y-20);
endShape(CLOSE);
}
}
void motion() {//move Pfeile
Pos.Add (Vel); //add der Geschwindigkeitsvektor in Ihrer position
Pos2.Add(VEL);
}
}

Klasse Tweet {}
Import twitter4j.conf.*;
Import twitter4j.internal.async.*;
Import twitter4j.internal.org.json.*;
Import twitter4j.internal.logging.*;
Import twitter4j.json.*;
Import twitter4j.internal.util.*;
Import twitter4j.management.*;
Import twitter4j.auth.*;
Import twitter4j.api.*;
Import twitter4j.util.*;
Import twitter4j.internal.http.*;
Import twitter4j.*;
Import twitter4j.internal.json.*;

String msg = "Tap Tap Spiel neue Highscore!!!:";
Boolescher Wert gesendet;
Int Highscore;

TwitterFactory Tf;

Tweet (Int Hscore) {}
Highscore = Hscore;
String ConsumerKey = "***";
String ConsumerSecret = "***";
String Oauth_token = "***";
String Oauth_token_secret = "***";

gesendet = False;

ConfigurationBuilder Cb = neue ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(ConsumerKey)
.setOAuthConsumerSecret(ConsumerSecret)
.setOAuthAccessToken(oauth_token)
.setOAuthAccessTokenSecret(oauth_token_secret);
TF = neue TwitterFactory(cb.build());
}

void sendHighscore() {}
Twitter Twitter = tf.getInstance();
versuchen Sie {}
Status-St = twitter.updateStatus (msg + Highscore + "auf" + getDateTime());
Println ("erfolgreich aktualisiert: [" + st.getText() + "].");
gesendet = True;
}
Catch (TwitterException e) {}
println(e.getStatusCode());
}
}

String getDateTime() {}
DateFormat DateFormat = neues SimpleDateFormat ("Yyyy-MM-Dd HH");
Datum = new Date();
Rückkehr dateFormat.format(date);
}
}

_____________________________________________________________________
Arduino Code

Int-LedPin = 13;
Int value1, value2;

void setup() {}
Serial.Begin(9600);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(ledPin,OUTPUT);
}

void loop() {}
Wert1 = analogRead(A0);
Value2 = analogRead(A1);

Wert1 = constrain(value1,0,1023);
Value2 = constrain(value2,0,1023);
Wert1 = map(value1,0,1023,0,1);
Value2 = map(value2,0,1023,0,1);

Wenn (Wert1 < = 10) {}
Serial.Print ("Wert1 =");
Serial.println(value1);
Serial.println("A");
}

Wenn (value2 < = 10) {}
Serial.Print ("Value2 =");
Serial.println(Value2);
Serial.println("B");
}
Delay(200);
}

Du musst zwei Txt-Dateien namens 'value' und Highscore erstellen "und wenn Sie die Codes zu lesen, sollten Sie wissen, wie viele es sind. Viel Glück!

In Verbindung stehende Artikel

Machen Sie eine Web verbunden Roboter (für ungefähr $500) (mit einem Arduino und Netbook)

Machen Sie eine Web verbunden Roboter (für ungefähr $500) (mit einem Arduino und Netbook)

diese Instructable zeigen Ihnen wie Sie Ihr eigenes Web verbunden Roboter (mit einem Arduino Mikrocontroller und Asus EeePC) zu bauen.Warum wollen Sie eine Web-Roboter angeschlossen? Natürlich mit zu spielen. Fahren Sie Ihren Roboter aus quer durch d
Einen RC-Servo-Motor mit einem Arduino und zwei momentanen Schalter Steuerung

Einen RC-Servo-Motor mit einem Arduino und zwei momentanen Schalter Steuerung

der Name ist Programm. Einen RC-Car-Servo-Motor mit einem Arduino und große Widerstände, Jumper Kabel und zwei taktile Schalter steuern. Ich habe dies am zweiten Tag bekam ich mein Arduino, so bin ich ziemlich stolz auf mich.Schritt 1: Teileliste Oka
Simon sagt Spiel gemacht mit Evive (Arduino Powered Embedded-Produkt)

Simon sagt Spiel gemacht mit Evive (Arduino Powered Embedded-Produkt)

Wie viel Spaß es zuerst sein wird, eine DIY Spiel zu machen und dann spielen sie Woth deine Freunde! Hier machen wir eine Spiel. Seinen Namen Simon Says. Wir haben dieses Spiel mit Evive gemacht. Die Codes werden auf sehr einfache Weise in Arduino ID
Mit einem Arduino und Python, Grundstück/Daten speichern

Mit einem Arduino und Python, Grundstück/Daten speichern

eine schnelle und einfache Möglichkeit zu sehen (und speichern) Daten, die mit einem Arduino auf Ihren Computer.(Hinweis: nicht die zuverlässigste Methode, aber es funktioniert gut genug)Materialien:-Arduino (Ich verwende eine Uno)-Computer (Ich habe
Gewusst wie: Temperatur sehr genau mit einem Arduino und das TSYS01-Temperatur-Sensor-Board zu messen.

Gewusst wie: Temperatur sehr genau mit einem Arduino und das TSYS01-Temperatur-Sensor-Board zu messen.

Während seines Studiums an der Universität waren wir als Teil der Kursarbeit in der Gestaltung einer Box mit sehr genauen Temperaturregelung herausgefordert. Wenn das Projekt gelingt, wurden mehrere Boxen gebaut und in einem Forschungsprojekt, die Un
Spielen die Franzosen kann können mit einem Arduino und Summer

Spielen die Franzosen kann können mit einem Arduino und Summer

Bonjour!Machen Sie Ihre Arduino Die Französisch können mit einem Summer spielen können. Keine Zange. Kein Feuer. Es ist so geradlinig, dass es so skandalös die Can Can ist impliziert.Diese instructable deckt einige einleitende Elektronik-Info, und ko
Machen einen portable Barcode-Scanner mit einem Arduino und ein Cuecat

Machen einen portable Barcode-Scanner mit einem Arduino und ein Cuecat

um die Wende des Jahrhunderts, gab es ein Unternehmen, deren Geschäftsmodell inklusive verlost Kostenlose Barcode-Scanner , die Tastaturen zu emulieren.    Eine relativ einfache mod, diese Cuecat Scanner entfernt die Verschlüsselung und machte sie zu
Machen einen hypnotischen Datenträger mit einem Arduino und kleine DC motor.

Machen einen hypnotischen Datenträger mit einem Arduino und kleine DC motor.

Meine Aufmerksamkeit wurde durch einen alten Film sah ich vor kurzem angehoben. Es zeigte sich eine rotierende Spirale-Festplatten, die Menschen in eine hypnotische Trance zu versetzen. Also beschloss ich, einen zu bauen. Natürlich hat meine "hypnoti
Motion-Tracker mit PIRs, Arduino und ein Servo

Motion-Tracker mit PIRs, Arduino und ein Servo

das ist meine Motion-tracking-Kopf mit vier PIRs (Passive Infrarot-Sensoren), ein Arduino Uno-Board und ein Servo.Es ist eine einfache Möglichkeit, den Eindruck zu erwecken, dass der Kopf (birdy) tatsächlich Bewegung folgt.Es ist ein sehr einfaches P
Fahren Sie einen Stepper Motor mit einem Arduino und einen Stepstick/Pololu A4988 Treiber

Fahren Sie einen Stepper Motor mit einem Arduino und einen Stepstick/Pololu A4988 Treiber

Es gibt mehrere Möglichkeiten, um einen Schrittmotor ausgeführt, und die beste Methode hängt von der Anwendung, der Motor und die Elektronik zur Verfügung. Für die Ausführung von eines Schrittmotors aus einem Arduino sind die wichtigsten Wege zu gehe
Kreative Diorama Beleuchtung mit dem Arduino und TLC5940

Kreative Diorama Beleuchtung mit dem Arduino und TLC5940

Ich bin interessiert an Model railroading vor ein paar Jahren. Es ist ein Hobby, das erfordert Kenntnisse in Präzision Malerei, Modellbau, Landschaft Design, Holzbearbeitung, Elektrotechnik und über ein Dutzend andere Fähigkeiten, die ich jetzt verge
Serielle Servo Controller w/Arduino - Steuerung von bis zu 12 Servos gleichzeitig mit dem Arduino und eine USB-Verbindung

Serielle Servo Controller w/Arduino - Steuerung von bis zu 12 Servos gleichzeitig mit dem Arduino und eine USB-Verbindung

ich werde zeigen, wie Sie Ihre Arduino verwenden um bis zu 12 Servos gleichzeitig mit minimalem Jitter zu steuern.  Über eine einfache serielle Schnittstelle können Sie die Position von bis zu 12 Servo-Kanälen steuern.  Bis zu 10 Snapshot Positionen
Lessons Learned Weile Gebäude ein nutzlos Box mit einem Arduino und ein Instructable

Lessons Learned Weile Gebäude ein nutzlos Box mit einem Arduino und ein Instructable

Also, ich fand ein Instructable auf der Website, die ziemlich gut schien. Sie sehen, nutzen die Kraft des Arduino nutzlos Box laufen wollte. Ich wollte es bauen und Programmieren mit den Instructable ich auf der Website fand. Nicht nur das, aber ich
Steuern Sie zwei LEDS mit einem Arduino und BitVoicer

Steuern Sie zwei LEDS mit einem Arduino und BitVoicer

Also ich will hier mehrere Dinge mit zwei LEDs mit der Spracherkennung zu tunIch verwende Bitvoicer es man kann hierSchritt 1: TeilelisteSo tue ich dies mit als wenig teilen wie ich kann, ist hier die Liste:Grüne LEDRote LEDSteckbrett1k WiderstandJum