Advertisement
Guest User

Component

a guest
Mar 16th, 2018
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.36 KB | None | 0 0
  1. #ifndef ANIMPREVIEW_H
  2. #define ANIMPREVIEW_H
  3.  
  4. #include <QWidget>
  5. #include <QLabel>
  6. #include <QPaintEvent>
  7. #include <QPainter>
  8. #include <QMouseEvent>
  9. #include <QPixmap>
  10.  
  11.  
  12. class AnimPreview : public QLabel
  13. {
  14.     Q_OBJECT
  15. public:
  16.     int blw,blh;
  17.     explicit AnimPreview(QWidget *parent = 0);
  18.     void paintEvent(QPaintEvent *);
  19.     void Rotate(int value);
  20.     int sex = 0;
  21.     int hair = 0;
  22.     bool draw = true;
  23.     void Create(int _sex, int _hair);
  24.     int rotation = 0;
  25.     const int offsetX = 16;
  26.     const int offsetY = 32;
  27.  
  28.     QPixmap *base;
  29.     QPixmap *Hair;
  30.     QPixmap *Composited;
  31.  
  32.     bool compisition = false;
  33.  
  34.     void Composite();
  35. signals:
  36.  
  37.  
  38.  
  39. public slots:
  40.  
  41. };
  42.  
  43. #endif // ANIMPREVIEW_H
  44.  
  45.  
  46.  
  47. //----------------------------------------------------------------------------- AnimPreview Cpp
  48.  
  49. #include "animpreview.h"
  50.  
  51. AnimPreview::AnimPreview(QWidget *parent) :
  52.     QLabel(parent)
  53. {
  54. }
  55.  
  56.  
  57.  
  58. void AnimPreview::paintEvent(QPaintEvent *)
  59. {
  60.     QPainter p(this);
  61.     QPixmap pic;
  62.     QPixmap hairs;
  63.  
  64.     if(draw)
  65.     {
  66.         //Sesso
  67.         switch(sex)
  68.         {
  69.                case 0:
  70.                pic.load(":/Male/Base/Res/man_f.png");
  71.             break;
  72.                case 1:
  73.             pic.load(":/Female/Base/Res/woman_f.png");
  74.  
  75.             break;
  76.         }
  77.  
  78.         //capelli
  79.         if(sex == 1)
  80.         {
  81.         switch(hair)
  82.         {
  83.         case 0:
  84.             break;
  85.         case 1:
  86.             hairs.load(":/Female/Hair/Res/7_aqua.png");
  87.             break;
  88.         case 2:
  89.             hairs.load(":/Female/Hair/Res/5_gold.png");
  90.             break;
  91.         }
  92.         }
  93.  
  94.         if(sex == 0)
  95.         {
  96.         switch (hair)
  97.         {
  98.         case 0:
  99.             break;
  100.         case 1:
  101.             hairs.load(":/Male/Hair/Res/1_aqua.png");
  102.             break;
  103.         case 2:
  104.             hairs.load(":/Male/Hair/Res/14_black.png");
  105.             break;
  106.         }
  107.         }
  108.  
  109.     }
  110.  
  111.     p.drawPixmap(this->width()/2 - offsetX,this->height()/2 - offsetY,pic,0,rotation,32,48);
  112.     p.drawPixmap(this->width()/2 - offsetX,this->height()/2 - offsetY,hairs,0,rotation,32,48);
  113.     p.drawRect(0,0,this->width()-1,this->height()-1);
  114.  
  115.     base = &pic;
  116.     Hair = &hairs;
  117.  
  118.     if(compisition)
  119.     {
  120.         QPixmap pix(128,192);
  121.         QPainter *p = new QPainter(&pix);
  122.  
  123.         p->drawPixmap(0,0,128,192,*base);
  124.         p->drawPixmap(0,0,128,192,*Hair);
  125.  
  126.         Composited = &pix;
  127.         compisition = false;
  128.     }
  129. }
  130.  
  131.  
  132. void AnimPreview::Create(int _sex, int _hair)
  133. {
  134.     sex = _sex;
  135.     hair = _hair;
  136.     draw = true;
  137. }
  138.  
  139.  
  140. void AnimPreview::Rotate(int value)
  141. {
  142.   rotation = value;
  143.   this->update();
  144. }
  145.  
  146. void AnimPreview::Composite()
  147. {
  148.     compisition = true;
  149.     this->update();
  150.  
  151.  
  152. }
  153.  
  154.  
  155. //---------------------------------------------------- Save point
  156.  
  157. void MainWindow::on_commandLinkButton_clicked()
  158. {
  159.     QString file = QFileDialog::getSaveFileName(this,
  160.                                                tr("Save Sprite file"),
  161.                                                "",tr("File PNG (*.png)"));
  162.  
  163.     const QPixmap *pix = ui->SpriteFront->pixmap();
  164.  
  165.  
  166.     if(!file.isEmpty())
  167.     {
  168.         QFile files(file);
  169.         files.open(QIODevice::WriteOnly);
  170.  
  171.         ui->SpriteFront->Composite();
  172.         ui->SpriteFront->Composited->save(&files,"PNG");
  173.  
  174.     }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement