|
|
59dae5 |
|
|
|
59dae5 |
#include <helianthus.h></helianthus.h>
|
|
|
59dae5 |
|
|
|
59dae5 |
#include "phisics.h"
|
|
|
59dae5 |
|
|
|
59dae5 |
|
|
|
59dae5 |
|
|
|
59dae5 |
static Sprite ball, brick1, brick2, brick3;
|
|
|
59dae5 |
static Group edges;
|
|
|
59dae5 |
static Group movement;
|
|
|
28a314 |
static Sound beep;
|
|
|
59dae5 |
|
|
|
59dae5 |
|
|
|
59dae5 |
|
|
|
59dae5 |
void phisicsInit() {
|
|
|
f80a0a |
ball = createSpriteEx(200+1, 200+1, 64-2, 64-2);
|
|
|
dba3fc |
spriteSetAnimation(ball, createAnimation("data/sprite/breadball.png"));
|
|
|
59dae5 |
spriteSetColliderCircle(ball, 0, 0, -1);
|
|
|
59dae5 |
spriteSetRotateToDirection(ball, TRUE);
|
|
|
59dae5 |
|
|
|
59dae5 |
brick1 = createSpriteEx(200-32, 200+64, 64, 64);
|
|
|
dba3fc |
spriteSetAnimation(brick1, createAnimation("data/sprite/bricks.png"));
|
|
|
d4e89f |
spriteSetTintColor(brick1, colorByRGB(0, 0, 1));
|
|
|
59dae5 |
spriteSetColliderRectangle(brick1, 0, 0, 0, -1, -1, 20);
|
|
|
59dae5 |
spriteSetBounciness(brick1, 0.5);
|
|
|
f80a0a |
spriteSetMassLevel(brick1, 1);
|
|
|
59dae5 |
|
|
|
f80a0a |
brick2 = createSpriteEx(200+32+1, 200+64+1, 64-2, 64-2);
|
|
|
dba3fc |
spriteSetAnimation(brick2, createAnimation("data/sprite/bricks.png"));
|
|
|
59dae5 |
spriteSetColliderRectangle(brick2, 0, 0, 0, -1, -1, 20);
|
|
|
59dae5 |
|
|
|
59dae5 |
brick3 = createSpriteEx(200+32+64, 200+64, 64, 64);
|
|
|
dba3fc |
spriteSetAnimation(brick3, createAnimation("data/sprite/bricks.png"));
|
|
|
d4e89f |
spriteSetTintColor(brick3, colorByRGBA(1, 0, 1, 0.5));
|
|
|
59dae5 |
spriteSetColliderRectangle(brick3, 0, 0, 0, -1, -1, 20);
|
|
|
59dae5 |
spriteSetBounciness(brick3, 2);
|
|
|
f80a0a |
spriteSetMassLevel(brick3, 1);
|
|
|
59dae5 |
|
|
|
59dae5 |
movement = createGroup();
|
|
|
59dae5 |
groupAdd(movement, ball);
|
|
|
59dae5 |
groupAdd(movement, brick2);
|
|
|
59dae5 |
|
|
|
59dae5 |
edges = createEdgesGroup();
|
|
|
59dae5 |
groupAdd(edges, brick1);
|
|
|
59dae5 |
groupAdd(edges, brick3);
|
|
|
59dae5 |
|
|
|
59dae5 |
beep = createSound("data/sound/beep.ogg");
|
|
|
59dae5 |
}
|
|
|
59dae5 |
|
|
|
59dae5 |
|
|
|
59dae5 |
void phisicsDraw() {
|
|
|
8bc1f1 |
double dt = worldGetFrameTime();
|
|
|
59dae5 |
double accel = 100;
|
|
|
59dae5 |
|
|
|
59dae5 |
double vx = spriteGetVelocityX(ball);
|
|
|
59dae5 |
double vy = spriteGetVelocityY(ball);
|
|
|
59dae5 |
if (keyDown("left")) spriteSetVelocityX(ball, vx - accel*dt);
|
|
|
59dae5 |
if (keyDown("right")) spriteSetVelocityX(ball, vx + accel*dt);
|
|
|
59dae5 |
if (keyDown("up")) spriteSetVelocityY(ball, vy - accel*dt);
|
|
|
59dae5 |
if (keyDown("down")) spriteSetVelocityY(ball, vy + accel*dt);
|
|
|
59dae5 |
|
|
|
59dae5 |
int collision = FALSE;
|
|
|
f80a0a |
if (groupCollideBetween(movement)) collision = TRUE;
|
|
|
f80a0a |
if (groupCollideGroup(edges, movement)) collision = TRUE;
|
|
|
59dae5 |
|
|
|
59dae5 |
if (collision) soundPlay(beep, FALSE);
|
|
|
59dae5 |
}
|
|
|
59dae5 |
|