基于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大模型,一般可以得到解决。

相关推荐
一心0922 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上2 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
snoopyfly~6 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu
BD_Marathon6 小时前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat
BD_Marathon7 小时前
Ubuntu:Tomcat里面的catalina.sh
linux·ubuntu·tomcat
BD_Marathon7 小时前
设置LInux环境变量的方法和区别_Ubuntu/Centos
linux·ubuntu·centos
zhaowangji7 小时前
ubuntu 20.04 安装中文输入法 (sougou pin yin)
linux·ubuntu
Maki Winster15 小时前
Peek-Ubuntu上Gif录制工具-24.04LTS可装
linux·ubuntu·peek
Maki Winster16 小时前
在 Ubuntu 下配置 oh-my-posh —— 普通用户 + root 各自使用独立主题(共享可执行)
linux·运维·ubuntu
Imagine Miracle19 小时前
Ubuntu for ARM 更换为阿里云镜像源
arm开发·ubuntu·阿里云