花3天时间,用Qt C++做了一个产品级“见缝插针“小游戏,结果被虐哭了

花3天时间,用Qt C++做了一个产品级"见缝插针"小游戏,结果被虐哭了|Qt见缝插针|Qt开发|Qt游戏开发|C语言|C++

花了三天,使用Qt C++从0设计到实现,使用基本Qt绘图,动画,地图数据使用json格式表示,总计搞了60关,灵感来自于html5版 官方见缝插针,一比一复刻,

B站点赞超过6000开放源代码

地图解析

{
  "#":2,
  "defaultBallsAngle" : [0, 180],
  "stackBallsCount"   : 20,
  "strategy"          : { "name":"NormalStrategy","nSpeed":1.5,"direction":1 }
}
  • #:表示关卡
  • defaultBallsAngle:数组,表示默认的小球的角度
  • stackBallsCount:待插入小球的数量
  • startegy:游戏的玩法策略
    • name:策略名称
    • nSpeed:旋转速度
    • direction:旋转防方向

部分代码

void GameScene::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setPen(QPen(QColor(Qt::white),2));
    painter.setRenderHint(QPainter::Antialiasing);
    for(auto ball : coreBalls)
    {
        //需要先画线不然的话会影响后面小球文字的绘制 会有个白色线
        painter.drawLine(centerBall->getPos(),ball->getPos());
        ball->draw(painter);

    }
    if(centerBall != nullptr)
    {
       centerBall->draw(painter);
    }

    //绘制剩余的球
    for(auto ball : leftBalls)
    {
        ball->draw(painter);
    }
    //绘制弹出小球
    for(auto ball : popupBalls)
    {
        ball->draw(painter);
    }
    //painter.drawLine(QPointF(0,height()/2),QPointF(width(),height() /2 ));
    QWidget::paintEvent(event);
}

这是绘制部分的代码,简单展示一下

下载地址

链接:https://pan.baidu.com/s/1-LNu1ZWZo1oMg5x3NXu3yg  提取码:nsiv

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值