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;
}