当前位置: 首页 > news >正文

动态购物网站开发源代码上海企业制作网站有哪些

动态购物网站开发源代码,上海企业制作网站有哪些,下载百度app最新版到桌面,微网站开发技术文章目录#xff1a; 一#xff1a;效果演示 二#xff1a;实现思路 三#xff1a;代码实现 widget.h widget.cpp main.cpp 一#xff1a;效果演示 效果图◕‿◕✌✌✌ 代码下载 二#xff1a;实现思路 通过按键控制蛇的移动#xff0c;每吃一个商品蛇身就会加长…文章目录 一效果演示 二实现思路 三代码实现  widget.h widget.cpp main.cpp 一效果演示 效果图◕‿◕✌✌✌  代码下载 二实现思路 通过按键控制蛇的移动每吃一个商品蛇身就会加长如果蛇身头尾相碰就结束游戏 声明渲染绘图画笔画刷进行相关的渲染背景蛇和奖品 按键处理机制方便后面的键盘操作定时器到时就会触发按下空格代表开始上下左右键控制蛇的移动方向DIR_DOWN DIR_UP DIR_LEFT DIR_RIGHT蛇蛇的表示矩形的两点确定小方块3个小方块为初始蛇身判断蛇身蛇头如果蛇头蛇尾接触就结束游戏蛇身变动相交就吃掉奖品吃一个加一个小方块奖品奖品的表示小红点奖品的添加蛇吃完一个奖品就马上随机添加一个奖品蛇吃奖品吃一个奖品会加一个方块上面、下面、左面、右面 三代码实现  widget.h #ifndef WIDGET_H #define WIDGET_H#include QWidget //按键 #include QKeyEvent //定时器 #include QTimerQT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE//定义方向 enum Dirct{DIR_LEFT,DIR_RIGHT,DIR_DOWN,DIR_UP};class Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();protected://声明渲染绘图void paintEvent(QPaintEvent *event);//声明按键处理void keyPressEvent(QKeyEvent *event);//声明上面加一个函数void addTop();//声明下面加一个函数void addDown();//声明左面加一个函数void addLeft();//声明右面加一个函数void addRight();//声明减去一个模块void deleteLast();//声明添加奖品函数void addNewReword();//声明判断蛇头蛇身bool checkContact();private:Ui::Widget *ui;//初始化定义方向int moveFlag DIR_UP;//定义启动的开始bool gameStart false;//定义定时器QTimer *timer;int time 100;//超时事件间隔(毫秒)//蛇的表示 矩形两点确定(容器)QList QRectF snake;//小方块表示int nodeWidth 20;int nodeHeight 20;//奖品的表示QRectF rewardNode;protected slots://定义超时函数void timeout(); };#endif // WIDGET_H widget.cpp #include widget.h #include ui_widget.h #include qmediaplayer.h//画家 #include QPainter //文字 #include QRandomGenerator //背景音乐 #include QtMultimedia/QtMultimedia #include QtMultimediaWidgets/QVideoWidget #include QApplication #include QMediaPlayer #include QUrl #include QFileDialogWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//定义窗口大小//resize(800,600);this-setFixedSize(800,600);QMediaPlayer *player new QMediaPlayer;player-setSource(QUrl::fromLocalFile(F:/QT/Snake/images/mu.mp3));player-play();//实现定时器 可以让蛇动起来//创建定时器timer new QTimer();//信号槽 timeout超时connect(timer,SIGNAL(timeout()),this,SLOT(timeout()));//初始化蛇身QRectF rect(400,300,nodeWidth,nodeHeight);//小方块加到蛇身上去snake.append(rect);//再加两端addTop();addTop();//初始化奖品addNewReword();//背景音乐 // //创建一个显示视频的控件 // QVideoWidget* videowin new QVideoWidget(this); // videowin-resize(400,300); // //添加一个播放器 // QMediaPlayer *player new QMediaPlayer(this); // player-setVideoOutput(videowin); // //音乐 // player-setMedia(QMediaContent(QUrl::fromLocalFile(F:/QT/Snake/images/game.mp3))); // //player-setVolume(50);//音量 // //开始播放 // player-play();}Widget::~Widget() {delete ui; }//实现按键函数 控制方向 void Widget::keyPressEvent(QKeyEvent *event){switch (event-key()) {case Qt::Key_Up:if(moveFlag ! DIR_DOWN){moveFlag DIR_UP;}break;case Qt::Key_Down:if(moveFlag ! DIR_UP){moveFlag DIR_DOWN;}break;case Qt::Key_Right:if(moveFlag ! DIR_LEFT){moveFlag DIR_RIGHT;}break;case Qt::Key_Left:if(moveFlag ! DIR_RIGHT){moveFlag DIR_LEFT;}break;case Qt::Key_Space:if(gameStart false){gameStart true;//启动定时器timer-start(time);}else{gameStart false;//停止定时器timer-stop();}break;default:break;} }//实现超时函数 void Widget::timeout(){//实现逻辑要么都上移要么底部加一个顶部取消一个//判断有没有重合int count 1;if(snake[0].intersects(rewardNode)){//相交就吃掉奖品count;//吃掉添加新的奖品addNewReword();}while (count--) {//蛇的移动switch (moveFlag) {case DIR_UP:addTop();break;case DIR_DOWN:addDown();break;case DIR_LEFT:addLeft();break;case DIR_RIGHT:addRight();break;default:break;}}//删除一个deleteLast();//刷新一下update();}//实现上面加一个函数 void Widget::addTop(){QPointF leftTop;QPointF rightBotom;//超出边界顶端 加到最下面if(snake[0].y()-nodeHeight 0){//this-height窗口leftTop QPoint(snake[0].x(),this-height()-nodeHeight);rightBotom QPointF(snake[0].x()nodeWidth,this-height());}else{//没有超出的情况//在蛇的上面(蛇和矩形)//左上角坐标 nodeHeight小方块矩形leftTop QPointF(snake[0].x(),snake[0].y()-nodeHeight);//右下角坐标rightBotom snake[0].topRight();}//加一个小方块snake.insert(0,QRectF(leftTop,rightBotom)); }//实现下面加一个函数 void Widget::addDown(){QPointF leftTop;QPointF rightBotom;//超出边界顶端 加到最下面if(snake[0].y()nodeHeight*2 this-height()){leftTop QPointF(snake[0].x(),0);rightBotom QPointF(snake[0].x()nodeWidth,nodeHeight);}else{//没有超出的情况//在蛇的上面(蛇和矩形)//左上角坐标 nodeHeight小方块矩形leftTop snake[0].bottomLeft();//右下角坐标rightBotom snake[0].bottomRight()QPointF(0,nodeHeight);}//加一个小方块snake.insert(0,QRectF(leftTop,rightBotom)); }//实现左面加一个函数 void Widget::addLeft(){QPointF leftTop;QPointF rightBotom;//超出边界顶端 加到最下面if(snake[0].x()-nodeWidth 0){leftTop QPointF(this-width()-nodeWidth,snake[0].y());}else{//没有超出的情况//在蛇的上面(蛇和矩形)//左上角坐标 nodeHeight小方块矩形leftTop snake[0].topLeft()-QPointF(nodeWidth,0);}rightBotom leftTopQPointF(nodeWidth,nodeHeight);//右下角坐标//加一个小方块snake.insert(0,QRectF(leftTop,rightBotom)); }//实现右面加一个函数 void Widget::addRight(){QPointF leftTop;QPointF rightBotom;//超出边界顶端 加到最下面if(snake[0].x()-nodeWidth*2 this-width()){leftTop QPointF(0,snake[0].y());}else{//没有超出的情况//在蛇的上面(蛇和矩形)//左上角坐标 nodeHeight小方块矩形leftTop snake[0].topRight();}rightBotom leftTopQPointF(nodeWidth,nodeHeight);//右下角坐标//加一个小方块snake.insert(0,QRectF(leftTop,rightBotom)); }//实现绘图 void Widget::paintEvent(QPaintEvent *event){//画家QPainter painter(this);//画笔QPen pen;//画刷QBrush brush;//背景图片QPixmap pix;pix.load(F:/QT/Snake/images/bk.png);// QPixmap pixmap(:/images/bk.png);painter.drawPixmap(0,0,800,600,pix);//画蛇//画笔pen.setColor(Qt::black);//画刷brush.setColor(Qt::darkMagenta);brush.setStyle(Qt::SolidPattern);//画家使用画笔和画刷painter.setPen(pen);painter.setBrush(brush);//画蛇的头尾for(int i0;isnake.length();i){painter.drawRect(snake[i]);}//画奖品//画笔pen.setColor(Qt::red);//画刷brush.setColor(Qt::red);brush.setStyle(Qt::SolidPattern);//画家使用画笔和画刷painter.setPen(pen);painter.setBrush(brush);//painter.drawRect(rewardNode);//奖品painter.drawEllipse(rewardNode);//判断蛇头是否碰到蛇身if(checkContact()){QFont font(方块输出,30,QFont::ExtraLight,false);painter.setFont(font);painter.drawText((this-width()-300)/2,(this-height()-30)/2,QString(完成));timer-stop();}//调用一下父类QWidget::paintEvent(event); }//实现减去一个方块 void Widget::deleteLast(){snake.removeLast(); }//实现添加奖品函数 void Widget::addNewReword(){//奖品int width this-width();int a QRandomGenerator::global()-bounded(width/20*20);int height this-height();int b QRandomGenerator::global()-bounded(height/20*20);rewardNode QRectF(//qrand()%(this-width()/20)*20,//qrand()%(this-height()/20)*20,//QT6用上面方法会报错qrand was not declared in this scope; did you mean srand?a,b,nodeWidth,nodeHeight); }//实现判断蛇头是否碰到蛇身函数 bool Widget::checkContact(){for(int i 1; i snake.length(); i)for (int j i1; j snake.length(); j) {if(snake[i] snake[j]){return true;}}return false; } main.cpp #include widget.h#include QApplication #include QLocale #include QTranslatorint main(int argc, char *argv[]) {QApplication a(argc, argv);QTranslator translator;const QStringList uiLanguages QLocale::system().uiLanguages();for (const QString locale : uiLanguages) {const QString baseName Snake_ QLocale(locale).name();if (translator.load(:/i18n/ baseName)) {a.installTranslator(translator);break;}}Widget w;w.show();return a.exec(); }
http://www.yutouwan.com/news/332962/

相关文章:

  • 网站首页的功能需求分析国外创意设计网站
  • 绵阳微信网站企业网络营销策划书模板
  • 网站备案注销原因打广告专用配图
  • 建设部网站监理公告视觉设计包括哪些
  • 佛山网站建设兼职定制和订制有什么区别
  • 专业 旅游网站建设如何对网站做渗透
  • 网站怎么做快捷方式网店推广的作用是什么
  • 常德网站开发合肥网站建设5k5
  • 自己如何建设校园网站公司推广策划方案
  • 网站设计师的岗位职责在线制作结婚证
  • 网站建设免费加盟代理分类信息网站模板
  • 襄阳门户网站建设佛山市网站建设公司
  • 简单写文章的网站房地产开发公司名字大全
  • 深圳专业网站建设免费送域名空间企业网站优化17
  • wordpress 游戏网站店铺装修设计网
  • 源码怎样做网站招标代理公司
  • 网站登录页模板html网页设计代码范例
  • 徐州本地网站自己怎么做跨境电商
  • 北京移动官网网站建设怎么建设游网站主页
  • 建个什么网站各大门户网站怎么做推广
  • discuz做资讯网站seo优化招聘
  • 文化馆网站数字化建设介绍阜宁建设网站的公司
  • 长春火车站防疫要求好的策划方案网站
  • 网站建设与维护是什么内容?登录qq网页版
  • 平面毕业设计作品网站网站建设移动端
  • 哪个企业提供电子商务网站建设外包流量查询中国移动官方网站
  • 广州化妆品网站设计南阳公司注册
  • 做网站初中上海汽车设计公司名单
  • 简单做网站的价格wordpress同ip弹一次广告
  • 装修网站怎么做的好处上海工信部网站备案