index 3acaa36a82a9a558f5501e349e5bc29c7e31171b..0c632468e1bbc5a0121b58a0aa0f967e0d78c7df 100644 (file)
--- a/game.c
+++ b/game.c
#include "game.h"
#include "game.h"
-#define SPEED (0.03 / TICK)
+#define SPEED (0.015 / TICK)
#define ROTATE (0.03 / TICK)
#define BULL_SPEED (0.4 / TICK)
#define ROTATE (0.03 / TICK)
#define BULL_SPEED (0.4 / TICK)
#define MAX_ROTATE (0.3 / TICK)
// Цифры взяты с потолка, но вроде неплохо подобраны
#define MAX_ROTATE (0.3 / TICK)
// Цифры взяты с потолка, но вроде неплохо подобраны
-#define G 3.673e-4
-#define M_STAR 10.0
+#define G 6.673e-4
+#define M_STAR 8.0
#define M_SHIP 0.1
Player g_player[MAX_PLAYERS];
#define M_SHIP 0.1
Player g_player[MAX_PLAYERS];
}
static void moveplayer(int id, float speed) {
}
static void moveplayer(int id, float speed) {
- g_player[id].vx += speed * cos(g_player[id].r * 2 * M_PI);
- g_player[id].vy += speed * sin(g_player[id].r * 2 * M_PI);
-
- if(fabs(g_player[id].vx) > MAX_SPEED)
- g_player[id].vx = copysignf(MAX_SPEED, g_player[id].vx);
- if(fabs(g_player[id].vy) > MAX_SPEED)
- g_player[id].vy = copysignf(MAX_SPEED, g_player[id].vy);
+ if(fabs(g_player[id].vx) < MAX_SPEED)
+ g_player[id].vx += speed * cos(g_player[id].r * 2 * M_PI);
+ if(fabs(g_player[id].vy) < MAX_SPEED)
+ g_player[id].vy += speed * sin(g_player[id].r * 2 * M_PI);
}
static void roteplayer(int id, float speed) {
}
static void roteplayer(int id, float speed) {
static void checkspacebound(float * a) {
float x = *a;
static void checkspacebound(float * a) {
float x = *a;
- if(x < -1)
- x = fabs(x);
- else if(x > 1)
- x = -x;
+ if(x < -1 || x > 1)
+ x = copysign(fmodf(x, 1) + 1, -1 * x);
*a = x;
}
*a = x;
}
checkspacebound(&g_bullet[i].x);
checkspacebound(&g_bullet[i].y);
checkspacebound(&g_bullet[i].x);
checkspacebound(&g_bullet[i].y);
+ //gravity(&g_bullet[i].vx, &g_bullet[i].vy, g_bullet[i].x, g_bullet[i].y);
+
for(int j = 0; j < MAX_PLAYERS; j++)
if(g_player[j].live)
if(collide(g_bullet[i].x, g_bullet[i].y, 0.0001, g_player[j].x, g_player[j].y, PLAYER_SIZE))
for(int j = 0; j < MAX_PLAYERS; j++)
if(g_player[j].live)
if(collide(g_bullet[i].x, g_bullet[i].y, 0.0001, g_player[j].x, g_player[j].y, PLAYER_SIZE))