Qt固件映像 Raspberry Pi 嵌入式C++(Qt)编程

Qt C++创建突围游戏应用示例

在我们的游戏中,我们有一个桨、一个球和三十块砖。 计时器用于创建游戏周期。 我们不处理角度,我们只是改变方向:上、下、左、右。

Qt5 库是为创建计算机应用程序而开发的。尽管如此,它也可以用来创建游戏。开发计算机游戏是了解有关 Qt5 的更多信息的好方法。

c++ 复制代码
#include <QImage>
#include <QRect>

class Pdle {

  public:
    Pdle();
    ~Pdle();

  public:
    void resetState();
    void move();
    void setDx(int);
    QRect getRect();
    QImage & getImage();

  private:
    QImage image;
    QRect rect;
    int dx;
    static const int INITIAL_X = 200;
    static const int INITIAL_Y = 360;
};

这是对象的头文件。 INITIAL_X 和 INITIAL_Y 是常量,表示桨对象的初始坐标。

c++ 复制代码
#include <iostream>
#include "pdle.h"

Pdle::Pdle() {
    
  dx = 0;    
  image.load("paddle.png");

  rect = image.rect();
  resetState();
}

Pdle::~Pdle() {
    
 std::cout << ("Paddle deleted") << std::endl;
}

void Pdle::setDx(int x) {
  dx = x;
}

void Pdle::move() {
    
    int x = rect.x() + dx;
    int y = rect.top();
    
    rect.moveTo(x, y);
}

void Pdle::resetState() {
    
  rect.moveTo(INITIAL_X, INITIAL_Y);
}

QRect Pdle::getRect() {
    
  return rect;
}

QImage & Pdle::getImage() {
    
  return image;
}

桨可以向右或向左移动。

c++ 复制代码
Pdle::Pdle() {
    
  dx = 0;    
  image.load("paddle.png");

  rect = image.rect();
  resetState();
}

在构造函数中,我们初始化 dx 变量并加载桨图像。我们获取图像矩形并将图像移动到其初始位置。

C++ 复制代码
void Pdle::move() {
    
    int x = rect.x() + dx;
    int y = rect.top();
    
    rect.moveTo(x, y);
}

move 方法移动桨的矩形。移动方向由 dx 变量控制。

c++ 复制代码
void Pdle::resetState() {
    
  rect.moveTo(INITIAL_X, INITIAL_Y);
}

ResetState 将桨移至其初始位置。

C++ 复制代码
#pragma once

#include <QImage>
#include <QRect>

class Brick {

  public:
    Brick(int, int);
    ~Brick();

  public:
    bool isDestroyed();
    void setDestroyed(bool);
    QRect getRect();
    void setRect(QRect);
    QImage & getImage();

  private:
    QImage image;
    QRect rect;
    bool destroyed;
};

...

Raspberry Pi Qt固件映像

创建嵌入式环境、加载固件、连接Raspberry Pi和启动、安装RSync跨机器同步目录工具、安装Qt

Raspberry Pi 上Qt 编程基础

  • 创建项目、设计UI、配置 Qt creator、编译和部署目标对象、目标(Raspberry Pi)执行应用和调试
  • Qt信号和槽、Qt自省、模型/视图、管理整体工作流程、编程小部件、创建小部件和基于 QML 的 GUI
  • Qt 中存储和检索数据、Qt Creator 中实现状态机模型、GUI 中显示虚拟键盘、实现嵌入式 WebSocket 服务器
  • 实现天气提取器预测天气、QSensor 类和 QSensor 插件读取 Sense HAT 板上温度传感器、构建Qt MQTT
  • QSettings 类保存和恢复跨平台程序设置、D-Bus通讯应用、WebGL远程GUI
  • 代码分析、测试、记录、线程

Qt应用开发

  • 构建自定义 C++ 库并将其链接到 Qt 应用程序,使用 Qt 提供的工具构建和调试应用程序
  • 使用 C ++创建 Qt 应用程序和使用 Qt Quick 和 QML 脚本语言创建相同的计算器程序
  • 使用基本的 Qt 核心和网络类来构建后端逻辑;利用多线程将工作负载分散到不同的 CPU 线程以加快处理速度;利用 HTTP 请求与远程服务器通信并从中获取数据;解析不同类型的数据格式,例如 XML 和 JSON
  • Qt对MVC范式的应用;Qt 对 WebEngine 浏览器的支持,构建混合应用程序将 JavaScript 和 HTML 与 Qt 相结合
  • 使用 QPainter 类在屏幕上和屏幕外绘制图形;在 Qt 中创建自定义小部件;Graphics View 框架创建了一个简单的游戏
  • Qt 应用程序开发的声明式框架;Web 引擎组件创建一个简单的 Web 浏览器;Qt Quick 列表视图创建一个简单的列表;利用状态构造根据对象的当前状态更改对象的属性;利用 SCXML 编辑器创建更复杂的状态机;连接 Qt Quick 和 C;创建一个图片库
  • 使用Qt Quick提供的管理音频和视频媒体,以及如何控制摄像头(如果存在)的功能
  • 确定设备传感器的测量结果,包括设备的定位系统、加速计和其他传感器;在地图上显示设备的位置,以便用户可以看到该位置及其上下文,而不仅仅是坐标数字
  • 标记可翻译的文本;使用 Qt Linguist 将这些文本导出到一个列表中;将翻译后的文本加载回 Qt 应用程序并根据用户的偏好显示它们;本地化特殊字符,例如货币和日期
  • 设置 Android 版 Qt Creator;将应用程序部署到 Android 设备;设置适用于 iOS 的 Qt Creator
  • 设置嵌入式 Linux 映像;从 Windows 机器交叉编译 Qt 项目并将其导出到 Linux 设备;配置Qt框架并缩小其大小,使其适合嵌入式设备;将应用程序部署在实际的嵌入式设备上
  • 创建二维图形视图,二维图形动画游戏;动画中加载外部数据;动画数据容器传输和储存;动画连接网络服务器;自定义光栅图形小部件;Qt 使用 OpenGL 和 Vulkan 图形加速二维和三维图形;C++连接JavaScript和Python脚本丰富动画功能;增强动画内容,如碰撞检测、状态驱动对象和基于时间的游戏循环;在 Qt Quick 的场景图中配置粒子系统并实现 OpenGL 绘画,创建三维动画

自定义Yocto项目

项目:开发 Qt/C++ 蓝牙代理

参阅一:亚图跨际
参阅二:亚图跨际
相关推荐
凌云行者25 分钟前
OpenGL入门005——使用Shader类管理着色器
c++·cmake·opengl
凌云行者28 分钟前
OpenGL入门006——着色器在纹理混合中的应用
c++·cmake·opengl
spygg1 小时前
Qt低版本多网卡组播bug
qt·组播·多网卡组播·qt5.7.0
~yY…s<#>1 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode
码农客栈1 小时前
qt QWebSocketServer详解
qt
可均可可2 小时前
C++之OpenCV入门到提高004:Mat 对象的使用
c++·opencv·mat·imread·imwrite
白子寰2 小时前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
小芒果_012 小时前
P11229 [CSP-J 2024] 小木棍
c++·算法·信息学奥赛
gkdpjj2 小时前
C++优选算法十 哈希表
c++·算法·散列表
王俊山IT2 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习