limoyi 发表于 2022-7-26 22:26

使用QT绘制植物大战僵尸

#使用QT绘制植物大战僵尸

先放几张效果图
![图片alt](https://s2.loli.net/2022/07/26/4fJLSIt3NRiKqgb.png "植物1")

![图片alt](https://s2.loli.net/2022/07/26/vesNYCMzcg3E8hW.png "植物2")

源码下载链接:https://wwu.lanzouv.com/iO8O708gfbvc

植物大战僵尸我用的英文原版
游戏请窗口运行

阳光基址:[[+768]+5560]   
僵尸x轴坐标:(单浮点)[[[+768]+90]+2C]   
僵尸y轴坐标:(单浮点)[[[+768]+90]+30]
僵尸血量:[[[+768]+90]+C8]

僵尸结构体之间差距0x15C

QT的窗口设置几条函数   

    setWindowFlag(Qt::FramelessWindowHint);//无边框
    setAttribute(Qt::WA_TranslucentBackground);//设置透明
        setFixedSize(gamerect.right-gamerect.left,gamerect.bottom-gamerect.top);//设置窗口大小


QT绘图
   
        void MainWindow::paintEvent(QPaintEvent *event)   
    {
        QPainter qpainter(this);   
    qpainter.setPen(QColor(255, 160, 230));   //设置画笔颜色
    qpainter.drawText(10,130,"阳光为"+QString::number(SunNumber));//绘制文字
        //若文字不经常改动,可以drawstatictext
        //qpainter.setRenderHint(QPainter::Antialiasing, true);//抗锯齿
        qpainter.drawRect(50, 50, 160, 100);//绘制矩形
        }


使用定时器用来不断获取僵尸信息

        QTimer *timer = new QTimer(this);
        connect(timer,&QTimer::timeout, this, [=]{});
        timer->start(500);

差不多就这些了
代码写的比较差,刚学qt几星期,水平有限,错误之处还请见谅:keai

witeyou 发表于 2022-7-27 20:30

项目有放在github上面吗?

linn12000 发表于 2022-7-27 21:04

学习了,非常好,感谢分享。

ysjd22 发表于 2022-7-28 06:15

好厉害,谢谢分享

lushihao 发表于 2022-7-29 15:32

怎么没找到解压密码

limoyi 发表于 2022-7-30 20:20

lushihao 发表于 2022-7-29 15:32
怎么没找到解压密码

密码:52pojie

lushihao 发表于 2022-7-31 15:22

limoyi 发表于 2022-7-30 20:20
密码:52pojie

不能跨平台 linux 下windows.h找不到

jingshuihuajian 发表于 2022-7-31 17:18

当初学QT的时候,还自带一个贪吃蛇游戏呢{:301_998:}
页: [1]
查看完整版本: 使用QT绘制植物大战僵尸