Datei:Drawing bodies.PNG
Originaldatei (1.548 × 854 Pixel, Dateigröße: 1,27 MB, MIME-Typ: image/png)
//////////////////////////////////////////////////////////////////// // S&&O SS2020 // course: *From Space to Space* //////////////////////////////////////////////////////////////////// // this sketch sends your mouse x,y coordinates to a shiftr namespace // and receives other mouse x,y coordinates from the same namespace // code based on example by Joël Gähwiler // https://github.com/256dpi/processing-mqtt ////////////////////////////////////////////////////////////////////
import mqtt.*; // import MQTT library MQTTClient client; // create instance of MQTTClient
//////////////////////////////////////////////////////////////////// ///////////////////// DECLARE GLOBAL VARIABLES ///////////////////// //////////////////////////////////////////////////////////////////// // !!! CHANGE p1 and p2 depending on which player you are !!! // String mePlayer = "/janne_multiplayer/orange/p2"; String otherPlayer = "/janne_multiplayer/orange/p1"; ////////////////////////////////////////////////////////////////////
int otherMouseX = 0; //for incoming values from other player's mouse xy int otherMouseY = 0; int otherPreviousMouseX = 0; //to keep track of last mouse position for drawing line int otherPreviousMouseY = 0;
long timeStamp; //to keep track of time int delayTime = 500/35; //for use to publish messages only every 35 milliseconds!
int mouseClick = 0; //used to toggle between background fade and no-fade PImage layout; PImage drawer; PImage drawer2; boolean showImage = false;
////////////////////////////////////////////////////////////////////
void setup() {
client = new MQTTClient(this); client.connect("mqtt://jannenora:Monkey47@broker.shiftr.io", "works"); size(800, 550); layout = loadImage("drops2.jpeg"); drawer = loadImage("jannesmall_character.png"); drawer2 = loadImage("waldgeister.png");
}
//////////////////////////////////////////////////////////////////// // RECEIVE // ////////////////////////////////////////////////////////////////////
void clientConnected() {
println("client connected"); client.subscribe(otherPlayer + "/xy");
}
void messageReceived(String topic, byte[] payload) {
if (topic.equals(otherPlayer + "/xy") == true) { // the incoming MQTT "message" is a String: "xValue,yValue" // to unpack it we use the "split" function: String incomingCoordinates = new String(payload); String[] xy = split(incomingCoordinates, ','); println("new message: " + topic + " x: " + xy[0] + " y: " +xy[1]); otherMouseX = int(xy[0]); otherMouseY = int(xy[1]); }
}
//////////////////////////////////////////////////////////////////// // SEND & DRAW my line // ////////////////////////////////////////////////////////////////////
//!only DRAW my line and publish my coordinates when my mouse moves: void mouseMoved() {
image(drawer, pmouseX, pmouseY, mouseX, mouseY); /*stroke(19, 120, 200); //set line colour R,G,B strokeWeight(10); //line thickness fill (356); ellipse (pmouseX, pmouseY, mouseX, mouseY);*/
//the MQTT connection will close if you send more than 25 operations per second! //so we implement a delay to SEND my coordinates only every xxx milliseconds: if (millis() - timeStamp > delayTime) { timeStamp = millis(); client.publish(mePlayer + "/xy", mouseX + "," + mouseY); // ("topic", "message") }
}
//////////////////////////////////////////////////////////////////// // DRAW other line // ////////////////////////////////////////////////////////////////////
void draw() {
if (mouseClick % 2 == 0) { tint(255, 100); //tint=tönen. gives the image transparency to slowly fade over line image(layout, 0, 0); } image(drawer2, pmouseX, pmouseY, mouseX, mouseY); /*stroke(10, 160, 230); //set line colour R,G,B strokeWeight(10); //line thickness line(otherPreviousMouseX, otherPreviousMouseY, otherMouseX, otherMouseY); */ otherPreviousMouseX = otherMouseX; otherPreviousMouseY = otherMouseY; //click mouse to turn on/off fade effect:
}
////////////////////////////////////////////////////////////////////
void mouseClicked() {
mouseClick++; println(mouseClick); if (mouseClick % 2 != 0) { image(layout, 0, 0); }
}
////////////////////////////////////////////////////////////////////
void connectionLost() {
println("connection lost");
}
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
---|---|---|---|---|---|
aktuell | 08:45, 6. Mai 2020 | 1.548 × 854 (1,27 MB) | Jnkummer (Diskussion | Beiträge) | //////////////////////////////////////////////////////////////////// // S&&O SS2020 // course: *From Space to Space* //////////////////////////////////////////////////////////////////// // this sketch sends your mouse x,y coordinates to a shiftr namesp… |
Du kannst diese Datei nicht überschreiben.
Dateiverwendung
Die folgende Seite verwendet diese Datei: