# Ellipse array moving

**URL:** <https://discourse.processing.org/t/ellipse-array-moving/18866>\
**Category:** Coding Questions\
**Created:** [March 21, 2020, 9:35am UTC](https://discourse.processing.org/t/ellipse-array-moving/18866 "2020-03-21T09:35:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![marika20](https://avatars.discourse-cdn.com/v4/letter/m/d26b3c/32.png) [@marika20](https://discourse.processing.org/u/marika20)\
**Post date:** [March 21, 2020, 9:35am UTC](https://discourse.processing.org/t/ellipse-array-moving/18866/1 "2020-03-21T09:35:36Z")

</div>

Ciao a tutti :occhiolino:  
nuovo imput progetto: sto cercando di far in modo che la ellipse(); si muova nelle mie caselle del’array utilizzando keyPressed() facendo in modo che il mio ipotetico personaggio non esca mai dall’array ne da destra ne da sinistra, io ho utilizzato in passato keyPressed() per un cambio calore ma mai per muoreve qualcosa…sono un pò in difficoltà :pensiero:  
Questo è il codice che ho scritto:

```auto
float randomNum;
boolean[] contenitore = new boolean [5];

float[] cellPos = {0, 0};  
float[] cellSize = {400/5, 400};  

float xPosition = 0;

color color1 = #2179db;
color color2 = #2621db;

void setup() {
  surface.setTitle("esercizio Array");
  size(400, 400);
  background(127);
  frameRate(1);
}

void draw() {
  for (int i = 0; i <contenitore.length; i++) {
    randomNum = random(100);
    if (randomNum < 50) {
      contenitore [i] = true;
    } else {
      contenitore[i] = false;
    }
    if (contenitore[i])
      fill(color1);
    else
      fill(color2);
    rect(i*80, 150, width/5, 80 );

    stroke(0);
  }

  fill(255);
  ellipseMode(CORNER);
  ellipse(xPosition * cellSize[0], 150, 80, 80); 

  printArrayValues();
}

void printArrayValues() {
  String s = "";
  for (int i=0; i<contenitore.length; i++) {
    s += "[" + i + "]" + contenitore[i] + "\t";
  }
  println(s);
}

void keyPressed() {
  if (keyCode == LEFT) {
    ellipse(xPosition+10 * cellSize[0], 150, 80, 80);
  } else {
    ellipse() = true;
  }
  if (keyCode == RIGHT) {
  }
}

```

Nella parte del keyPressed() mi esce l’errore quando inserisco ellipse() = true;…questo in teoria per far in modo che si muova in riferimento al true e false(?)  
Se qualcuno mi può dare una mano ne sarei grata 🤥

Grazie!

---

<div class="post-metadata">

**Author:** ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)\
**Post date:** [March 21, 2020, 9:56am UTC](https://discourse.processing.org/t/ellipse-array-moving/18866/2 "2020-03-21T09:56:24Z")

</div>

The function keyPressed is only called **briefly**. Therefore **no use** to display the ellipse there.  
It is enough to display it in draw().  
Instead in keyPressed change the value `xPosition` which you use in draw for the ellipse.

Warmest regards,

Chrisir

```auto
float randomNum;
boolean[] contenitore = new boolean [5];

float[] cellPos = {
  0, 0
};  
float[] cellSize = {
  400/5, 400
};  

int xPosition = 1;

color color1 = #2179db;
color color2 = #2621db;

void setup() {
  size(400, 400);

  surface.setTitle("esercizio Array");

  background(127);
  frameRate(1);
}

void draw() {
  for (int i = 0; i <contenitore.length; i++) {
    randomNum = random(100);
    if (randomNum < 50) {
      contenitore [i] = true;
    } else {
      contenitore[i] = false;
    }
    if (contenitore[i])
      fill(color1);
    else
      fill(color2);
    rect(i*80, 150, width/5, 80 );

    stroke(0);
  }//for

  //--------------
  fill(255);
  ellipseMode(CORNER);
  ellipse(xPosition * cellSize[0], 150, 
    80, 80); 

  //printArrayValues();
}//func 

void printArrayValues() {
  String s = "";
  for (int i=0; i<contenitore.length; i++) {
    s += "[" + i + "]" + contenitore[i] + "\t";
  }
  println(s);
}

void keyPressed() {
  if (keyCode == LEFT) { // <<<<<<<<<<<----------------------
    xPosition -= 1;
  } else if (keyCode == RIGHT) { // ----->>>>>>>>
    xPosition += 1;
  }

  // CHECK
  if (xPosition<0) {
    xPosition=0;
  }////if
  //
}//func
//

```

---

<div class="post-metadata">

**Author:** ![marika20](https://avatars.discourse-cdn.com/v4/letter/m/d26b3c/32.png) [@marika20](https://discourse.processing.org/u/marika20)\
**Post date:** [March 21, 2020, 1:39pm UTC](https://discourse.processing.org/t/ellipse-array-moving/18866/3 "2020-03-21T13:39:33Z")

</div>

Grazie, sei sempre molto gentile e disponibile, ti ringrazio per darmi sempre direttive giuste e per sostenermi ti sono davvero riconoscente.  
Grazie mille 🥰 😍

Saluti!
