Bonjour,
Je suis débutant en P5JS, et je cherche à créer un jeu multijoueur simple, comme petit projet.
Mon code n'est certes pas encore très concis, mais je veux juste un truc qui marche pour l'instant.
Le voici :
function setup() {
createCanvas (windowWidth-50,windowHeight-50)
translate(windowWidth/4,windowHeight/8)
x=y=40
a=b=560
e=u=j=f=i=o=0
frameRate=60
g=30
w=0
m=2
l=0
q=0
}
function draw() {
if (w==0){
dep()
}
if (w==1) {
aff()
chrono()
}
if (w==2) {
pixel()
clear()
}
function aff() {
strokeWeight(5)
noFill();
rect(2,2,595,595,30)
if (keyCode==81){
e=-2
u=0
}
if (x<=35) {
e=0
u=0
x++
}
if (keyCode==90){
u=-2
e=0
}
if (y<=35) {
u=0
e=0
y++
}
if (keyCode==68){
e=2
u=0
}
if (x>=565) {
e=0
u=0
x--
}
if (keyCode==83){
u=2
e=0
}
if (y>=565) {
u=0
e=0
y--
}
if (keyCode==37){
f=-2
j=0
}
if (a<=35) {
f=0
j=0
a++
}
if (keyCode==38){
j=-2
f=0
}
if (b<=35) {
j=0
f=0
b++
}
if (keyCode==39){
f=2
j=0
}
if (a>=565) {
f=0
j=0
a--
}
if (keyCode==40){
j=2
f=0
}
if (b>=565) {
j=0
f=0
b--
}
x=x+e
y=y+u
stroke(150,0,0) //y/2.5+75
fill(255,0,0) //abs(y/2.5-255)
ellipse(x,y,60,60)
noStroke()
ellipse(x,y,60,60)
a=a+f
b=b+j
stroke(0,0,150) //b/2.5+75
fill(0,0,255) //abs(b/2.5-255)
ellipse(a,b,60,60)
noStroke()
ellipse(a,b,60,60)
}
function chrono() {
textSize(50)
if (frameCount/60-floor(frameCount/60) == 0) {
fill(255)
rect(650,250,100,100)
fill(0)
text(g,650,300)
g--
}
if (g==-1) {
w=2
}
}
function fin() {
clear()
textSize(100)
fill(0)
text("Fin!",300,300)
}
function pixel() {
loadPixels()
for (i=10; i<600; i++) {
for (o=10; o<600; o++) {
updatePixels()
var r = get(i,o)
var col = color(r)
var l = red(col)
console.log(q)
if (l==150) {
q+=1
console.log(q)
}
}
}
}
function dep() {
for (m=2;m==2;m=+0) {
textSize(75)
text("Press F11 to start!",50,300)
if (keyCode==122) {
w=1
clear()
}
}
}
}
Donc l'idée est qu'une des deux boules est controlée par les touches zqsd et l'autre par les quatre fleches directionnelles.
Le jeu en soi est à peu près fonctionnel, mais j'ai essayé d'insérer une fonction pixel() qui compterait le nombre de pixels rouges et bleus afin de déduire le gagnant (celui qui a rempli le plus de surface).
Je ne sais pas trop comment m'y prendre, avec ce que j'ai essayé le jeu crash dès que la partie est finie.
Merci d'avance pour votre aide