Projektgalerie

   Info

Name: Robo-Studio

   Steuerung/Beschreibung

W, A, S, D

Klicke auf das Spielfeld. Sobald sich die Spielfigur bewegt, bewegt sich auch der Gegner. Sammle so viele Rubine wie möglich. Das Spiel hat kein Ende.

   Code (Auszug);


image(bg_image, width / 2, height / 2, width, height);

// ---Player---
image(player_image, playerX, playerY);

// --- Coin ---
image(coin_image, coinX, coinY);

// --- Kollision mit Coin ---
if (playerX > (coinX - 20) && playerY > (coinY - 30) &&
  playerX < (coinX + 20) && playerY < (coinY + 30)) { coinX = random(20, width - 20); coinY = random(20, height - 20); score = score + 1; if (score > highscore) {
    highscore = highscore + 1;
  }
}

// --- Kollision mit Gegner ---
if (playerX > (enemyX - 40) && playerY > (enemyY - 40) &&
  playerX < (enemyX + 40) && playerY < (enemyY + 40)) {
  playerX = 40;
  playerY = 40;
  score = 0;
}

// --- eigene Funktionen aufrufen ---
eingabe();
enemy();

// ---Punkte anzeigen---
fill('#fff')
textSize(22);
textAlign(CENTER);
text('Punkte: ' + score, width / 2 - 100, height - 10);
text('Rekord: ' + highscore, width / 2 + 100, height - 10);
}

   Info

Name: Robo-Studio

   Steuerung/Beschreibung

Idee dieser Übung: Eine Ebene mit einer selbst-erstellten Textur belegen. 2 Würfel mit einer selbst-programmierten Textur belegen. Eine Schrift erzeugen und mit Textur belegen. Die Schrift dreidimensional machen. Zu allem eine interessante Kamera-Einstellung finden.

   Code (Auszug);


function setup() {
  createCanvas(500, 500, WEBGL);
  background(120);
  angle = 0;
  pg1 = createGraphics(200, 200);
  for (let i = 0; i < 10; i++) {
    for (let j = 0; j < 10; j++) {
      if (j % 2 === 0 && i % 2 === 0) pg1.fill(0);
      if (j % 2 === 0 && i % 2 === 1) pg1.fill(255);

      if (j % 2 === 1 && i % 2 === 1) pg1.fill(0);
      if (j % 2 === 1 && i % 2 === 0) pg1.fill(255)

      pg1.square(i * 20, j * 20, 20)
    }
  }

  // texture(pg1);
  pg2 = createGraphics(200, 200);
  pg2.background(0);
  for (let i = 0; i < 11; i++) {
    if (i % 2 === 0) {
      pg2.stroke(0);
      pg2.fill(0);
    } else {
      pg2.stroke(255);
      pg2.fill(255);
    }
    pg2.circle(100, 100, 200 - i * 20)
  }

  // texture(pg2);
  pg3 = createGraphics(600, 600);
  pg3.background(0);
  for (let i = 0; i < 30; i++) {
    if (i % 2 === 0) {
      pg3.stroke(0);
      pg3.fill(0);
    } else {
      pg3.stroke(255);
      pg3.fill(255);
    }
    pg3.rect(0, 600 - i * 20, width, 20)
  }
}

   Info

Name: Robo-Studio

   Steuerung/Beschreibung

Tastensteuerung:
W = Vorwärts, A = Links, S=Start/Restart, D=Rechts, F= Feuer

Um die Tastensteuerung zu aktivieren, musst Du ins Spielfeld klicken. Starte mit S

   Code (Auszug);


function draw() {
  background(0, 0, 130);
  //Sterne
  for (let i = 0; i < 400; i = i + 1) { stars[i].show(); stars[i].move() } //Laser only for (let i = lasers.length - 1; i >= 0; i--) {
    lasers[i].display();
    lasers[i].update();
    if (lasers[i].offScreen()) lasers.splice(i, 1);
    else {
      for (let j = asteroids.length - 1; j >= 0; j--) {
        if (lasers[i].hits(asteroids[j])) {
          score++;
          let newAsteroids = asteroids[j].breakup();
          if (newAsteroids !== undefined) {
            asteroids = asteroids.concat(newAsteroids);
          }
          asteroids.splice(j, 1);
          lasers.splice(i, 1);
          break;
        }
      }
    }
  }
  rakete.update();
  rakete.display();
  rakete.checkKeys();

  for (let i = 0; i < asteroids.length; i++) {
    //Hier kommt die Kollision mit dem Schiff rein.
    asteroids[i].display();
    if (rakete.hits(asteroids[i])) {
     textSize(80);
      fill(255)
      text("VERLOREN ! ! !",width/2-250,height/2)
      noLoop();
    }
  }

   Info

Name: Robo-Studio

   Steuerung/Beschreibung

Kleine Übung zum Thema Rotation. 2 Ebenen mit Rechtecken rotieren mit unterschiedlicher Geschwindigkeit.

   Code (Auszug);


let winkel, winkelGeschwindigkeit;

function setup() {
  createCanvas(500, 500);
  strokeWeight(8);
  noFill();
  winkel = 0;
  winkelGeschwindigkeit = 0.005;
  rectMode(CENTER)
}

function draw() {
  background(220);

  push();
  translate(width / 2, height / 2);
  rotate(winkel);
  for (let i = 0; i < 50; i++) {
    rect(0, 0, 20 + i * 30, 20 + i * 30);
  }
  pop();

  push();
  translate(width / 2, height / 2);
  rotate(winkel / 2);
  for (let i = 0; i < 50; i++) {
    rect(0, 0, 20 + i * 30, 20 + i * 30);
  }
  pop();

  winkel = winkel + winkelGeschwindigkeit;
}
Menü