Comutare navigație
pbInfo.ro
Probleme
Probleme - clasa a IX-a
Probleme - clasa a X-a
Probleme - clasa a XI-a
Probleme din concursuri
Căutare problemă
Exerciții
Programează cu Blockly
Desenează cu Processing
Exersează SQL
Soluţii
Resurse
Resurse pentru clasa a IX-a
Resurse pentru clasa a X-a
Resurse pentru clasa a XI-a
Subiecte bacalaureat
Ajutor
Autentificare
Înregistrare
×
Autentificare
Utilizator sau email
Parola
Acest site foloseşte cookies. Navigând în continuare, vă exprimaţi acordul asupra folosirii cookie-urilor.
Îti place pbInfo? Atunci acceptă-l cu totul! Dezactivează modulul de blocare a reclamelor!
×
Lista scripturi
Script Nou
Ajutor
"Snake {beta} --- Vararean Denis" - Processing
ID
Autor
Duplicat din
Ultima modificare
#3097
Vararean Denis ☕ (Vararean_Denis)
-
Vineri, 29 mai 2020, 09:17
class Snake { float x = 0; float y = 0; float xspeed = 1; float yspeed = 0; int total = 0; ArrayList
tail = new ArrayList
(); Snake() { } boolean eat(PVector pos) { float d = dist(x, y, pos.x, pos.y); if (d < 1) { total++; return true; } else { return false; } } void dir(float x, float y) { xspeed = x; yspeed = y; } void death() { for (int i = 0; i < tail.size(); i++) { PVector pos = tail.get(i); float d = dist(x, y, pos.x, pos.y); if (d < 1) { println("starting over"); total = 0; tail.clear(); } } } void update() { println(tail.size()); if (total > 0) { if (total == tail.size() && !tail.isEmpty()) { tail.remove(0); } tail.add(new PVector(x, y)); } x = x + xspeed*scl; y = y + yspeed*scl; x = constrain(x, 0, width-scl); y = constrain(y, 0, height-scl); } void show() { fill(127); for (PVector v : tail) { rect(v.x, v.y, scl, scl); } rect(x, y, scl, scl); } } Snake s; int scl = 20; PVector food; void setup() { size(600, 600); s = new Snake(); frameRate(10); pickLocation(); } void changeBG() { background(random(255)); } void pickLocation() { int cols = width/scl; int rows = height/scl; food = new PVector(floor(random(cols)), floor(random(rows))); food.mult(scl); } void draw() { background(255,255,255); if (s.eat(food)) { pickLocation(); } s.death(); s.update(); s.show(); fill(255,0,0); rect(food.x, food.y, scl, scl); } void keyPressed() { if (keyCode == 'W') { s.dir(0, -1); } else if (keyCode == 'S') { s.dir(0, 1); } else if (keyCode == 'D') { s.dir(1, 0); } else if (keyCode == 'A') { s.dir(-1, 0); } }
Duplicare
Executare
Cod
×
Cod HTML
<iframe sandbox="allow-scripts" src="/p5js/index.php?id=3097" style="width:408px; height:408px;border:solid 1px gray; overflow: scroll;"></iframe>
×
Duplicare script
Denumirea noului script
Du-te sus!