求一个Qt C++做一个小游戏小程序小游戏

废话少说先上图:
这个游戏纯属土鳖思路,没有用到什么游戏引擎。
1.使用按钮或QLabel铺满窗口。
2.通过简单算法随机动态的设置按钮矩阵中某个按钮的背景图像。
3.同步2过程反复设置多个按钮背景实现图像动起来,注意调节刷新时间。
4.重写按钮组鼠标事件,设置鼠标移入时光标的图案,可以是个小锤子。
5.单击事件后鼠标同理切换鼠标图案打下和抬起。
6.加入一点声音。
7.没有了。
#include "widget.h"
#include &QApplication&
int Widget::
int main(int argc, char *argv[])
QApplication a(argc, argv);
Widget w ,*pW;
w.setWindowTitle("打地鼠
成绩:5只 ");
w.setFixedSize(400,350);
////保持窗口指针
return a.exec();
mybutton.cpp
#include "mybutton.h"
#include &QWidget&
#include &QMouseEvent&
#include &QIcon&
#include &QSize&
#include &QString&
#include&QPixmap&
#include&Qtimer&
#include&QSound&
#include "widget.h"
MyButton::MyButton(QWidget *parent):QPushButton(parent)
upTime = new QTimer(this);//恢复锤子状态
upTime-&connect(upTime,SIGNAL(timeout()),this,SLOT(upCZ()));
// btnGroup = Widget();
this-&image = 0;
void MyButton::mousePressEvent(QMouseEvent *e){
this-&setCursor(QCursor(QPixmap("C:/src/c1.png")));
upTime-&start(100);
this-&hit();
void MyButton::hit(){
QSound::play("hit.wav");
if(this-&image != 0){
this-&setIcon(QIcon("C:/src/hit.jpg"));
QSound::play("dead.wav");//相对路径
Widget::score++;
void MyButton::upCZ(){
this-&setCursor(QCursor(QPixmap("C:/src/c0.png")));
mybutton.h
#ifndef MYBUTTON_H
#define MYBUTTON_H
#include&QTimer&
#include &QPushButton&
#include &QWidget&
#include &QMouseEvent&
class MyButton : public QPushButton
//图片张数
MyButton(QWidget *parent);
void hit();
void mousePressEvent(QMouseEvent *e);
QTimer *upT
MyButton *btnG
public slots:
void upCZ();//抬起锤子
#endif // MYBUTTON_H
widget.cpp
#include "widget.h"
#include "mybutton.h"
#include &QIcon&
#include &QSize&
#include &QTimer&
#include&QDebug&
#include&QCursor&
#include&QPixmap&
Widget::Widget(QWidget *parent):QWidget(parent)
initBtn(5);
time= QTime::currentTime();
qsrand(time.msec()+time.second()*1000);
//随机数进程
srand[0] = 0;//地鼠具体位置
srand[1] = 0;//地鼠具体位置
srand[2] = 0;//地鼠具体位置
srand[3] = 0;//地鼠具体位置
srand[4] = 0;//地鼠具体位置
timer = new QTimer(this);
timer-&connect(timer,SIGNAL(timeout()),this,SLOT(startRun()));
timer-&start(200);
QPixmap qp(40,40);
qp.load("C:/src/c0.png");
qp.scaled(60,60);
this-&setCursor(QCursor(qp));
void Widget::initBtn(int num){
int counter = 0;
for(int i= 0;i &i++){
for(int j = 0; j & 5;j++){
buttonGroup[counter] = new MyButton(this);
buttonGroup[counter]-&resize(80,70);//400/5=80一行5个
buttonGroup[counter]-&move(80*j,70*i);
buttonGroup[counter]-&setText(QString::number(counter));
buttonGroup[counter]-&setStyleSheet("border:0");
buttonGroup[counter]-&setIcon(QIcon("C:/src/emptyhole.jpg"));
buttonGroup[counter]-&setIconSize(QSize(85,87));
counter++;
//载入图像资源
for(int i = 0; i & 6 ;i++){
icoGroup[i] = new QIcon("C:/src/"+QString::number(i)+".jpg");
void Widget::startRun(){
this-&setCursor(QCursor(QPixmap("C:/src/c0.png")));//鼠标抬起
for(int i = 0;i& 5;i++){//一次性更新5个位置
if(buttonGroup[srand[i]]-&image & 6){
buttonGroup[srand[i]]-&setIcon(*icoGroup[buttonGroup[srand[i]]-&image++]);
buttonGroup[srand[i]]-&setIconSize(QSize(85,87));
buttonGroup[srand[i]]-&setIcon(QIcon("C:/src/emptyhole.jpg"));
buttonGroup[srand[i]]-&setIconSize(QSize(85,87));
buttonGroup[srand[i]]-&image = 0;
srand[i] = qrand()%25;
qDebug("地鼠位置:%d",srand[i]);
setWindowTitle("打地鼠
成绩:"+QString::number(score)+"只 ");
MyButton **Widget::getBtnGroup(){
return buttonG
Widget::~Widget()
#ifndef WIDGET_H
#define WIDGET_H
#include &QWidget&
#include "mybutton.h"
#include &QIcon&
#include &QTimer&
#include&QTime&
class Widget : public QWidget
//分数统计
Widget(QWidget *parent = 0);
void initBtn(int num);
MyButton **getBtnGroup();
~Widget();
MyButton *buttonGroup[25];
QTimer *//刷新界面事务
QIcon *icoGroup[6];
int srand[5];//具体位置
public slots:
void startRun();//开始游戏
#endif // WIDGET_H
思路原始,写法丑陋,大神请无视,初学者可以学习下。
FROM CTGU HOMEWORK
阅读(...) 评论()谁能给我一个用qt写的2000行的小程序,C++大作业,急求。。_百度知道
谁能给我一个用qt写的2000行的小程序,C++大作业,急求。。
谁能给我一个用qt写的2000行的小程序,C++大作业,急求。。
我有更好的答案
你好! 看你要实现什么功能吧,把程序的思路想想吧
就是想写一个word之类的文本编辑器,,里面可以用各种模版、、
那你这个程序,不是一时半会儿能够完成的了
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Qt(C++ 开发框架) - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开…阅读全文关注话题分享阅读全文1.8K307 条评论分享收藏感谢阅读全文1.1K70 条评论分享收藏感谢阅读全文73778 条评论分享收藏感谢阅读全文605242 条评论分享收藏阅读全文54685 条评论分享收藏感谢<strong class="NumberBoard-itemValue" title="1c++-关于qt的一个入门级程序理解问题
作者:用户
浏览:297 次
关于qt的一个入门级程序理解问题voidDialog::on_radiusLabel_clicked(){QStringtempSQStringvalueStr=ui-&ra
关于qt的一个入门级程序理解问题
void Dialog::on_radiusLabel_clicked(){
QString tempS
QString valueStr = ui-&radiusLineEdit-&text();
int valuelnt = valueStr.toInt(&ok);
double area = valuelnt*valuelnt*PI;
ui-&label_2-&setText(tempStr.setNum((area)));} 这儿每句要怎么理解啊
void Dialog::on_radiusLabel_clicked() //当半径标签点击时触发{ //定义一个标志,表示okQString tempSQString valueStr = ui-&radiusLineEdit-&text(); //从半径文本框获取值int valuelnt = valueStr.toInt(&ok); //将值转换为整数,是否转换成功放入ok标志double area = valuelnt*valuelnt*PI; //面积等于半径平方*piui-&label_2-&setText(tempStr.setNum((area)));将面积输出到label2}
【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?&&
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
40+云计算产品,6个月免费体验
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
云服务器9.9元/月,大学必备用Qt Creator编写一个简单的窗口程序
用Qt Creator编写一个简单的窗口程序
这次编写的窗口程序的效果图如下:
这个小程序的功能是:在文本框中输入半径,按下计算按钮计算并在右边的文本框中输出圆的面积。
程序实现步骤如下:
1、打开Qt Creator-&新建项目-&
选择Qt Widgets Application
2、编辑项目名称并且选择创建项目的目录
3、接下来全部选择默认设置,完成新建项目后进入文件编辑界面。
其中.pro是项目文件,其余文件夹分别存放着头文件、源文件和界面文件。
4、选中界面文件文件夹,双击其中的.ui文件,进入设计应用窗口界面
直接从左边拖选需要使用的控件到主界面上,这次要用的有三个Display Widgets中的Label、一个Input
Widgets中的Line Edit以及Buttons中的Push
Button,将它们分别放在合适的位置,并双击修改它们的名字。
把其中的label_2的frameShape和frameShadow属性分别设置为Panel和Sunken
5、接下来就为Button控件添加单击响应
1)右击“计算”按钮选择“转到槽”选择第一个clicked()函数
2)在自动生成的void MainWindow::on_pushButton_clicked()
函数体中添加如下的代码:
void MainWindow::on_pushButton_clicked()
QString tempS
QString valueStr=ui-&lineEdit-&text();
int valueInt=valueStr.toInt(&ok);
double area=valueInt*valueInt*3.14159;
ui-&label_2-&setText(tempStr.setNum(area));
6、最后用Ctrl+R快捷键编译运行程序,结果如下
可以在左边的编辑框中输入整数单击计算按钮测试一下。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 c 窗体程序小游戏 的文章

 

随机推荐