Skilyrðissetning hefur formið:
if(skilyrði){ skipanir }
Ef að skilyrðið innan svigans er satt eru allar skipanir innan slaufusviganna framkvæmdar. Dæmi:
if(mouseX>200){
ellipse( mouseX, mouseY, 50, 50);
}
Ef músin er 200 pixla eða lengra til hægri, er teiknaður hringur með miðju í staðsetningu músarinnar.
Hér er myndband frá Daniel Shiffman um skilyrðissetningar.Draw er í raun lúppa. Í forritinu hér fyrir neðan er bætt við x gildið í hvert skipti sem farið er í gegn um draw. Boltinn er teiknaður í staðsetningunni x og þess vegna er eins og hann færist yfir skjáinn. Smelltu músinni til þess að fá boltann aftur á upphafspunkt.
var x = 0;
function setup() {
createCanvas(200,200);
}
function draw() {
background(115);
fill(0,0,200);
//hringur teiknaður í x, 100:
ellipse(x, 100, 50,50);
//hringur færist um 1 til hægri
//í hvert skipti sem farið er í gegn um draw:
x = x+1;
}
Kóðinn hér fyrir neðan gerir nákvæmlega það sama og kóðinn hér fyrir ofan. Eini munurinn er að nú hefur verið búin til breytan xSpeed sem ákvarðar hversu mikið x eykst í hverju skrefi:
//x og xSpeed eru breytur (variables).
// x byrjar í 0 (vinstra megin á skjánum) en færist um 5 í hverju skrefi
var x = 0;
var xSpeed = 1;
function setup() { createCanvas(500,200);}
function draw() {
background(115);
fill(0,0,200);
ellipse(x, 100, 50,50);
x = x + xSpeed;
}
Þegar boltinn er á leið til hægri er x að aukast. Þegar boltinn ferðast til vinstri er x að minnka. xSpeed þarf að vera jákvæð tala þegar boltinn er á leið til hægri, en neikvæð tala þegar boltinn er á leið til vinstri. Það getum við gert með því að breyta formerkinu á xSpeed þegar boltinn er kominn út á enda. Bæta þarf eftirfarandi línum við inn í draw fallinu:
//ef boltinn er kominn út á enda hægra megin á hann að snúa við
if(x > width){
xSpeed = -1*xSpeed;
}
//ef boltinn er kominn út á enda vinstra megin á hann líka að snúa við!
if(x < 0){
xSpeed = -1*xSpeed;
}
}
Hér er myndbandið "bouncing ball" frá Daniel Shiffman.
Í staðinn fyrir að hafa tvær if setningar, getum við haft eina. Við viljum að boltinn snúi við ef x>width, eða ef x < 0. Þetta má skrifa sem:
if (x > width || x < 0 ) {
xSpeed = xSpeed * -1;
}
var x = 0; var y = 0;
var xSpeed = 1; var ySpeed = 2;
function setup() {createCanvas(500,200);}
function draw() {
background(115);
fill(0, 0,200);
ellipse(x, y, 50, 50);
x = x + xSpeed;
y = y +ySpeed;
if ((x > width) || (x < 0)) {
xSpeed = xSpeed * -1;
}
if ((y > height) || (y < 0)) {
ySpeed = ySpeed * -1;
}
}
Þegar hlutur fellur eykst hraði hans stöðugt á meðan hann er að falla, þar til lokahraða hans er náð. Þessu getum við náð fram með því að bæta við xSpeed í hverju skrefi:
var gravity = 0.15 //þetta fer efst. Passið að hafa punkt en ekki kommu! ySpeed = ySpeed + gravity; //þessi lína fer inn í draw.
var x = 0; var y = 0;
var xSpeed = 2; var ySpeed = 0;
var gravity = 0.15;
function setup() {createCanvas(500,200);}
function draw() {
background(115);
fill(0, 0,200);
ellipse(x, y, 50, 50);
x = x + xSpeed;
y = y +ySpeed;
ySpeed = ySpeed+gravity;
if ((x > width) || (x < 0)) {
xSpeed = xSpeed * -1;
}
//til að láta boltann skoppa þegar neðri rönd snertir
//skjáinn þarf að draga 25 frá height, því þvermál
//boltans er 50.
if (y > (height-25)) {
ySpeed = ySpeed * -0.9;
y = height-25; //til að boltinn festist ekki
}
}
Teiknið veru sem hreyfist um skjáinn. Fígúran ætti að nýta endShape og beginShape, en má að auki innihalda fleiri form. Fígúran ætti að vera teiknuð um x og y breyturnar, sem svo hreyfast um skjáinn. Upplýsingar um hvernig má nota endShape og beginShape er að finna í hlutanum um flóknari form og breytur .
Aukaverkefni: nota for lúppu til þess að teikna margar verur sem hreyfast um skjáinn.