#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { qDebug() << "Load START!"; ui->setupUi(this); sndr = new UdpSender("127.0.0.1",10101); sndr->connectSend("hellow"); cellsize = 16; destx = this->width() / cellsize; desty = this->height() / cellsize / 2; timer = new QTimer(this); adp = new adpainter(this->width(),this->height(),cellsize); adp->clear(); adp->drawgrid(); connect(timer, SIGNAL(timeout()), this, SLOT(ADrender())); GameMain = new game(this->size(),QPoint(0,this->height()/2),QPoint(this->width()-cellsize,this->height()/2), cellsize); aliens = new Aliens(GameMain->data); aliens->AddAlien(); this->setGeometry(100,100,this->width(),this->height()); //qDebug() << "QT version" << qVersion(); //AnimAlien = 0; timer->start(50); qDebug() << "Load DONE!"; } void MainWindow::ADrender() { adp->drawAliens(aliens->curAliens[0].path, &aliens->curAliens[0].Position); this->repaint(); } void MainWindow::paintEvent(QPaintEvent*) { QPainter painter; painter.begin(this); painter.drawPixmap(0,0,*adp->getPixmap()); painter.end(); } void MainWindow::mouseMoveEvent ( QMouseEvent * event ) { if (mousebt == 1) ClearCell(event->x(),event->y()); else SetCell(event->x(),event->y()); } void MainWindow::mousePressEvent ( QMouseEvent * event ) { if (event->button() == Qt::RightButton) { ClearCell(event->x(),event->y()); mousebt = 1; } else { SetCell(event->x(),event->y()); mousebt = 0; } } void MainWindow::SetCell(int x, int y) { QPoint cp; QRect wdrect(0, 0, (this->width() / cellsize) * cellsize, (this->height() / cellsize) * cellsize); if (wdrect.contains(x,y)) { cp.setX((int) x / cellsize); cp.setY((int) y / cellsize); //qDebug() << "click: " << cp.x() << ";" << cp.y(); GameMain->data->Cells[cp.x()][cp.y()] = - 1; adp->drawcell(cp); //aliens->clearAliens(); //adp->StepAlien=0; //adp->AnimAlien=0; if (!aliens->CreatePath(&(aliens->curAliens[0]))) ClearCell(x,y); else adp->StepAlien=0; } } void MainWindow::ClearCell(int x, int y) { QPoint cp; QRect wdrect(0, 0, (this->width() / cellsize) * cellsize, (this->height() / cellsize) * cellsize); if (wdrect.contains(x,y)) { cp.setX((int) x / cellsize); cp.setY((int) y / cellsize); //qDebug() << "click: " << cp.x() << ";" << cp.y(); GameMain->data->Cells[cp.x()][cp.y()] = 0; adp->clearcell(cp); //aliens->clearAliens(); //aliens->AddAlien(); aliens->CreatePath(&(aliens->curAliens[0])); adp->StepAlien=0; } } MainWindow::~MainWindow() { delete ui; delete aliens; delete adp; }