blob: 74ee907d67d707b1bb33547f059eca155aeeeb44 [file]
#include <cstring>
#include "multiplayer.hpp"
#include "engine/multiplayer.hpp"
using namespace blit;
std::vector<std::string> messages;
void on_message(const uint8_t *data, uint16_t len) {
messages.push_back(std::string((const char *)data, len));
}
/* setup */
void init() {
message_received = on_message;
enable_multiplayer();
}
void render(uint32_t time_ms) {
screen.pen = Pen(0, 0, 0);
screen.clear();
screen.alpha = 255;
screen.pen = Pen(255, 255, 255);
screen.rectangle(Rect(0, 0, 320, 14));
screen.pen = Pen(0, 0, 0);
screen.text("Multiplayer Example", minimal_font, Point(5, 4));
screen.pen = Pen(64, 64, 64);
if(is_multiplayer_connected())
screen.text("Press A to send message.", minimal_font, Point(screen.bounds.w / 2, 16), true, TextAlign::top_center);
else
screen.text("Not connected!", minimal_font, Point(screen.bounds.w / 2, 16), true, TextAlign::top_center);
int y = 30;
for(auto &msg : messages) {
screen.text(msg, minimal_font, Point(0, y));
y += 10;
}
}
void update(uint32_t time_ms) {
static uint32_t last_buttons = buttons;
bool button_pressed = (buttons & Button::A) && !(last_buttons & Button::A);
if(button_pressed && is_multiplayer_connected()) {
auto msg = "This is a message!";
send_message((uint8_t *)msg, strlen(msg));
}
last_buttons = buttons;
}