You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
953 B
34 lines
953 B
2 years ago
|
#include "tower.h"
|
||
|
#include <QPixmap>
|
||
|
#include <QVector>
|
||
|
#include <QPointF>
|
||
|
|
||
|
Tower::Tower(QGraphicsItem *parent) {
|
||
|
setPixmap(QPixmap(":/images/tower.png"));
|
||
|
|
||
|
// create points vectors
|
||
|
QVector<QPointF> points;
|
||
|
points << QPoint(1,0) << QPoint(2,0) << QPoint(3,1) << QPoint(3,2) << QPoint(2,3) << QPoint(1,3) << QPoint(0,2) << QPoint(0,1);
|
||
|
|
||
|
// scale points
|
||
|
int SCALE_FACTOR = 70;
|
||
|
for (size_t i = 0, n = points.size(); i <n; i++) {
|
||
|
points[i] *= SCALE_FACTOR;
|
||
|
}
|
||
|
|
||
|
// create a polygon from these points
|
||
|
QPolygonF polygon(points);
|
||
|
|
||
|
// create the QGraphicsPolygonItem
|
||
|
attack_area = new QGraphicsPolygonItem(QPolygonF(points), this);
|
||
|
|
||
|
// move the polygon
|
||
|
QPointF poly_center(1.5, 1.5);
|
||
|
poly_center *= SCALE_FACTOR;
|
||
|
poly_center = mapToScene(poly_center);
|
||
|
QPointF tower_center(x()+34, y()+64);
|
||
|
QLineF ln(poly_center, tower_center);
|
||
|
attack_area->setPos(x()+ln.dx(), y()+ln.dy());
|
||
|
|
||
|
}
|