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

基于ubuntu和树莓派环境对游戏进行移植

目录

一、在Ubuntu中对波斯王子游戏进行移植

1.1修改Ubuntu系统的仓库镜像网站为国内网站

1.2安装mininim 软件所依赖的库 

1.3 编译mininim 软件 

二、在树莓派中对波斯王子游戏移植

2.1安装相关环境

2.3编译mininim 软件

三、使用树莓派实现流水灯


一、在Ubuntu中对波斯王子游戏进行移植

1.1修改Ubuntu系统的仓库镜像网站为国内网站

$ sudo cp /etc/apt/sources.list  /etc/apt/sources.list.bak$ sudo gedit /etc/apt/sources.list

打开sources.list,把文件原内容全部删除,改为以下文本内容(以ubuntu18.04为例,其他版本不一样):

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

然后保存文件,运行下面代码看是否从清华源下载的

sudo apt-get update

1.2安装mininim 软件所依赖的库 

1. 用apt-get remove命令清除干净之前可能安装过的各项allegro5依赖库(如果系统没有这些库,也不报错)

sudo apt-get remove liballegro5-dev liballegro-image5-dev liballegro-audio5-dev liballegro
acodec5-dev liballegro-dialog5-dev

 2. 用apt-get install 命令安装各种make、gcc等编译工具链软件(以防Ubuntu系统没有,如果已用有,则会自动下载更新到合适版本或最新版本),gnulib和lua50库等。

sudo apt-get install automake autoconf gcc make cmake gnulib libcanberra-gtk-module lua50 
liblua50-dev liblualib50-dev libreadline-dev

3. 用 apt-get build-dep 命令检测 allegro5游戏库的环境依赖是否完整,自动下载必要的依赖项,为编译 Allegro5 源码做好环境准备。

sudo apt-get build-dep allegro5

 4. 从git源码仓库下载mininim 需要的allegro5.x 版本源码。因为之前下过用ls命令可以看见有allegro5_v5.2.5目录

git clone https://gitee.com/flycloud2009_cloudlou/allegro5_v5.2.5.git

然后,先cd 进入游戏源代码主目录下, 再ls  显示一下目录中的文件, 你会看见文件中有一个CMakeLists.txt 文件,但是没有 Makefile 文件。

cd allegro5_v5.2.5ls -l

在此目录下,创建 一个 build 子目录,再cd 进入 build子目录

mkdir buildcd build

 先运行cmake, 注意后面 带的参数是两个 .., .. 代表上一级目录,这条命令是然 cmake 读取上一级目录下的 CMakeLists.txt 文件。

cmake ..

此时,在当前目录build 下,再 ls -l 一下,会看见出现许多目录和文件,其中就用 Makefile文件,文件日期是最新时间。有了 Makefile文件,就可以进入Linux系统 代码编译流程的常规第二步: make 从源码生成二进制库或可执行文件

make

如果make 成功完成 (没有出现错误信息),在build目录下就会生成lib和include等子目录,如下:

lib目录中主要是allegro5 的各种库,主要是动态库,已经成功创建。文件名一般是 liballegroxxx.so.5.2.5 ,如果你用ls 查看 lib目录下的文件

ls -al lib

运行下面命令,make 会按照Makefile中 install对应的项目规则(主要是一些 cp 命名),把相关库文件复制到公共系统目录中。

sudo make install

这一步 安装游戏引擎allegro5 (准确是5.2.5 版本)就完成了。 为了稳妥起见,可以运行一下上面make编译 allegro5.2.5 库时,它顺带编译生成的一些demo游戏程序,看是否能正常运行。
做法如下,进入examples目录,选择一个程序运行:

cd examples./ex_multiwin

如果程序出现窗口,表示代码正常运行,就可以退出了。

1.3 编译mininim 软件 

接着上面的步骤继续。 下载mininim仓库源码,进行编译。 此时你的工作目标应该重新返回到home目录下(假定是 /home/lyy)。

cd  /home/lyy

然后下载mininim仓库源码。

git clone https://gitee.com/flycloud2009_cloudlou/mininim.git

下载成功后,进入游戏目录,进行环境准备(运行作者写的脚本文件 bootstrap),执行常规的环境依赖配置(运行作者写的configure)

./bootstrap

然后继续

./configure LUA_LIB="-llua50 -llualib50"

如果上面都没有出错,目录下将生成 Makefile 文件。
正式编译 mininim 源代码:

make

如果没有出错,当前目录下 出现一个游戏程序文件 mininim,运行它

./mininim

最后可以看到游戏界面

二、在树莓派中对波斯王子游戏移植

2.1安装相关环境

下载相关安装包时,树莓派可能找不到相应包,我们可以指定从清华源里面找相关安装包。

2.2 安装mininim 软件所依赖的库

1.用apt-get install 命令安装各种make、gcc等编译工具链软件(以防Ubuntu系统没有,如果已用有,则会自动下载更新到合适版本或最新版本),gnulib和lua50库等。

sudo apt-get install automake autoconf gcc make cmake gnulib libcanberra-gtk-module lua50 
liblua50-dev liblualib50-dev libreadline-dev

2. 用 apt-get build-dep 命令检测 allegro5游戏库的环境依赖是否完整,自动下载必要的依赖项,为编译 Allegro5 源码做好环境准备。

sudo apt-get build-dep allegro5

3.从git源码仓库下载mininim 需要的allegro5.x 版本源码。

git clone https://gitee.com/flycloud2009_cloudlou/allegro5_v5.2.5.git

4.然后,先cd 进入游戏源代码主目录下,

cd allegro5_v5.2.5ls -l

5.在此目录下,创建 一个 build 子目录,再cd 进入 build子目录中

mkdir buildcd build

 运行cmake

cmake ..

6. make 从源码生成二进制库或可执行文件

make

如果make 成功完成 (没有出现错误信息),在build目录下就会生成lib和include等子目录,如下:

7.lib目录中主要是allegro5 的各种库,主要是动态库,已经成功创建。文件名一般是 liballegroxxx.so.5.2.5 ,如果你用ls 查看 lib目录下的文件

ls -al lib
sudo make install

2.3编译mininim 软件

1.后下载mininim仓库源码

git clone https://gitee.com/flycloud2009_cloudlou/mininim.git

2.下载成功后,进入游戏目录,进行环境准备(

./bootstrap

然后继续

./configure LUA_LIB="-llua50 -llualib50"

3. 正式编译 mininim 源代码

make

4.编译后运行

./mininim

三、使用树莓派实现流水灯

本次实验主要使用python代码实现相应流水灯操作

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
# BCM GPIO编号
pins = [17,18,27,22,23,24,25,4]
def setup():# 采用BCM编号GPIO.setmode(GPIO.BCM)# 设置所有GPIO为输出状态,且输出低电平for pin in pins:GPIO.setup(pin, GPIO.OUT)GPIO.output(pin, GPIO.LOW)
def loop():while True:# 循环点亮for pin in pins:GPIO.output(pin, GPIO.HIGH)time.sleep(0.5)GPIO.output(pin, GPIO.LOW)time.sleep(0.5)
def destroy():for pin in pins:GPIO.output(pin, GPIO.LOW)GPIO.setup(pin, GPIO.IN)
if __name__ == '__main__':# 初始化GPIOsetup()try:loop()except KeyboardInterrupt:# 恢复GPIO口状态destroy()

实现效果如下:

树莓派实现流水灯

总结

移植游戏的过程中会因为环境出现很多问题,不能解决的可以问AI大模型,一般可以得到解决。

http://www.xdnf.cn/news/768601.html

相关文章:

  • cJSON简单使用
  • uniapp路由跳转toolbar页面
  • 为何ERP系统更倾向使用业务编码作为主键?兼顾可读性与系统集成的设计思考
  • 【Zephyr 系列 3】多线程与调度机制:让你的 MCU 同时干多件事
  • oracle sql 语句 优化方法
  • 数据库系统概论(十三)详细讲解SQL中数据更新(插入,修改与更新)
  • RocketMQ 消息发送核心源码解析:DefaultMQProducerImpl.send () 方法深度剖析
  • 前端开发知识体系全景指南
  • 小目标检测:YOLOV7改进之双坐标注意力(DCA)
  • Python Day41
  • 神经网络与深度学习(第一章)
  • 链式前向星图解
  • 排序算法C语言实现
  • Linux配置DockerHub镜像源配置
  • Qt实现的水波进度条和温度进度条
  • 神经网络中的梯度消失与梯度爆炸
  • cnn训练并用grad-cam可视化
  • 基于遥感图像深度学习的海洋测深
  • 2024年数维杯国际大学生数学建模挑战赛C题时间信号脉冲定时噪声抑制与大气时延抑制模型解题全过程论文及程序
  • 题目 3230: 蓝桥杯2024年第十五届省赛真题-星际旅行
  • [蓝桥杯]约瑟夫环
  • web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)
  • 2025年5月24日系统架构设计师考试题目回顾
  • 【RAG 应用的可视化框架】
  • 【C++】类的构造函数
  • 【iOS(swift)笔记-13】App版本不升级时本地数据库sqlite更新逻辑一
  • 软件测评师教程 第2章 软件测试基础 笔记
  • 大数据-275 Spark MLib - 基础介绍 机器学习算法 集成学习 随机森铃 Bagging Boosting
  • 【C++进阶篇】C++11新特性(上篇)
  • 【笔记】在 Clang 工具链中降级 NumPy 到 2.2.4