Об'єкти користувача у середовищі Processing
Проект "Машинки"
Машинки (у вигляді графічного об'єкта прямокутник) рухаються по екрану по горизонтальній траєкторії

Властивості об'єкта:
Колір машинки
Координата Х
Координата У
Швидкість руху
Налаштування setup() - при створенні об'єкта
Надати машинці колір
Надати машинці місце розташування
Надати машинці швидкість
Малювання draw() - при оновленні робочої області
Замалювати попередній результат
Намалювати машинку заданого кольору в заданих координатах
Оновити координати відповідно до значень швидкості
| Processing | p5.js |
|---|---|
Клас Автомобіль
class Car {
color c;
float xpos;
float ypos;
float xspeed;
Конструктор об'єкта (опис властивостей)
Car (color tempC, float tempXpos, float tempYpos, float tempXspeed) {
c = tempC;
xpos = tempXpos;
ypos = tempYpos;
xspeed = tempXspeed;
}
Функціонал (методи)
Показати
void display() {
stroke(0);
fill(c);
rect(xpos,ypos,20,10);
}
Переміститись
void drive() {
xpos = xpos + xspeed;
if (xpos > width) { xpos = 0; }
}
}
|
class Car {
constructor(tempC, tempXpos, tempYpos, tempXspeed) {
this.c = tempC;
this.xpos = tempXpos;
this.ypos = tempYpos;
this.xspeed = tempXspeed;
}
display() {
stroke(0);
fill(this.c);
rect(this.xpos, this.ypos, 20, 10);
}
drive() {
this.xpos = this.xpos + this.xspeed;
if (this.xpos > width) {this.xpos = 0;}
}
}
|
Основний проект
| Processing | p5.js |
|---|---|
Car myCar;
void setup() {
size(400,400);
myCar = new Car(color(255,0,0),0,100,2);
}
void draw() {
background(255);
myCar.drive();
myCar.display();
}
|
let myCar;
function setup() {
createCanvas(windowWidth, windowHeight);
myCar = new Car(color(255, 0, 0), 0, 100, 2);
}
function draw() {
background(255);
myCar.drive();
myCar.display();
}
|
Для додавання нового об'єкта
| Processing | p5.js |
|---|---|
Оголосити
Car myCar2;Створити myCar2 = new Car(color(0,0,255),0,10,1);Запустити myCar2.drive(); myCar2.display(); |
Оголосити
let myCar2;Створити myCar2 = new Car(color(0,0,255),0,10,1);Запустити myCar2.drive(); myCar2.display(); |
Об'єкти можна зберігати у масиві.
| Processing | p5.js |
|---|---|
|
Оголошується масив cars об'єктів Car[], у якому резервується пам'ять під 10 таких об'єктів new Car[10]. Car[] cars = new Car[10]; Для створення цих об'єктів потрібно скористатись циклом: for (int i=0; i<10; i++) {
cars[i] = new Car(color(255,0,0),i*20,i*20,i+1);
}
Для обробки об'єктів теж потрібен цикл: for (int i=0; i<10; i++) {
cars[i].drive();
cars[i].display();
}
|
Достатньо вказати, що змінна є списком/масивом, не вказуючи розміру.
let cars = [];Цикл створення об'єктів: for (let i = 0; i < 10; i++) {
cars[i] = new Car(color(255, 0, 0), i * 10, i * 10, random() * 2);
}
Цикл обробки об'єктів: for (let i = 0; i < 10; i++) {
cars[i].drive();
cars[i].display();
}
|