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