logo
MagyarEnglish

Programozási alapismeretek | Samu Bence - 2.óra
Tartalomjegyzék
Programozási alapismeretek | Samu Bence
1.óra
2.óra
3.óra
4.óra
Minden oldal

 

2.óra

Péda: random walker

 

float posX, posY, meret;

void setup()
{
  size(600, 400); 
 
  posX = random(width);
  posY = random(height);
  meret = random(5, 20);
}

void draw()
{
  posX += random(-5, 5); 
  posY += random(-5, 5);
 
  ellipse(posX, posY, meret, meret);  
}
 


Feltétel vizsgálat

 

void setup()
{
  size(600, 400);
  background(255, 255, 255);
}

void draw()
{
  if (mousePressed == true)
  {       
    float d = dist(pmouseX, pmouseY, mouseX, mouseY);
    fill(0, 0, 0, 20);
    noStroke();
    ellipse(mouseX, mouseY, d + 15, d + 15);
    fill(255, 255, 255);
    stroke(0);
    ellipse(mouseX, mouseY, d, d);
    line(pmouseX, pmouseY, mouseX, mouseY);
  }
}


Feltétel vizsgálat (összetett feltétel)

 

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

void draw()
{
  background(255, 255, 255);

  if (mouseX < 200)
  {
    // 0 - 199
    fill(255, 0, 0);
    ellipse(mouseX, mouseY, 50, 50);
  }   
  // ha az egerX nagyobb, mint 199 ES kisebb, mint 401, akkor...
  if (mouseX > 199 && mouseX < 401)
  {
    // 200 - 400
    fill(0, 0, 255);
    ellipse(mouseX, mouseY, 50, 50);
  }

  if (mouseX > 400)
  {
    // 401 - ....
    fill(0, 255, 0);
    ellipse(mouseX, mouseY, 50, 50);
  }
}
 


Egy egyszerű játék, egy összetettebb probléma szemléltetésére

 

float x, y;
float ellensegX, ellensegY;
int pontszam;

PFont font;

void setup ()
{
  size (600, 400);
 
  // kezdoertekek megadasa
  x = random (0, width);
  y = random (0, height);

  ellensegX = random (0, width);
  ellensegY = random (0, height);
  pontszam = 0;
 
  // font betoltese :: Tools->Create Font !!!
  font = loadFont ("Detonator-48.vlw");
  textFont (font);
  textSize (24);
}

void draw ()
{
  background (0, 100, 20);   
 
  // az ellenseg mozgatasa
  ellensegX += random (-2, 2);
  ellensegY += random (-2, 2);
 
  // az ellenseg es a jatekos nem hagyhatja el a kepernyot
  // ha ez tortenne a visszakerulnek az ellenkezo oldalra
 
  if ( x > width)
  {
    x = 0;
  }
  if (x < 0)
  {
    x = width;
  }
  if ( y > height)
  {
    y = 0;
  }
  if (y < 0)
  {
    y = height;
  }
  if ( ellensegX > width)
  {
    ellensegX = 0;
  }
  if (ellensegX < 0)
  {
    ellensegX = width;
  }
  if ( ellensegY > height)
  {
    ellensegY = 0;
  }
  if (ellensegY < 0)
  {
    ellensegY = height;
  }
 
  // pont szerzes, ha a jatekos es az ellenseg
  // kozotti tavolsag kevesebb mint 10 pixel
  // az ellenseg ujraszuletik egy veletlenszeru helyen
  if (dist(x, y, ellensegX, ellensegY) < 10 )
  {
    pontszam += 1;
    ellensegX = random (0, width);
    ellensegY = random (0, height);
  }
 
  // a grafika kirajzolasa
 
  // pontszamok
  fill (255, 255, 255);
  text ("pontszamok: " + pontszam, 10, 20 );

  // jatekos
  noStroke ();
  fill (0, 0, 0);
  ellipse (x, y, 10, 10);

  // ellenseg
  noStroke ();
  fill (255, 0, 0);
  ellipse (ellensegX, ellensegY, 5, 5);
}

// a keyPressed programresz akkor fut le, ha lenyomtunk egy billentyut
// ha a nyilakat nyomtuk le, a jatekos poziciojat
// novelni, vagy csokkenteni kell
void keyPressed ()

  if (keyCode == 37)
    //balra nyil
  {
    x -= 5;
  }
  if (keyCode == 39)
    //jobbra nyil
  {
    x += 5;
  }
  if (keyCode == 38)
    //lefele nyil
  {
    y -= 5;
  }
  if (keyCode == 40)
    //felfele nyil
  {
    y += 5;
  }
}