Nano Hash - криптовалюты, майнинг, программирование

Обработка туио

привет, я новичок в обработке и пытаюсь понять, как заставить сферу двигаться слева направо, используя маркер вместо мыши. не могли бы вы мне помочь, пожалуйста? я могу использовать маркер, чтобы стрелять, но я не могу сдвинуть сферу, стреляя

import TUIO.*;
TuioProcessing tuioClient;
HashMap symbols=new HashMap();

PFont fontA;
int sphereDiameter = 50;
boolean shoot = false;

 float obj_size = 60;


 int randx()
 {
return int(random(600));
 }

 int[] sphereXCoords = { randx(), randx(), randx(), randx(), randx() };
 int[] sphereYCoords = { 0, 0, 0, 0, 0 };

 void setup()
{
size(1000,700);

tuioClient  = new TuioProcessing(this);
}

void draw()
{ 
Vector<TuioObject> tuioObjectList =tuioClient.getTuioObjects();
 Collections.sort(tuioObjectList, comp);

  for (TuioObject tobj:tuioObjectList) {
  fill(50, 50, 100);

  int id = tobj.getSymbolID();
  int x = tobj.getScreenX(width);
  int y = tobj.getScreenY(height);
  rect(x, y, obj_size, obj_size);

  String txt="?";
  if (symbols.containsKey(id)) {// if it's one in symbols, then look it up
  txt = (String)symbols.get(id);
  } 
  fill(255);
  text(txt, x, y);
  }   

 int[] sphereXCoords = { randx(), randx(), randx(), randx(), randx() };
      fill(100, 0, 0);
      // draw the answer box
    //  ellipse(answerX, answerY, obj_size, obj_size);
      fill(255);
      // write the answer text
    // text(""+answer, answerX, answerY);



  background(1);
  fill(color(255,255,0));
  stroke(color(0,255,0));
  triangle(mouseX-8, 580, mouseX+8, 580, mouseX, 565);
  fill(color(255,0,0));
  stroke(color(255,0,0));

if(shoot==true)
{
  sphereKiller( mouseX);
  shoot = false;
  }

  sphereDropper();
  //gameEnder();  
 }

   Comparator<TuioObject> comp = new Comparator<TuioObject>() {
   // Comparator object to compare two TuioObjects on the basis of their x position
 // Returns -1 if o1 left of o2; 0 if they have same x pos; 1 if o1 right of o2
 public int compare(TuioObject o1, TuioObject o2) {
  if (o1.getX()<o2.getX()) { 
    return -1;
    }  
  else if (o1.getX()>o2.getX()) { 
  return 1;
  }  
    else { 
  return 0;
  }
  }
  };

    void mousePressed()
   {
  shoot = true;
  }




  void sphereDropper()
  {  
  stroke(255);
  fill(255);

   for (int i=0; i<5; i++)
  {
  ellipse(sphereXCoords[i], sphereYCoords[i]++,
          sphereDiameter, sphereDiameter);

   }
  }

  void sphereKiller(int shotX)
  {
   boolean hit = false;
   for (int i = 0; i < 5; i++)
    {
     if((shotX >= (sphereXCoords[i]-sphereDiameter/2)) && 
        (shotX <= (sphereXCoords[i]+sphereDiameter/2)))
     {
      hit = true;
    line(mouseX, 565, mouseX, sphereYCoords[i]);
    ellipse(sphereXCoords[i], sphereYCoords[i],
            sphereDiameter+25, sphereDiameter+25);
    sphereXCoords[i] = randx();
    sphereYCoords[i] = 0;
  }    
  }

  if(hit == false)
  {
    line(mouseX, 565, mouseX, 0);
   }  

   }

     /* void gameEnder()
  {
   for (int i=0; i< 5; i++)
    {
    if(sphereYCoords[i]==600)
  {
    fill(color(255,0,0));
    noLoop();
    }
   }
     }*/

  void addTuioObject(TuioObject tobj) {


    }

 // called when an object is removed from the scene
     void removeTuioObject(TuioObject tobj) {
     }

/    / called when an object is moved
    void updateTuioObject (TuioObject tobj) {

  if(tobj.getSymbolID() == 32)
   {
    shoot = true;
   }
   }

   // called when a cursor is added to the scene
   void addTuioCursor(TuioCursor tcur) {
   }

  // called when a cursor is moved
  void updateTuioCursor (TuioCursor tcur) {


   }

   // called when a cursor is removed from the scene
  void removeTuioCursor(TuioCursor tcur) {
   }

   // called after each message bundle
   // representing the end of an image frame
   void refresh(TuioTime bundleTime) { 

  //redraw();
   }

  • как называется этот язык программирования? 16.12.2012
  • +1 за введение нового языка. 16.12.2012
  • Может кто-то помочь мне с этим? 16.12.2012
  • Вы можете задать этот вопрос на forum.processing.org. 19.12.2012
  • @user1907665 user1907665 Я не уверен, что лучше понимаю сферу с использованием маркера вместо мыши. Можете ли вы описать еще что-нибудь или показать скриншот того, что вы пытаетесь сделать? 25.12.2012

Ответы:


1

Что вы имеете в виду под словом "стрелять"?

Итак, у вас есть tuioClient, и вы инициализируете его в setup(). Это хорошо, потому что тогда методы обратного вызова (addTuioObject, removeTuioObject, updateTuioObject, addTuioCursor, updateTuioCursor, removeTuioCursor, Refresh) будут срабатывать всякий раз, когда ваш скетч получает сообщение TUIO.

Имейте в виду, что TUIO основан на OSC, который передается по UDP. Это означает, что трекер (reactivision & co) должен будет отправить на IP и порт, который слушает ваш скетч. Если оба находятся на одном компьютере, используйте 127.0.0.1 и порт 3333 (по умолчанию). Взгляните на примеры. Вы найдете их в процессе обработки «IDE», нажмите «Файл» -> «Примеры» и перейдите к «Добавленные библиотеки -> TUIO».

14.05.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..