Skip to content

Commit 63145d7

Browse files
committed
New labs demo. Added moveForward and moveBackward to Body.
1 parent 5d5c64d commit 63145d7

6 files changed

Lines changed: 439 additions & 0 deletions

File tree

examples/wip/astro balls.js

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
2+
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
3+
4+
function preload() {
5+
6+
// game.load.image('arrow', 'assets/sprites/arrow.png');
7+
game.load.image('arrow', 'assets/sprites/thrust_ship2.png');
8+
game.load.image('chunk', 'assets/sprites/chunk.png');
9+
game.load.spritesheet('bullets', 'assets/sprites/balls.png', 17, 17);
10+
11+
}
12+
13+
var cannon;
14+
var bullets;
15+
var angle = 0;
16+
var fireRate = 100;
17+
var nextFire = 0;
18+
var cursors;
19+
20+
function create() {
21+
22+
game.stage.backgroundColor = '#2d2d2d';
23+
24+
game.physics.gravity[1] = -8.5;
25+
game.physics.defaultRestitution = 0.8;
26+
game.physics.defaultFriction = 0.1;
27+
28+
bullets = game.add.group();
29+
bullets.createMultiple(250, 'bullets', 0, false);
30+
31+
cannon = game.add.sprite(50, 500, 'arrow');
32+
cannon.physicsEnabled = true;
33+
cannon.body.kinematic = true;
34+
cannon.body.mass = 4;
35+
cursors = game.input.keyboard.createCursorKeys();
36+
37+
}
38+
39+
function fire() {
40+
41+
if (game.time.now > nextFire)
42+
{
43+
nextFire = game.time.now + fireRate;
44+
45+
var bullet = bullets.getFirstExists(false);
46+
47+
if (bullet)
48+
{
49+
bullet.frame = game.rnd.integerInRange(0,6);
50+
bullet.exists = true;
51+
bullet.position.set(cannon.x, cannon.y);
52+
bullet.physicsEnabled = true;
53+
54+
bullet.body.rotation = cannon.rotation + game.math.degToRad(90);
55+
56+
var magnitude = game.math.px2p(-500);
57+
var angle = bullet.body.rotation + Math.PI / 2;
58+
59+
bullet.body.velocity.x = magnitude * Math.cos(angle);
60+
bullet.body.velocity.y = magnitude * Math.sin(angle);
61+
}
62+
}
63+
64+
}
65+
66+
function update() {
67+
68+
if (cursors.left.isDown)
69+
{
70+
cannon.body.rotateLeft(100);
71+
}
72+
else if (cursors.right.isDown)
73+
{
74+
cannon.body.rotateRight(100);
75+
}
76+
else
77+
{
78+
cannon.body.setZeroRotation();
79+
}
80+
81+
if (cursors.up.isDown)
82+
{
83+
cannon.body.moveForward(200);
84+
}
85+
else if (cursors.down.isDown)
86+
{
87+
cannon.body.moveBackward(200);
88+
}
89+
90+
var dx = game.input.activePointer.worldX - cannon.x;
91+
var dy = game.input.activePointer.worldY - cannon.y;
92+
cannon.rotation = Math.atan2(dy, dx);
93+
94+
if (game.input.activePointer.isDown)
95+
{
96+
fire();
97+
}
98+
99+
}
100+
101+
function render() {
102+
103+
}

examples/wip/cannon.js

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
2+
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
3+
4+
function preload() {
5+
6+
// game.load.image('arrow', 'assets/sprites/arrow.png');
7+
game.load.image('arrow', 'assets/sprites/thrust_ship2.png');
8+
game.load.image('chunk', 'assets/sprites/chunk.png');
9+
game.load.spritesheet('bullets', 'assets/sprites/balls.png', 17, 17);
10+
11+
}
12+
13+
var cannon;
14+
var bullets;
15+
var angle = 0;
16+
var fireRate = 100;
17+
var nextFire = 0;
18+
var cursors;
19+
20+
function create() {
21+
22+
game.stage.backgroundColor = '#2d2d2d';
23+
24+
game.physics.gravity[1] = -8.5;
25+
game.physics.defaultRestitution = 0.8;
26+
game.physics.defaultFriction = 0.1;
27+
28+
bullets = game.add.group();
29+
bullets.createMultiple(250, 'bullets', 0, false);
30+
31+
cannon = game.add.sprite(50, 500, 'arrow');
32+
cannon.physicsEnabled = true;
33+
cannon.body.kinematic = true;
34+
cannon.body.mass = 4;
35+
cursors = game.input.keyboard.createCursorKeys();
36+
37+
}
38+
39+
function fire() {
40+
41+
if (game.time.now > nextFire)
42+
{
43+
nextFire = game.time.now + fireRate;
44+
45+
var bullet = bullets.getFirstExists(false);
46+
47+
if (bullet)
48+
{
49+
bullet.frame = game.rnd.integerInRange(0,6);
50+
bullet.exists = true;
51+
bullet.position.set(cannon.x, cannon.y);
52+
bullet.physicsEnabled = true;
53+
54+
bullet.body.rotation = cannon.rotation + game.math.degToRad(90);
55+
56+
var magnitude = game.math.px2p(-500);
57+
var angle = bullet.body.rotation + Math.PI / 2;
58+
59+
bullet.body.velocity.x = magnitude * Math.cos(angle);
60+
bullet.body.velocity.y = magnitude * Math.sin(angle);
61+
}
62+
}
63+
64+
}
65+
66+
function update() {
67+
68+
if (cursors.left.isDown)
69+
{
70+
cannon.body.rotateLeft(100);
71+
}
72+
else if (cursors.right.isDown)
73+
{
74+
cannon.body.rotateRight(100);
75+
}
76+
else
77+
{
78+
cannon.body.setZeroRotation();
79+
}
80+
81+
if (cursors.up.isDown)
82+
{
83+
cannon.body.moveForward(200);
84+
}
85+
else if (cursors.down.isDown)
86+
{
87+
cannon.body.moveBackward(200);
88+
}
89+
90+
var dx = game.input.activePointer.worldX - cannon.x;
91+
var dy = game.input.activePointer.worldY - cannon.y;
92+
cannon.rotation = Math.atan2(dy, dx);
93+
94+
if (game.input.activePointer.isDown)
95+
{
96+
fire();
97+
}
98+
99+
}
100+
101+
function render() {
102+
103+
}

examples/wip/particle1.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
3+
4+
function preload() {
5+
6+
game.load.image('ship', 'assets/sprites/thrust_ship2.png');
7+
game.load.image('chunk', 'assets/sprites/chunk.png');
8+
9+
}
10+
11+
var ship;
12+
var sprite2;
13+
var body;
14+
15+
function create() {
16+
17+
game.stage.backgroundColor = '#2d2d2d';
18+
19+
game.physics.gravity[1] = -1;
20+
21+
ship = game.add.sprite(200, 200, 'ship');
22+
ship.physicsEnabled = true;
23+
// We do this because our ship is shaped like a triangle, not a square :)
24+
ship.body.addPolygon({}, 29, 23 , 0, 23 , 14, 1);
25+
26+
sprite2 = game.add.sprite(300, 300, 'chunk');
27+
28+
cursors = game.input.keyboard.createCursorKeys();
29+
30+
game.input.onDown.add(spawn, this);
31+
32+
}
33+
34+
function spawn() {
35+
36+
body = new Phaser.Physics.Body(game, null, 300, 100, 1);
37+
38+
body.addParticle(4, 4, 0, 0, 0);
39+
40+
game.physics.addBody(body.data);
41+
42+
}
43+
44+
function update() {
45+
46+
if (body)
47+
{
48+
sprite2.x = body.x;
49+
sprite2.y = body.y;
50+
}
51+
52+
if (cursors.left.isDown)
53+
{
54+
ship.body.rotateLeft(100);
55+
}
56+
else if (cursors.right.isDown)
57+
{
58+
ship.body.rotateRight(100);
59+
}
60+
else
61+
{
62+
ship.body.setZeroRotation();
63+
}
64+
65+
if (cursors.up.isDown)
66+
{
67+
ship.body.thrust(400);
68+
}
69+
else if (cursors.down.isDown)
70+
{
71+
ship.body.reverse(400);
72+
}
73+
74+
}
75+
76+
function render() {
77+
78+
}

labs/code/008 cannon balls.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
2+
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
3+
4+
function preload() {
5+
6+
game.load.image('arrow', 'assets/sprites/arrow.png');
7+
game.load.image('chunk', 'assets/sprites/chunk.png');
8+
game.load.spritesheet('bullets', 'assets/sprites/balls.png', 17, 17);
9+
10+
}
11+
12+
var cannon;
13+
var bullets;
14+
var angle = 0;
15+
var fireRate = 100;
16+
var nextFire = 0;
17+
18+
function create() {
19+
20+
game.stage.backgroundColor = '#2d2d2d';
21+
22+
game.physics.gravity[1] = -8.5;
23+
game.physics.defaultRestitution = 0.8;
24+
game.physics.defaultFriction = 0.1;
25+
26+
bullets = game.add.group();
27+
bullets.createMultiple(500, 'bullets', 0, false);
28+
29+
cannon = game.add.sprite(50, 500, 'arrow');
30+
cannon.anchor.set(0, 0.5);
31+
32+
}
33+
34+
function fire() {
35+
36+
if (game.time.now > nextFire)
37+
{
38+
nextFire = game.time.now + fireRate;
39+
40+
var bullet = bullets.getFirstExists(false);
41+
42+
if (bullet)
43+
{
44+
bullet.frame = game.rnd.integerInRange(0,6);
45+
bullet.exists = true;
46+
bullet.position.set(cannon.x, cannon.y);
47+
bullet.physicsEnabled = true;
48+
49+
bullet.body.rotation = cannon.rotation + game.math.degToRad(90);
50+
51+
var magnitude = game.math.px2p(-500);
52+
var angle = bullet.body.rotation + Math.PI / 2;
53+
54+
bullet.body.velocity.x = magnitude * Math.cos(angle);
55+
bullet.body.velocity.y = magnitude * Math.sin(angle);
56+
}
57+
}
58+
59+
}
60+
61+
function update() {
62+
63+
var dx = game.input.activePointer.worldX - cannon.x;
64+
var dy = game.input.activePointer.worldY - cannon.y;
65+
cannon.rotation = Math.atan2(dy, dx);
66+
67+
if (game.input.activePointer.isDown)
68+
{
69+
fire();
70+
}
71+
72+
}
73+
74+
function render() {
75+
76+
}

0 commit comments

Comments
 (0)