Update added propeller, birds and boxes
This commit is contained in:
@ -7,8 +7,9 @@
|
||||
<script src="libraries/p5.sound.min.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript" src="libraries/matter.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="physics.js"></script>
|
||||
<script src="sketch.js" type="text/javascript"></script>
|
||||
<script language="javascript" type="text/javascript" src="physics.js"></script>
|
||||
|
||||
|
||||
<style> body {padding: 0; margin: 0;} canvas {vertical-align: top;} </style>
|
||||
</head>
|
||||
|
||||
@ -16,13 +16,21 @@ function drawGround(){
|
||||
////////////////////////////////////////////////////////////////
|
||||
function setupPropeller(){
|
||||
// your code here
|
||||
propeller = Bodies.rectangle(150, 480, 200, 15, {isStatic: true, angle: 0});
|
||||
World.add(engine.world, [propeller]);
|
||||
}
|
||||
////////////////////////////////////////////////////////////////
|
||||
//updates and draws the propeller
|
||||
function drawPropeller(){
|
||||
Body.setAngle(propeller, angle);
|
||||
Body.setAngularVelocity(propeller, angleSpeed);
|
||||
push();
|
||||
// your code here
|
||||
fill(255);
|
||||
//translate(propeller.position.x, propeller.position.y);
|
||||
//rotate(propeller.angle);
|
||||
drawVertices(propeller.vertices);
|
||||
pop();
|
||||
angle += angleSpeed;
|
||||
}
|
||||
////////////////////////////////////////////////////////////////
|
||||
function setupBird(){
|
||||
@ -35,19 +43,47 @@ function setupBird(){
|
||||
////////////////////////////////////////////////////////////////
|
||||
function drawBirds(){
|
||||
push();
|
||||
//your code here
|
||||
for (let i = 0; i < birds.length; i++)
|
||||
{
|
||||
drawVertices(birds[i].vertices);
|
||||
if(isOffScreen(birds[i]))
|
||||
{
|
||||
World.remove(engine.world, birds[i]);
|
||||
birds.splice(i, 1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
pop();
|
||||
console.log("# Birds: ", birds.length);
|
||||
console.log("# World Bodies: ", engine.world.bodies.length);
|
||||
}
|
||||
////////////////////////////////////////////////////////////////
|
||||
//creates a tower of boxes
|
||||
function setupTower(){
|
||||
//you code here
|
||||
boxes = Composites.stack(500, 100, 3, 6, 0, 0,
|
||||
function(x,y){
|
||||
let partA = Bodies.rectangle(x, y, 80, 80, {density: 0.001});
|
||||
colors.push(Math.trunc(random(100, 255)));
|
||||
return Body.create({parts: [partA]});
|
||||
});
|
||||
Composite.add(engine.world, [boxes]);
|
||||
}
|
||||
////////////////////////////////////////////////////////////////
|
||||
//draws tower of boxes
|
||||
function drawTower(){
|
||||
push();
|
||||
//your code here
|
||||
for (let i = 0; i < boxes.bodies.length; i++) {
|
||||
fill(0, colors[i], 0);
|
||||
noStroke();
|
||||
drawVertices(boxes.bodies[i].vertices);
|
||||
if(isOffScreen(boxes.bodies[i]))
|
||||
{
|
||||
World.remove(engine.world, boxes.bodies[i]);
|
||||
boxes.bodies.splice(i, 1);
|
||||
colors.splice(i, 1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
pop();
|
||||
}
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -9,16 +9,18 @@ var Body = Matter.Body;
|
||||
var Constraint = Matter.Constraint;
|
||||
var Mouse = Matter.Mouse;
|
||||
var MouseConstraint = Matter.MouseConstraint;
|
||||
let Composites = Matter.Composites;
|
||||
let Composite = Matter.Composite;
|
||||
|
||||
var engine;
|
||||
var propeller;
|
||||
var boxes = [];
|
||||
var boxes = null;
|
||||
var birds = [];
|
||||
var colors = [];
|
||||
var ground;
|
||||
var slingshotBird, slingshotConstraint;
|
||||
var angle=0;
|
||||
var angleSpeed=0;
|
||||
var angleSpeed=0.01;
|
||||
var canvas;
|
||||
////////////////////////////////////////////////////////////
|
||||
function setup() {
|
||||
@ -56,10 +58,10 @@ function draw() {
|
||||
//use arrow keys to control propeller
|
||||
function keyPressed(){
|
||||
if (keyCode == LEFT_ARROW){
|
||||
//your code here
|
||||
angleSpeed += 0.01;
|
||||
}
|
||||
else if (keyCode == RIGHT_ARROW){
|
||||
//your code here
|
||||
angleSpeed -= 0.01;
|
||||
}
|
||||
}
|
||||
////////////////////////////////////////////////////////////
|
||||
@ -93,7 +95,8 @@ function mouseReleased(){
|
||||
//tells you if a body is off-screen
|
||||
function isOffScreen(body){
|
||||
var pos = body.position;
|
||||
return (pos.y > height || pos.x<0 || pos.x>width);
|
||||
return (pos.y > height)
|
||||
// Modified so bodies don't disappear when they're not completely off the screen yet
|
||||
}
|
||||
////////////////////////////////////////////////////////////
|
||||
//removes a body from the physics world
|
||||
|
||||
Reference in New Issue
Block a user