Subversion Repositories QTron

Compare Revisions

Ignore whitespace Rev 24 → Rev 14

/bike.cpp
16,7 → 16,6
 
velocity = 1;
angle = 0;
abpool = 0;
name = "";
show = false;
isReady = false;
65,6 → 64,7
if (!collided)
{
collided = hasCollided(bikes);
 
if (angle == 0)
{
y -= velocity;
162,7 → 162,7
hasHadGo = true;
}
 
int sign(int x){
int sign(float x){
if(x > 0){
return 1;
}
181,62 → 181,28
return true;
if(linePoints[i].x() < 0 || linePoints[i].x() > 800 || linePoints[i].y() < 0 || linePoints[i].y() > 600)
return true;
int j, r;
int j;
Bike *bike;
for(r = 0; r < bikes.count(); r++)
foreach(bike,bikes)
{
bike = bikes[r];
int forsubtract = 1;
if(bike->name == name){
forsubtract = 3;
}
for(j = 0; j < bike->linePoints.count() - forsubtract; j++)
for(j = 0; j < bike->linePoints.count() - 2; j++)
{
int jx = bike->linePoints[j].x();
int j1x = bike->linePoints[j+1].x();
int jy = bike->linePoints[j].y();
int j1y = bike->linePoints[j+1].y();
int ix = linePoints[i-1].x();
int i1x = linePoints[i].x();
int iy = linePoints[i-1].y();
int i1y = linePoints[i].y();
 
if(angle == 0){
iy += 1;
i1y -= 1;
}
if(angle == 90){
ix -= 1;
i1x += 1;
}
if(angle == 180){
iy -= 1;
i1y += 1;
}
if(angle == 270){
ix += 1;
i1x -= 1;
}
if(!(jx == j1x && i1x == ix) && !(jy == j1y && i1y == iy))
if(!(bike->linePoints[j].x() == bike->linePoints[j+1].x() && linePoints[i].x() == linePoints[i-1].x()) && !(bike->linePoints[j].y() == bike->linePoints[j+1].y() && linePoints[i].y() == linePoints[i-1].y()))
{
 
// If not parallel
if(jx == j1x)
if(bike->linePoints[j].x() == bike->linePoints[j+1].x())
{
// x equal
 
if(ix > jx && i1x < jx || ix < jx && i1x > jx)
{
if((sign(iy - jy) != sign(iy - j1y)))
if(linePoints[i-1].x() > bike->linePoints[j].x() && linePoints[i].x() < bike->linePoints[j].x() || linePoints[i-1].x() < bike->linePoints[j].x() && linePoints[i].x() > bike->linePoints[j].x()){
if((sign(linePoints[i-1].y() - bike->linePoints[j].y()) != sign(linePoints[i-1].y() - bike->linePoints[j+1].y())))
return true;
}
}
if(jy == j1y)
else if(bike->linePoints[j].y() == bike->linePoints[j+1].y())
{
 
if(iy > jy && i1y < jy || iy < jy && i1y > jy)
if(linePoints[i-1].y() > bike->linePoints[j].y() && linePoints[i].y() < bike->linePoints[j].y() || linePoints[i-1].y() < bike->linePoints[j].y() && linePoints[i].y() > bike->linePoints[j].y())
{
if((sign(ix - jx) != sign(ix - j1x)))
if((sign(linePoints[i-1].x() - bike->linePoints[j].x()) != sign(linePoints[i-1].x() - bike->linePoints[j+1].x())))
return true;
}
}
256,7 → 222,6
 
velocity = 1;
angle = 0;
abpool = 0;
show = true;
isReady = true;
hadGo = false;
285,14 → 250,6
{
angle += 360;
}
if(velocity < 5)
velocity += 0.3;
else if(velocity > 5)
velocity -= 0.3;
if(abs(5-velocity)<0.3)
velocity = 5;
if(abpool<10)
abpool += 0.2;
hadGo = true;
}
else if (line == "R")
307,57 → 264,20
{
angle += 360;
}
if(velocity < 5)
velocity += 0.3;
else if(velocity > 5)
velocity -= 0.3;
if(abs(5-velocity)<0.3)
velocity = 5;
if(abpool<10)
abpool += 0.2;
hadGo = true;
}
else if (line == "A")
{
if(abpool > 0){
velocity += 0.1;
abpool -= 0.5;
} else {
if(velocity < 5)
velocity += 0.3;
else if(velocity > 5)
velocity -= 0.3;
if(abs(5-velocity)<0.3)
velocity = 5;
}
velocity += 0.1;
hadGo = true;
}
else if (line == "D")
{
if(abpool > 0){
velocity -= 0.2;
abpool -= 0.5;
}
else {
if(velocity < 5)
velocity += 0.3;
else if(velocity > 5)
velocity -= 0.3;
if(abs(5-velocity)<0.3)
velocity = 5;
}
velocity -= 0.2;
hadGo = true;
}
else if (line == "N")
{
if(velocity < 5)
velocity += 0.3;
else if(velocity > 5)
velocity -= 0.3;
if(abs(5-velocity)<0.3)
velocity = 5;
if(abpool<10)
abpool += 0.2;
hadGo = true;
}
else if (line.startsWith("NAME "))
/mainwindow.cpp
4,6 → 4,7
QGLWidget(parent)
{
this->setFixedSize(800, 600);
 
server = new QTcpServer(this);
connect(server, SIGNAL(newConnection()), this, SLOT(newConnection()));
server->listen(QHostAddress::Any, 4567);
/bike.h
8,7 → 8,6
#include <iostream>
#include <QHostAddress>
#include <QThread>
#include <cmath>
 
using namespace std;
 
18,9 → 17,9
 
public:
Bike(QTcpSocket *sock, int i);
void draw(QPainter *painter,QList<Bike *> bikes);
void draw(QPainter *painter);
void run(QList<Bike *> bikes);
bool hasCollided(QList<Bike *> bikes);
bool hasCollided();
void reset();
bool isReady;
bool dead;
36,7 → 35,6
bool hasHadGo;
QColor colour;
bool collided;
float abpool;
 
private:
QTcpSocket *socket;