1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| function setup() {
createCanvas(800,600)
background(200)
}
var xr=50 //coordonnée x du gros rond (personnage)
var yr=300 //coordonnée y du gros rond
var ballela=false //pas de balle tirée
//Controle des deplacements du gros rond au fleches directionnels
var rightPressed = false;
var leftPressed = false;
var upPressed= false;
var downPressed= false;
document.addEventListener("keydown", keyDownHandler, false);
document.addEventListener("keyup", keyUpHandler, false);
function keyDownHandler(e) {
if(e.keyCode == 39) {
rightPressed = true;
}
else if(e.keyCode == 37) {
leftPressed = true;
}
else if (e.keyCode ==40) {
upPressed = true;
}
else if (e.keyCode==38) {
downPressed=true
}
}
function keyUpHandler(e) {
if(e.keyCode == 39) {
rightPressed = false;
}
else if(e.keyCode == 37) {
leftPressed = false;
}
else if (e.keyCode==40) {
upPressed=false
}
else if (e.keyCode==38) {
downPressed=false
}
}
function rond(){ //gros rond
ellipse(xr,yr,50,50)
}
function curseur(){ //là ou on vise
ellipse(mouseX,mouseY,20,20)
}
function tir(){
xballe=xr //la balle part du gros rond
yballe=yr
if (!ballela) { //permet à la balle tirée de ne pas changer de direction
xbd=xr //xbd= coordonnée x de la balle au départ du tir
ybd=yr //ybd= coordonnée y de la balle au départ du tir
xba=mouseX //xba= coordonnée x de la balle à l'arrivé
yba=mouseY //yba= coordonnée y de la balle à l'arrivé
}
ballela=true //déclenchement du tir
}
function balle(){
if (ballela) { // si la balle est tirée
var dXM=sqrt(((xba-xbd)*(xba-xbd))+((yba-ybd)*(yba-ybd)))
//distance départ-arrivé
if (xballe<-5||yballe<-5||xballe>805||yballe>605) { //supression de la
ballela=false //balle si elle est
} //sortie du canvas
var tx=10*(xba-xbd)/dXM //avancement x de la balle
var ty=10*(yba-ybd)/dXM //avancement y de la balle
xballe=xballe+tx
yballe=yballe+ty
ellipse(xballe,yballe,5,5); //dessin de la balle
}
}
function draw() {
rect(0,0,799,599) //on efface tout
if(rightPressed) { // gros rond avance à droite
xr = xr+7;
}
if(leftPressed) { //gros rond avance à gauche
xr=xr-7;
}
if (upPressed) { //gros rond monte
yr=yr+7
}
if (downPressed) { //gros rond descend
yr=yr-7
}
rond()
curseur()
if (mouseIsPressed) { //quand on clique gauche
tir()
}
balle()
} |
Partager