【Ren‘py】视觉小说游戏开发引擎 | 个人开发 | 基础 | 语法 | 自用 by.Akaxi

devtools/2024/10/21 5:45:10/

ren'py中文官方网址:https://www.renpy.cn/

--------------------------------------------------------------------

一、Ren'py启动器

Ren'py提供了一个launcher,类似于开发者平台,开发者集中环境,需要在笔记本下载,参见官网。

快速入门 — Ren'Py 中文文档 (renpy.cn)

下载并且启动可以看到:

然后我们可以在右下角的“设置”选项,设置我们的开发环境:

注意这里我的项目目录都设置到了自定义的E盘,方便我们后面对文件夹进行管理;然后文本编辑器选择的是Vscode,方便后面对代码进行编辑~语言也设置为中文。

注意在Vscode里面可以在拓展选项增加Ren'Py拓展包,方便敲代码补写~

二、创建项目并编辑文件

创建一个新的项目

给自己的项目名称命名“Akaxi_learn”

分辨率改成:1920x1080

游戏主界面等背景色默认就好,之后我们可以自定义修改GUI界面~

等待一小会儿~

完成啦,我们刚刚创建好了第一个项目,打开目录的“base”,定位到开发文件夹下:

我们对应项目的文件家可以看到,整个工程文件构成:

Ren'py项目文件夹构成解析【Akaxi_learn】

——game 文件夹 整个游戏目录

       ——audio 文件夹 用来存储游戏内自定义的音频

       ——gui 文件夹 用来存储游戏内GUI可视化界面用的图片

       ——images 文件夹 用来存储游戏内使用的图片

       ——gui.rpy 程序 用来自定义游戏GUI界面

       ——options.rpy 程序 用来自定义游戏设置

       ——screens.rpy 程序 用来自定义游戏内各种屏幕信息

       ——script.rpy 程序 脚本文件整个游戏的核心程序

点击我们的项目,启动项目!(ren'py,启动!)

可以看到我们游戏的主体出现啦:

所以我们需要做到事情就是:敲代码,填充图片,音频,文本,自定义开发我们的游戏!

三、构建发行包

由于系统初始化帮助我们完成默认设置,所以我们先体验完成的流程:

新建——开发——发布

来到发布,可以看到构建以下的发行版本:

Windows

Linux

Macos

安卓

ios

 1.windows exe包

等待一会儿生成zip压缩包,解压后可以看到游戏运行exe可执行程序,双击点开,即可畅玩~

2.安卓 apk包

先下载安卓的打包软件RART,需要一小会儿 

然后安装SDK

这里很可能报错哈,需要手动下载~

首先是JDK工具:

JDK工具网址:

https://adoptium.net/zh-CN/temurin/releases/?version=21&os=windows&arch=any

.然后下载对应的版本的.msi文件,注意是JDK21版本的哦:

下载完成后,一直安装就行~

然后是Android Studio和SDK

https://developer.android.google.cn/studio?hl=zh-cn

大概1.1G,等待几分钟即可下载完成~

下载完成后进行安装

一直安装就行:

然后打开Android Studio应用,进行初始化下载,大概10min

这里可能会报错,Android Emulator Hypervisor Driver for AMD Processors installation failed.

解决办法:https://blog.csdn.net/didi_ya/article/details/117659952

也就是一个驱动包有问题,需要在Windows的管理员程序运行几条指令就行,参考上面的博客~

完成后,再次打开renpy

一路确定~

看到生成密钥和配置选项变成蓝色就行啦~

然后点击生成密钥

生成密钥后会有两个密钥文件,记得备份就行

然后进行配置,

然后输入包名:一般是com.作者名.应用名字

内存在2~4G左右

选择横屏

选择不需要购买

然后选择是:

然后点击构建应用包,等待一小会儿(可能需要科学上网~)

如果构建出错,可能需要自己手动下载gradle包

从https://services.gradle.org/distributions/gradle-8.5-bin.zip中下载gradle-8.5-bin.zip文件,然后拷到你的安装renpy的\renpy-8.1.3-sdk\rapt\下面

可以参考renpy中文论坛:

https://www.renpy.cn/forum.php?mod=viewthread&tid=1544&highlight=%E5%AE%89%E5%8D%93

然后开始嘎嘎构建安装包,耐心等待即可

完成

然后在笔记本的文件夹可以看到安卓的apk程序,传输给手机即可下载~

把apk文件传输给手机,然后安装

双击打开游戏:

成果!撒花!!!!!!!

 四、快捷键

在游戏项目界面,有下面的快捷键方便开发:

Shift + D 开发者菜单
Shift + R 重新加载代码与游戏

五、语法

5.1 文本 say

用英文的"   "框起来,里面的内容就是一个角色说的话,然后每一句话前面加一个"  角色  "文本,就是这句话的述说者

    "Akaxi" "这是一个简单的renpy项目""成功了"

5.2 角色 define

我们可以在代码前面定义角色,用一个很简单的字母来代替角色名字,这样方便角色代码的复用,减少开发成本和时间

define A = Character("Akaxi" , color="#e78f0a")
define B = Character("Brone" , color="#0bb1bd")label start:A "你好啊Brone"B "你好啊Akaxi"

5.3 图像 image

与图像相关的4种语句分别是:

  • image - 定义一个新的图像(image)。

  • show - 在图层上(layer)显示一个图像。

  • scene -清空图层(layer),并可选是否在那个图层上显示一个图像。

  • hide - 将图层(layer)上的某个图像移除。

注意:Ren’Py能使用PNG或者WEBP文件作为角色美术资源

注意:JPG、JPEG、PNG或者WEBP文件作为背景美术资源

注意:文件的命名相当重要,Ren’py将使用除去扩展名后,强制字母变为小写的文件名来作为图象名。 

define A = Character("Akaxi" , color="#e78f0a")
define B = Character("Brone" , color="#0bb1bd")label start:scene bg akaxi ## 这里是显示背景A "你好啊Brone"B "你好啊Akaxi"

进一步完善,可以添加背景和人物角色:

define A = Character("Akaxi" , color="#e78f0a")
define B = Character("Brone" , color="#0bb1bd")label start:scene bg world ## 这里是显示背景show akaxi pizza at leftA "你好啊Brone"show brone chicken at rightB "你好啊Akaxi"

然后我们可以添加一些更高级的东西

define A = Character("Akaxi" , color="#e78f0a")
define B = Character("Brone" , color="#0bb1bd")label start:scene bg world ## 这里是显示背景with dissolve  show akaxi pizza at leftA "你好啊Brone"show brone chicken at rightB "你好啊Akaxi"hide brone  ## 可以隐藏角色A "你想要吃披萨吗"hide akaxi  ## 隐藏角色show brone chicken at rightB "我想要吃"B "但是我手上的鸡腿闻着好香啊"

比如hide隐藏,with转场等 

5.4 音频 audio

define A = Character("Akaxi" , color="#e78f0a")
define B = Character("Brone" , color="#0bb1bd")label start:play music "fjordnosundakaze.mp3"  ## 播放音乐scene bg world ## 这里是显示背景with dissolve  show akaxi pizza at leftA "你好啊Brone"show brone chicken at rightB "你好啊Akaxi"hide brone  ## 可以隐藏角色A "你想要吃披萨吗"hide akaxi  ## 隐藏角色show brone chicken at rightB "我想要吃"B "但是我手上的鸡腿闻着好香啊"stop music  ## 结束播放音乐

5.5 菜单 menu

define A = Character("Akaxi" , color="#e78f0a")
define B = Character("Brone" , color="#0bb1bd")label start:play music "fjordnosundakaze.mp3"  ## 播放音乐scene bg world ## 这里是显示背景with dissolve  ## 暂停3秒with Pause(3.0)show akaxi pizza at leftA "你好啊Brone"show brone chicken at rightB "你好啊Akaxi"hide brone  ## 可以隐藏角色A "你想要吃披萨吗"hide akaxi  ## 隐藏角色show brone chicken at rightB "我想要吃"B "但是我手上的鸡腿闻着好香啊"## 第一次抉择menu:"brone要不要吃披萨?""吃!":jump pizza"不吃!":jump chicken## 吃披萨剧情label pizza:B "好啊,我要吃披萨!!好耶"jump end## 不吃披萨剧情label chicken:B "算了吧,我还是吃我的鸡腿吧~"jump endlabel end:"Akaxi和Brone都吃得饱饱的啦~"stop music  ## 结束播放音乐

2024.7.15

渝北仙桃数据谷


http://www.ppmy.cn/devtools/90245.html

相关文章

C# winform 串口读取字节流,MB级别字节流

一、串口读取字节流 在 C# 中使用 Windows Forms (WinForms) 应用程序进行串口通信时,通常会使用 System.IO.Ports 命名空间中的 SerialPort 类。以下是一个简单的示例,展示了如何设置一个串口并读取字节流。 步骤 1: 添加引用 确保你的项目中已经包含…

CSS:图片间空白间距问题的解决方案

一、问题描述 今天有小伙伴遇到多张图片排版显示时中间存在空白间隙&#xff0c;问如何处理&#xff1a; <div> <img width"100%" src"https:/xxx.png" id"1747098" style"max-width:100%;"><img width"100%&qu…

【Python】常用的pdf提取库介绍对比

提取PDF内容的Python库有多种选择&#xff0c;每个库都有其独特的优缺点。以下是一些常用的库以及它们的优缺点和示例代码&#xff1a; pdfplumberPyMuPDF (fitz)PyPDF2PDFMinerCamelot 1. pdfplumber 优点&#xff1a; 易于使用&#xff0c;提供简单直观的API。能提取文本…

前端的学习-CSS(二)-弹性盒子-flex

一&#xff1a;子元素的属性 order&#xff1a;项目的排列顺序&#xff0c;数值越小&#xff0c;排列越靠前&#xff0c;默认为0。 flex-grow&#xff1a;定义项目的放大比例&#xff0c;默认为 0 &#xff0c;即如果存在剩余空间&#xff0c;也不放大。 flex-shrink&#xff1…

SolverLearner:提升大模型在高度归纳推理的复杂任务性能,使其能够在较少的人为干预下自主学习和适应

SolverLearner&#xff1a;提升大模型在高度归纳推理的复杂任务性能&#xff0c;使其能够在较少的人为干预下自主学习和适应 提出背景归纳推理&#xff08;Inductive Reasoning&#xff09;演绎推理&#xff08;Deductive Reasoning&#xff09;反事实推理&#xff08;Counterf…

k8s 部署RuoYi-Vue-Plus之ingress域名解析

可参看https://blog.csdn.net/weimeibuqieryu/article/details/140798925 搭建ingress 1.创建Ingress对象 ingress-ruoyi.yaml其中host替换为你对应域名&#xff0c;需要解析域名到服务器, 同时为后端服务添加了二级域名解析 api. 访问http://xxx.xyz/就能访问前端&#xff0…

概念辨析(1)

原子操作与原子性辨析 原子操作一定具备原子性&#xff0c;是线程安全的。具有原子性的函数或者方法并发一个原子操作不一定具备线程安全性。 原子操作&#xff1a;原子操作是指不会被线程调度机制打断的操作&#xff1b;这种操作一旦开始&#xff0c;就一直运行到结束&#x…

Lambda 表达式(也称为匿名函数)-在java,javascript,python

Lambda 表达式&#xff08;也称为匿名函数或 lambda 函数&#xff09;是一种简洁地表示可以在需要函数对象的地方使用的单表达式的方法。它们是在许多现代编程语言中引入的&#xff0c;包括 Python、Java、C# 和 JavaScript 等&#xff0c;用于编写更简洁、更易于阅读的代码。 …