资源简介
Qt实现的连连看游戏,可自行设计关卡。目前只能在Windows下编译,因为mid播放使用的是Windows库。
代码片段和文件信息
#include “CardWidget.h“
#include
CardWidget::CardWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
m_bSelected = false;
m_dOpacity = 1; // 默认为完全不透明
m_pFadeOutTimer = new QTimer(this);
connect(m_pFadeOutTimer SIGNAL(timeout()) this SLOT(FadeOutTimeout()));
m_clBack = QColor(248 220 144);
m_clframe = QColor(100 200 100);
}
CardWidget::~CardWidget()
{
}
void CardWidget::SetSelected(bool bSelected)
{
m_bSelected = bSelected;
repaint();
}
void CardWidget::mousePressEvent(QMouseEvent* pEvent)
{
if (pEvent->button() == Qt::LeftButton)
{
if (!m_pFadeOutTimer->isActive())
{
emit onclicked(this);
}
}
}
void CardWidget::mouseDoubleClickEvent(QMouseEvent* pEvent)
{
if (pEvent->button() == Qt::LeftButton)
{
OnDoubleClicked(this);
}
}
void CardWidget::paintEvent(QPaintEvent* pEvent)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
m_clBack.setAlpha(int(m_dOpacity * 255));
QPen pen(m_clBack);
QBrush brush(m_clBack);
painter.setPen(pen);
painter.setBrush(brush);
painter.drawRoundedRect(rect() 5 5);
//painter.fillRect(rect() m_clBack);
QPixmap temp(m_pic.size());
temp.fill(Qt::transparent);
QPainter p(&temp);
p.setCompositionMode(QPainter::CompositionMode_Source);
p.drawPixmap(0 0 m_pic);
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
p.fillRect(temp.rect() QColor(0 0 0 int(m_dOpacity * 255)));
painter.drawPixmap(rect() temp);
if (m_bSelected)
{
QPen pen(m_clframe);
pen.setWidth(5);
painter.setPen(pen);
painter.setBrush(QBrush(Qt::NoBrush));
painter.drawRect(rect());
}
}
void CardWidget::SetCardOpacity(qreal dOpacity)
{
m_dOpacity = dOpacity;
repaint();
}
qreal CardWidget::GetCardOpacity()
{
return m_dOpacity;
}
void CardWidget::FadeOut()
{
if (!m_pFadeOutTimer->isActive())
{
m_pFadeOutTimer->start(50);
}
}
void CardWidget::FadeOutTimeout()
{
m_dOpacity -= 0.25;
repaint();
if (m_dOpacity <= 0)
{
m_pFadeOutTimer->stop();
hide();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 536 2012-06-04 21:37 CardWidget.ui
文件 51 2012-07-01 23:03 MatchGame.rc
文件 99678 2012-07-01 23:05 game.ico
文件 366 2012-07-02 23:04 main.cpp
文件 1271 2012-07-04 13:03 EditWidget.ui
文件 1976 2012-07-04 19:32 EditWidget.cpp
文件 5453 2012-07-04 19:51 zh.ts
文件 635 2012-07-06 12:59 EditWidget.h
文件 1251 2012-07-06 21:13 MatchGamefr
文件 1101 2012-07-06 23:08 CardWidget.h
文件 2072 2012-07-07 00:27 SoundPla
文件 758 2012-07-07 00:27 SoundPla
文件 2549 2012-07-08 22:36 GamePanel.h
文件 2118 2012-07-08 22:36 GameStructure.h
文件 6074 2012-07-08 22:41 MatchGamefr
文件 10344 2012-07-08 22:45 GamePanel.cpp
文件 10887 2012-07-08 22:51 GameStructure.cpp
文件 9176 2012-12-13 20:38 MatchGamefr
文件 2141 2012-12-29 00:08 CardWidget.cpp
文件 683 2012-12-29 00:10 MatchGame.pro
目录 0 2012-12-29 00:18 bin\
目录 0 2012-12-29 00:16 bin\build\
文件 33793 2012-12-29 00:16 bin\build\CardWidget.obj
文件 48961 2012-12-29 00:16 bin\build\EditWidget.obj
文件 86402 2012-12-29 00:16 bin\build\GamePanel.obj
文件 92181 2012-12-29 00:16 bin\build\GameStructure.obj
文件 12043 2012-12-29 00:16 bin\build\main.obj
文件 873 2012-12-29 00:16 bin\build\MatchGame.intermediate.manifest
文件 99908 2012-12-29 00:16 bin\build\MatchGame.res
文件 98558 2012-12-29 00:16 bin\build\MatchGamefr
文件 9935 2012-12-29 00:16 bin\build\moc_CardWidget.obj
............此处省略55个文件信息
相关资源
- arm板上实现usb摄像头采集及显示(q
- 用opengl编写的一个小游戏
- QT闹钟alarm
- qt gps 定位系统源代码
- cocos creator打砖块游戏
- 完整的RPG游戏源代码
- QT 基于mainwindow添加一个文件菜单
- 简单环形条格进度条
- qtjambi-eclipse-integration-4.5.2_01
- 基于TCP的网络聊天程序
- linux qt4.7 v4l2 YUV(YUYV) mmap 显示视频
- 微信小程序小游戏教程视频代码.zip
- 基于QT的局域网聊天系统215855
- cocos2d-x完整RPG游戏源代码
- qt入门程序——读取txt文件
- 一个简单的 QT5编写的 串口工具代码
- 一个简单QT5编写的录音机代码
- 安卓数独游戏源代码直接用
- Qt绘图实现
- 嵌入式Linux系统设计QT计算器
- SDL2系列教程10-扔箱子的抛物线小游戏
- qt记事本(含详细解释)
- qt 实现数据库操作和显示
- 游戏解乱码工具apploc
- flash人物行走源文件
- Qt利用帧动画实现所有动画效果(QW
- pyqt 软件打开和关闭淡入淡出的动画效
- Qt窗口传值
- QIM 局域网聊天程序
- KinectV2 opencv qt 实现平面测量
评论
共有 条评论