马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
起因是这帖子【推理游戏demo】罗曼圣诞探案集 说要写个“拖放组件”教程的
后来看到拖放组件(drag drop)文档的最后一个示例是”派侦探到那个城市“... ...改改,做个加强版示例,当教程吧
原示例地址:https://doc.renpy.cn/zh-CN/drag_drop.html#drag-drop-examples
直接看脚本注释,很容易理解的,准备一张背景图(也可以不需要),2个城市和2个侦探的小图(头像?)
[RenPy] 纯文本查看 复制代码 ## “派侦探到那个城市”示例加强版 ##
init python:
def detective_ivy(drags, drop):
# 如果drop为False,即没有任何触碰交互,drags没有放到任何drop上。
if not drop:
# 没有任何触碰交互,0.1秒返回原位置。
drags[0].snap(700 , 600, 0.1)
return
## python语句中变量store.city,Ren’Py脚本中变量 city。
## 具体看这里: [url=https://doc.renpy.cn/zh-CN/python.html?highlight=store#other-named-stores]https://doc.renpy.cn/zh-CN/python. ... #other-named-stores[/url]
# 人物名,存储到变量detective中。
store.detective = drags[0].drag_name
# 城市名,存储到变量city中。
store.city = drop.drag_name
return True
def detective_zack(drags, drop):
# 如果drop为False,即没有任何触碰交互,drags没有放到任何drop上。
if not drop:
# 没有任何触碰交互,0.1秒返回原位置。
drags[0].snap(900 , 600, 0.1)
return
# 人物名,存储到变量detective中。
store.detective = drags[0].drag_name
# 城市名,存储到变量city中。
store.city = drop.drag_name
return True
### 定义一个界面(screen)###
screen send_detective_screen:
# 作为背景的地图。
add "europe.jpg" # 欧洲地图
# DragGroup确保每个侦探可以拖拽到每个城市。
draggroup:
# 可选择侦探
drag:
drag_name "艾薇" # Ivy 艾薇。
# 调用图像
child "ivy.png"
# 若为False,其他Drag对象不能放在该Drag对象上。
droppable False
# 一个回调函数(或回调函数列表),当Drag对象被拖拽时被调用。
dragged detective_ivy
# 人物图位置。
xpos 700 ypos 600
drag:
drag_name "扎克" # Zack 扎克。
# 调用图像
child "zack.png"
# 若为False,其他Drag对象不能放在该Drag对象上。
droppable False
# 一个回调函数(或回调函数列表),当Drag对象被拖拽时被调用。
dragged detective_zack
# 人物图位置。
xpos 900 ypos 600
# 可选择城市。
drag:
drag_name "伦敦" # 伦敦
# 调用图像
child "london.png"
# 若为False,此Drag对象无法被鼠标拖拽。
draggable False
# 城市位置。
xpos 100 ypos 140
drag:
drag_name "巴黎" # 巴黎
# 调用图像
child "paris.png"
# 若为False,此Drag对象无法被鼠标拖拽。
draggable False
# 城市位置。
xpos 150 ypos 450
########################################
# 游戏在此开始。
label start:
"我们需要调查!应该派谁去哪里?"
## call screen ##
call screen send_detective_screen
"好的,我们派 {color=#f00}[detective]{/color} 去 {color=#00ff00}[city]{/color}。"
## 下面是无字体颜色
# "好的,我们派 [detective] 去 [city]。"
return # 结束返回。
|