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

目录

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

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

[1.2安装mininim 软件所依赖的库](#1.2安装mininim 软件所依赖的库)

[1.3 编译mininim 软件](#1.3 编译mininim 软件)

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

2.1安装相关环境

[2.3编译mininim 软件](#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.5
 ls -l

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

复制代码
mkdir build
 cd 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
  1. 用 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.5
 ls -l

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

复制代码
mkdir build
 cd build

运行cmake

复制代码
cmake ..
  1. 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"
  1. 正式编译 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__':
    # 初始化GPIO
    setup()
    try:
        loop()
    except KeyboardInterrupt:
        # 恢复GPIO口状态
        destroy()

实现效果如下:

树莓派实现流水灯

总结

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

相关推荐
starvapour41 分钟前
Ubuntu硬盘的创建分区、格式化与挂载
linux·ubuntu
Better Bench7 小时前
ThinkStation PGX Ubuntu aarch64架构上使用Docker 配置amd64架构镜像的深度学习环境并使用Vscode开发
ubuntu·docker·架构
weixin_449290018 小时前
Ubuntu 系统上安装和配置 Go 语言运行环境
linux·ubuntu·golang
james bid10 小时前
MacBook Pro 2015 上 XUbuntu 24.04 启用 eGPU (GeForce GTX 1080 Ti) 和核显黑屏问题解决
linux·ubuntu·macos·cuda·egpu
龙吟游戏10 小时前
Ubuntu Server 25.10安装
linux·运维·ubuntu
zzxxlty10 小时前
windows 迁移ubuntu wsl从C盘到D盘
linux·运维·ubuntu
robator10 小时前
ubuntu 22.04 升级nvidia显卡驱动、cuda 和cudnn
linux·服务器·ubuntu
肖恭伟10 小时前
Pycharm历史community版本下载
linux·ubuntu·pycharm·下载·community
shandianchengzi11 小时前
【记录】ARM|Ubuntu 24 快速安装 arm-none-eabi-gdb 及 QEMU 调试实战
linux·arm开发·ubuntu·arm·qemu
starvapour1 天前
Ubuntu下sudo的免密操作
linux·ubuntu