ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > QGraphicѧϰ±Ê¼Ç - ͼÎÄ

QGraphicѧϰ±Ê¼Ç - ͼÎÄ

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2026/4/24 17:34:38

Ò»¸öСµÄ¼òµ¥µÄÓÎÏ·Òý³öµÄÐĵÃÌå»á

·Ö½âʵÀý1 ʵÀýÃèÊö£º

ʵÏÖÒ»¸ö°´Å¥£¬°´Å¥¼Ì³Ð×ÔQGraphicObject£¬

Í·Îļþ£º

class myButton : public QGraphicsObject {

Q_OBJECT public:

myButton(int ,int,QString ,QString ,class MainWindow *); QRectF boundingRect() const; void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); protected:

void hoverEnterEvent ( QGraphicsSceneHoverEvent *) ; void hoverLeaveEvent ( QGraphicsSceneHoverEvent *) ; void mousePressEvent ( QGraphicsSceneMouseEvent *); private:

QPixmap pix; QString img;

QString hoverImg; class MainWindow * m;

Phonon::MediaObject *clickMic; signals:

void clickSig(); };

Ô´Îļþ£º

myButton::myButton(int x,int y,QString img,QString hoverImg,class MainWindow * m){ this->img=img;

this->hoverImg=hoverImg; pix.load(img);

setPos(x-pix.width()/2,y-pix.height()/2); this->m=m;

setFlags(QGraphicsItem::ItemIsFocusable); setFlags(QGraphicsItem::ItemIsMovable); setAcceptHoverEvents(true);

clickMic=Phonon::createPlayer(Phonon::MusicCategory,

Phonon::MediaSource(\));

}

QRectF myButton::boundingRect() const{

return QRectF(0, 0, pix.width(), pix.height()); }

void myButton::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){

painter->drawPixmap(0,0,pix.width(), pix.height(),pix); }

void myButton::hoverEnterEvent ( QGraphicsSceneHoverEvent *) { setFocus(Qt::MouseFocusReason);

pix.load(hoverImg); clickMic->play(); update(); }

void myButton::hoverLeaveEvent ( QGraphicsSceneHoverEvent *) { setFocus(Qt::MouseFocusReason); pix.load(img); update(); }

void myButton::mousePressEvent ( QGraphicsSceneMouseEvent *){ emit clickSig(); }

ÒýÓÃÎļþ£º

cjScene = new QGraphicsScene;//н¨³¡¾°Ö¸Õë cjScene->clear(); myButton *sbtn=new

myButton(width/2,height/2-200,\,\tn2.png\,this);

connect(sbtn,SIGNAL(clickSig()),this,SLOT(guanKaScene())); cjScene->addItem(sbtn); myButton *soundBtn=new

myButton(width/2,height/2,\,\png\,this);

cjScene->addItem(soundBtn); myButton *quitBtn=new

myButton(width/2,height/2+200,\,\2.png\,this);

connect(quitBtn,SIGNAL(clickSig()),this,SLOT(close())); cjScene->addItem(quitBtn);

cjScene->setSceneRect(0,0,width,height);

cjScene->setBackgroundBrush( QPixmap(\).scaled(width,height));

this->setScene(cjScene);

»æÖƶ¯»­¾«Áé1£º

void ninjia::play(){

QTimeLine* timeline=new QTimeLine(200); timeline->setFrameRange(1, 4);

connect(timeline,SIGNAL(frameChanged(int)),this,SLOT(move_play(int)));

timeline->start(); }

void ninjia::move_play(int i){ qDebug()<

QString path=\; pix.load(path); return; }

QString path=\+QString::number(i)+\; pix.load(path); }

»æÖƶ¯»­¾«Áé2£º

timeline=new QTimeLine(1000);

timeline->setFrameRange(1, maxFrame); timeline->setLoopCount(0);

connect(timeline,SIGNAL(frameChanged(int)),this, SLOT(move_play(int))); timeline->start();

void target::move_play(int i){ qDebug()<

QString path=imgPath+QString::number(i)+\; pix.load(path); }

¾«ÁéµÄÅöײ¼ì²â£º

bool target::isColliding() {

QList item_list = collidingItems(); QGraphicsItem *item;

foreach(item, item_list) {

if(item->data(1)==\){ item->stackBefore(this); }

if((item->data(1)==\||item->data(1)==\)&&(this->boundingRect().y()+this->pos().y()+this->boundingRect().height())<(item->boundingRect().y()+item->pos().y()+item->boundingRect().height())){ this->stackBefore(item); }

if(item->data(1)==\&&item->data(2)!=false){ life=life-((projectile*)item)->gePower(); m->deleteItem((projectile*)item); item->setData(2,false); if(life>0){return true;} m->updateScore(10); this->setData(2,false); return true; } }

return false; }

×Óµ¯µÄ·¢Éä

void myScene::mousePressEvent( QGraphicsSceneMouseEvent * e ){ projectile *p=new

projectile(x,y,m,angleValue,6,\,m->getAttack()); this->addItem(p); pewMic->pause(); pewMic->play();

QGraphicsScene::mousePressEvent(e); }

×Óµ¯µÄ×Ô¶¯Òƶ¯ÓëÒÆ³ý£º

void projectile::advance(int i){

moveBy(cos(angleValue)*speed,sin(angleValue)*speed);

if(this->data(2)==false||pos().x()>this->m->scene()->width()||pos().y()>this->m->scene()->height()||pos().y()<0||pos().x()<0){ drop();//ÒÆ³ý±¾ÉíremoveItem(this);

ËÑË÷¸ü¶à¹ØÓÚ£º QGraphicѧϰ±Ê¼Ç - ͼÎÄ µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

Ò»¸öСµÄ¼òµ¥µÄÓÎÏ·Òý³öµÄÐĵÃÌå»á ·Ö½âʵÀý1 ʵÀýÃèÊö£º ʵÏÖÒ»¸ö°´Å¥£¬°´Å¥¼Ì³Ð×ÔQGraphicObject£¬ Í·Îļþ£º class myButton : public QGraphicsObject { Q_OBJECT public: myButton(int ,int,QString ,QString ,class MainWindow *); QRectF boundingRect() const; void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); protected: void hoverEnterEvent ( QGraphicsScene

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com