D.D.Tap - plateforme de jeu Interactive à l’aide de la transformation, de Arduino et de Twitter

Le D.D.Tap est un jeu qui peut être joué à l’aide de capteurs reliés à l’Arduino et interface pour le jeu produite avec le traitement. C’est une révolution de danse de danse simple jeu qui accumule des points lorsque le joueur active les capteurs ou appuyez sur les touches du clavier lorsque les flèches au hasard atteint la barre rouge transparente. Le circuit intégré sur l’Arduino est simple car j’avais limité les capteurs. J’ai utilisé les cellules photoélectriques dans une configuration de pull-up pour agir en tant que capteurs. J’ai téléchargé l’applet trop @http://www.openprocessing.org/visuals/?visualID=29670 mais pour la fonction Twitter fonctionne, vous devez entrer votre propre clé de consommateur et ainsi de suite retenu sur votre compte OAuth sur http://dev.twitter.com/apps . Chargement sur openprocessing.org est assez longue à cause du fichier afin de l’ignorer, appuyez simplement sur "Code Source".
Aussi, j’ai utilisé l’yeahx3 de la chanson de Chris Brown car il a le rythme accrocheur pour les flèches au hasard ~

Le résultat est OK, mais je tiens encore à résoudre le problème d’accumuler plus d’un bonus pour chaque flèche. Ce problème n’était pas si important quand joue avec le clavier mais quand sa lecture des données série entre le port de com, le débit était si rapide qu’il déclenche des bonus plus d’une fois pour chaque flèche. Je serais heureux si quelqu'un pourrait aider avec les codes de traitement. J’ai pensé à créer un tableau pour vérifier les bonus, mais cela ne fonctionne pas très bien. Alors, j’ai en quelque sorte moitié résolu ce problème en utilisant le retard dans le code de l’Arduino. Cela a bien sûr présenté autres problèmes tels que ; Si les deux côtés de la flèche atteint en même temps, prime qu’une seule flèche pourrait être demandée. La vidéo montre l’exemple de l’interaction et que s’il y avait un nouveau record, le score serait affiché comme un tweet à votre page. Je suis prêt à accepter des suggestions de mise à niveau.

Voici le code!!! Sans le twitter touche bien sûr...
Groupe de flèches
pointeurs de pointeur de [] ;
Boolean réinitialiser = true ;
int num ;
public static float yPos, yPos2 ;

initialisation de Twitter
twitter Tweet ;

Communication série
Import processing.serial.* ;
Port série ;
String portname = « COM1 » ;
int baudrate = 9600 ;
lecture int = 0 ;

Photo de Byte, blueButton, rouge ;
initialiser le jeu pour mp3
Import ddf.minim.* ;
Minim minim ;
AudioPlayer Oui ;

initialiser des variables
PFont polices ;
int cible ;
int niveau = 1 ;
score d’int = 0 ;
int enregistrée ;
réalisation de l’int ;
victoire booléen = false ;
perdre du boolean = false ;
PrintWriter sortie ;
Fichier de chaîne [] ;
String [] values ;
int [] valeur ;

void setup() {}
taille (600, 600) ;

initialiser le port
port = nouvelle série (ce, portname, baudrate) ;
println(port) ;

charger l’image
image = loadImage("view.jpg") ;
blueButton = loadImage("bluebutton.png") ;
Rouge = loadImage("redbutton.png") ;

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

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

valeurs = loadStrings("Values.txt") ; valeurs de charges
valeur = int[values.length nouveau] ;
pour (int i = 0; i < values.length; i ++) {}
println(values) ;
valeur [i] = Integer.valueOf(values[i]).intValue() ; Convertit une chaîne en entier
}

fichier = loadStrings("Highscore.txt") ; chargement précédent record
pour (int i = 0; i < file.length; i ++) {}
enregistré = Integer.valueOf(file[i]).intValue() ; Convertit une chaîne en entier
}

frameRate(value[0]) ;
}

{} void draw()
yPos = 0 ; réinitialiser l’emplacement de la flèche
yPos2 = 0 ;
View() ; dessiner le design fond

niveau 1
Si (niveau == 1) {}
Si {(reset)
Make() ;
cible = valeur [1] ;
}
Si ((millis() > = value[4]) & & (score > = target)) {}
Level = 2 ;
Reset = true ;
Redraw() ;
}
ElseIf (millis() > = {value[4])}
perdre = true ;
}
}
niveau 2
ElseIf (niveau == 2) {}
Si {(reset)
Make() ;
cible = valeur [2] ;
}
Si ((millis() > = value[5]) & & (score > = target)) {}
Level = 3 ;
Reset = true ;
Redraw() ;
}
ElseIf (millis() > = {value[5])}
perdre = true ;
}
}
niveau 3
ElseIf (niveau == 3) {}
Si {(reset)
Make() ;
cible = valeur [3] ;
}
Si ((millis() > = value[6]) & & (score > = target)) {}
gagner = true ;
}
ElseIf (millis() > = {value[6])}
perdre = true ;
}
}

instructions
textSize(40) ;
texte (« contrôles », 410, 50) ;
textSize(20) ;
texte ("« a » pour frapper à gauche \n'l' droit de frapper", 410, 100) ;
Battement de chaîne = ("score cible:" + cible) ;
texte (beat, 405, 200) ;
texte ("temps d’Ellapsed:", 410, 250) ;
texte (millis () / 1000, 410, 280) ;
String beatH = ("Highscore:\n précédente" + enregistré) ;
Text(beatH,410,320) ;

niveau et score
Fill(0) ;
score = score + réalisation ;
textSize(40) ;
texte ("Score", 420, 450) ;
texte (score, 420, 480) ;
Chaîne de lev = "niveau" + niveau ;
texte (lev, 420, 410) ;
réalisation = 0 ; réinitialiser la réalisation

flèche de l’affichage
pour (int i = 0; i < num; i ++) {}
pointeurs [i] .arr (); //make la flèche
Pointers[i].Motion() ;
}

Sortie des contrôles et des actions lorsque le joueur termine les manches
Si {(win)
remplissage (255, 73, 73, 190) ;
textSize(80) ;
texte ("vous gagnez!!! \nPress ESC", 80, 300) ;
enregistrer (« Tap score » + score + « .jpg ») ; peut être utilisé si vous souhaitez enregistrer l’affichage à gagner

comparer les meilleurs scores stockée et enregistrer le score le plus élevé
Si (score > = enregistré) {}
Fill(0) ;
texte ("\tNEW\nHIGHSCORE!!!", 20, 100) ;
sortie = createWriter("Highscore.txt") ;
output.println(score) ;
output.Flush() ;
output.Close() ;

Envoyer le résultat à twitter
Twitter = new tweet(score) ;
twitter.sendHighscore() ;
}
noLoop() ; arrêter l’affichage
}
ElseIf (perdre) {}
remplissage (255, 73, 73, 190) ;
textSize(80) ;
texte (« vous perdez!!! \nTRY encore une fois: P ", 50, 350) ;
noLoop() ;
}
lire le port série
tandis que (port.available () > 0) {}
portRead() ;
}
}

stop() Sub //stop musique
{
toujours fermer les classes audio Minim lorsque vous avez terminé avec eux
Yes.Close() ;
toujours arrêter Minim avant de repartir
minim.Stop() ;
Super.Stop() ;
}

view() Sub {//background conception
Smooth() ;
noStroke() ;
Background(0) ; mettre le fond blanc
image(Picture,0,0) ;
remplissage (151, 16, 201, 90); //purple bar
Quad (15, 450, 385, 450, 385, 490, 15, 490) ;
remplissage (2,56,242,30); //side barres
Quad (400, 10, 590, 10, 590, 590, 400, 590) ;
Fill(242,2,79,30) ;
Quad (405, 15, 585, 15, 585, 585, 405, 585) ;
image (blueButton, 0,450) ;
image (rouge, 200 450) ;
Fill(30) ;
}

void make() {//create flèches
num = valeur [7] ; nombre de flèches
reset = false ;
pointeurs = nouveau pointeur [num] ;

faire des flèches
pour (int i = 0; i < num; i ++) {}
pointeurs [i] = nouveau pointeur (niveau); //make une nouvelle flèche
}
arrière-plan (0); actualisation //show
Delay(2000) ;
}

void portRead() {//acts presque comme une interruption quand les touches sont enfoncées
Fill(255) ;
lire = port.read() ;
Si (lecture == « A ») {}
ellipse (100, 550, 80, 80) ;
pour (int i = 0; i < pointers.length; i ++) {}
Si ((yPos > = 450)) {}
réalisation = 100 ;
}
}
}
ElseIf (lecture == « B ») {}
ellipse (300, 550, 80, 80) ;
pour (int i = 0; i < pointers.length; i ++) {}
Si ((yPos2 > = 450)) {}
réalisation = 100 ;
}
}
}
Fill(30) ;
}

keyPressed() Sub {//acts près une interruption quand les touches sont enfoncées
Si (clé == « a ») {}
ellipse (100, 550, 80, 80) ;
Si ((yPos > = 450)) {}
Delay(5) ;
réalisation = 100 ;
}
}
ElseIf (clé == « l ») {}
ellipse (300, 550, 80, 80) ;
Si ((yPos2 > = 450)) {}
Delay(5) ;
réalisation = 100 ;
}
}
}

pointeur de classe
{
flotteur gauche, droite ;
PVector pos, pos2 ;
Vel PVector ;

pointeur (int v) {}
POS = new PVector (int 100, (au hasard (-12000, 0))) ;
POS2 = new PVector (int 300, (au hasard (-12000, 0))) ;
vel = new PVector (0, (v * 2) + 3) ; seulement se déplaçant dans la direction y
}

void arr() {}
Fill(255) ;
strokeWeight(9) ;
accident vasculaire cérébral (54,83,234, 160); //vary couleurs

flèche vers la gauche
Si (pos.y < = 490) {}
Si (pos.y > = yPos) {}
yPos = pos.y ;
}
beginShape() ;
vertex (pos.x-20, pos.y) ;
vertex (pos.x, pos.y-20) ;
vertex (pos.x, pos.y-10) ;
vertex (pos.x+10, pos.y-10) ;
vertex (pos.x+10, pos.y+10) ;
vertex (pos.x, pos.y+10) ;
vertex (pos.x, pos.y+20) ;
endShape(CLOSE) ;
}

accident vasculaire cérébral (13,242,2, 160); //vary couleurs
flèche vers la droite
Si (pos2.y < = 490) {}
Si (pos2.y > = yPos2) {}
yPos2 = pos2.y ;
}
beginShape() ;
vertex (pos2.x+20, pos2.y) ;
vertex (pos2.x, pos2.y+20) ;
vertex (pos2.x, pos2.y+10) ;
vertex (pos2.x-10, pos2.y+10) ;
vertex (pos2.x-10, pos2.y-10) ;
vertex (pos2.x, pos2.y-10) ;
vertex (pos2.x, pos2.y-20) ;
endShape(CLOSE) ;
}
}
void motion() {//move flèches
pos.Add (vel); //add le vecteur de vitesse à votre position
POS2.Add(vel) ;
}
}

classe 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 jeu nouveau record!!!:" ;
Boolean envoyé ;
highscore int ;

TwitterFactory tf ;

Tweet {(int hscore)
meilleur score = hscore ;
String ConsumerKey = "***" ;
String ConsumerSecret = "***" ;
String oauth_token = "***" ;
String oauth_token_secret = "***" ;

envoyé = false ;

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

void sendHighscore() {}
Twitter twitter = tf.getInstance() ;
try {}
Statut st = twitter.updateStatus (msg + record + « au » + getDateTime()) ;
println ("avec succès mis à jour: [" + st.getText() + "].") ;
envoyé = true ;
}
{} catch (TwitterException e)
println(e.getStatusCode()) ;
}
}

String getDateTime() {}
DateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-JJ hh : mm:") ;
Date date = new Date() ;
Return dateFormat.format(date) ;
}
}

_____________________________________________________________________
Code de l’Arduino

int ledPin = 13 ;
int valeur1, valeur2 ;

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

void loop() {}
valeur1 = analogRead(A0) ;
value2 = analogRead(A1) ;

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

Si (value1 < = 10) {}
Serial.Print ("Value1 =") ;
Serial.println(value1) ;
Serial.println("A") ;
}

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

Vous devez créer deux fichiers txt nommés « valeur » et meilleurs scores ' et si vous lisez les codes, vous devez savoir combien de champs il existe. Bonne chance!

Mots clés: Twitter, Arduino, Jeu, Traitement

Articles Liés

Simon dit jeu fait à l’aide de Evive (produit embarqué alimenté Arduino)

Simon dit jeu fait à l’aide de Evive (produit embarqué alimenté Arduino)

Comment s'amuser il sera tout d'abord de faire un bricolage jeu et puis lisez-le woth vos amis ! Donc ici, nous allons faire un jeu. Son nom Simon Says. Nous avons fait ce jeu en utilisant evive. Les codes sont élaborés de façon très simple en IDE Ar
Comment créer un jeu interactif de la Fiction comme « Zork »

Comment créer un jeu interactif de la Fiction comme « Zork »

Bonjour à tous!Se rappeler le bon vieux temps, quand il a été impossible d'avoir plus d'une couleur sur un écran et aucun graphique du tout ? Au début des années 80, une série de jeux d'aventure textuels, la série Zork où créé par une compagnie appel
Jeu interactif de Simon Says

Jeu interactif de Simon Says

je ne me souviens pas tout à fait comment ce jeu évolué mais la principale motivation derrière c'est pour améliorer le traitement cognitif et attention en obtenant les joueurs à se concentrer sur une séquence de coups de batterie, puis répétez cette
Plateformes de jeu d’échecs pour le roi de la colline

Plateformes de jeu d’échecs pour le roi de la colline

lorsque vous utilisez un programme de CAO, nous préférons utiliser OnShape, mais vous pouvez utiliser ce que vous voulez tant qu'il peut fonctionner en conjonction avec la coupe au laser. Faisant des projets dans les studios de l'autre partie, vous d
Facile Duct Tape DS cas jeu

Facile Duct Tape DS cas jeu

dans ce instructable je veux vous montrer comment faire un cas de jeu ds facile et simpliste de ruban adhésif en toile, veuillez noter que vous pouvez éditer votre création que vous avancez, selon vos besoins:)J'ai eu ce idée à partir à la recherche
Jeu interactif de voyant rouge voyant vert dans une courtepointe

Jeu interactif de voyant rouge voyant vert dans une courtepointe

Cette courtepointe est un jeu de lumière rouge vert lumière entièrement fonctionnel.  Quelle est la lueur pourpre, demandez-vous ? Disco ! Chaque témoin s'allume au hasard pendant un temps aléatoire. Si le voyant rouge est allumé et un joueur se dépl
Smartboard interactive à l’aide de la Wiimote

Smartboard interactive à l’aide de la Wiimote

Il s'agit d'un manuel de construction d'un smartboard avec un stylo infrarouge et une télécommande Wii. Cette instructable est liée à l'instructable de soi fait stylo infrarouge ().Nous utilisons ce stylo IR pour interagir avec un Smartboard. Nous av
Souris - contrôleur de jeu ou d’aide à la déficience de la tête

Souris - contrôleur de jeu ou d’aide à la déficience de la tête

Mes enfants voulaient avoir une tête souris contrôlée pour Minecraft jeu - ils ont voulu déplacer leurs têtes et ont le champ de vision se déplacer. J'ai décidé que c'était un défi que je ne pouvais pas résister, alors j'ai décidé de construire une m
Contrôleur de jeu Bluetooth avec accéléromètre et Arduino

Contrôleur de jeu Bluetooth avec accéléromètre et Arduino

Tout le monde aime jouer à des jeux sur PC:) Consoles de jeux les prennent au prochain niveau et quoi de plus amusant que de faire un vous-même ? Ici, nous avons construit une console de jeu avec l'accéléromètre, Arduino et Bluetooth. L'accéléromètre
Makey Makey histoire Interactive à l’aide de Scratch !

Makey Makey histoire Interactive à l’aide de Scratch !

Instructions sur la façon de faire une histoire interactive sur zéro en utilisant Makey Makey et surtout votre imagination !Étape 1: Rassembler toutes les fournitures nécessaires.Fournitures nécessaires comprennent :Kit Makey MakeyOrdinateur (un ordi
Ponghatduino : Jeu pong à l’aide de votre chapeau

Ponghatduino : Jeu pong à l’aide de votre chapeau

alors que ce n'est pas exactement la OCZ NIA. Le Pong-chapeau-duino est la façon de jouer à pong en utilisant seulement la puissance de votre esprit. Eh bien, vos sourcils quand même...Il s'agit essentiellement d'une modification du projet Monski Pon
Interactive Rack de tissu (à l’aide de la Raspberry Pi, Arduino Pro Mini et Bluetooth HC-05)

Interactive Rack de tissu (à l’aide de la Raspberry Pi, Arduino Pro Mini et Bluetooth HC-05)

Il s'agit de mon premier Instructable ! Alors si j'ai commis une quelconque erreur, s'il vous plaît pardonnez-moi:)Le but est de donner aux clients une toute nouvelle expérience lors de vos achats.Chaque vibration que clients font en choisissant les
Jouer à jeu pc à l’aide de votre casque vr

Jouer à jeu pc à l’aide de votre casque vr

Bonjour, aujourd'hui je vais vous montrer comment jouer pc jeux vous aide casque vr.Les liens de téléchargement : google playstore : https://play.google.com/store/apps/de...Client PC: https://s3-eu-west-1.amazonaws.com/ma... ou https://s3-eu-west-1.a
The NeoBoard

The NeoBoard

Le NeoBoard est une planche de 16 x 16 pixels qui affiche les différentes animations et images. Ce projet a été inspiré par les autres pixels-Conseil style écrans similaires, tels que le PixelBrite et le Cadre de jeu.Étape 1: Spécifications, matériau