早在上高中的时候,就想和朋友一起做一个Galgame。但由于时间与精力不足导致一直都没有正式动工。如今终于有机会完成当时的这个企划,故以此开发日志记录和分享一些开发心得。本人并非计算机相关专业,接下来的内容没有什么技术含量,只是纯粹的记录与分享。
最近在做的是游戏的ui画面,为了符合主题,我在画师提供的bg上做了一些修改,实现了一些“动画效果”
1.流星
以下是参考代码

#定义图片
image menu1 = ("gui/main_menu_1_1080.png")
image menu2 = ("gui/main_menu_2_1080.png")
image meteor1 = ("gui/main_menu/meteor_1.png")
image meteor2 = ("gui/main_menu/meteor_2.png")
image meteor3 = ("gui/main_menu/meteor_3.png")
image meteor4 = ("gui/main_menu/meteor_4.png")
image meteor5 = ("gui/main_menu/meteor_5.png")
image test1 = ("gui/main_menu/sky.png")

#动画
image meteor_a:
subpixel True
contains:
    xalign 1.0
    yalign -0.7
    HBox(   "meteor1",)
    linear 7.0 xpos -10.0 ypos 9.0
    repeat
contains:
    xalign 0.5
    yalign -0.9
    HBox(   "meteor2")
    linear 7.0 xpos -3.0 ypos 2.0
    repeat
contains:
    xalign 2.0
    yalign -1.5
    HBox(   "meteor1")
    linear 7.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 2.0
    yalign -0.7
    HBox(   "meteor2")
    linear 5.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 1.0
    yalign -0.7
    HBox(   "meteor1")
    linear 5.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 2.0
    yalign -1.7
    HBox(   "meteor1")
    linear 5.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 4.0
    yalign -3.7
    HBox(   "meteor1")
    linear 5.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 2.0
    yalign -1.7
    HBox(   "meteor1")
    linear 5.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 4.0
    yalign -3.7
    HBox(   "meteor1")
    linear 15.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 1.0
    yalign -0.5
    HBox(   "meteor3")
    linear 60.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 1.0
    yalign -1.0
    HBox(   "meteor4")
    linear 60.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 2.0
    yalign -1.0
    HBox(   "meteor4")
    linear 60.0 xpos -1.0 ypos 2.0
    repeat
contains:
    xalign 2.0
    yalign -1.5
    HBox(   "meteor4")
    linear 60.0 xpos -1.0 ypos 2.0
    repeat

以上代码主要对流星效果进行定义

2.闪烁的星星
方法与流星有异曲同工之妙,以下为参考代码

#定义图片
image star1 = ("gui/main_menu/star_1.png")
image star2 = ("gui/main_menu/star_2.png")
image star3 = ("gui/main_menu/star_3.png")
image star4 = ("gui/main_menu/star_4.png")
image star5 = ("gui/main_menu/star_5.png")
image star6 = ("gui/main_menu/star_6.png")
image star7 = ("gui/main_menu/star_7.png")
image star8 = ("gui/main_menu/star_8.png")
image star9 = ("gui/main_menu/star_9.png")
image star10 = ("gui/main_menu/star_10.png")
image star11 = ("gui/main_menu/star_11.png")
image star12 = ("gui/main_menu/star_12.png")
image star13 = ("gui/main_menu/star_13.png")
image star14 = ("gui/main_menu/star_14.png")
image star15 = ("gui/main_menu/star_15.png")
image star16 = ("gui/main_menu/star_16.png")
image star17 = ("gui/main_menu/star_17.png")

#定义星星闪烁动画
image star_1:
subpixel True
contains:
    xpos 0.2
    ypos -0.3
    HBox(   "star1")
    alpha 0.0
    linear 3 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 3 alpha 0.0
    repeat
contains:
    xpos 0.3
    ypos -0.4
    HBox(   "star2")
    alpha 0.0
    linear 5 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 5 alpha 0.0
    repeat
contains:
    HBox(   "star3")
    alpha 0.0
    linear 2 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 2 alpha 0.0
    repeat
contains:
    HBox(   "star4")
    alpha 0.0
    linear 4 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 4 alpha 0.0
    repeat
contains:
    HBox(   "star5")
    alpha 0.0
    linear 10 alpha 1.0
    pause 10
    alpha 1.0
    linear 10 alpha 0.0
    repeat
contains:
    HBox(   "star6")
    alpha 0.0
    linear 4 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 5 alpha 0.0
    repeat
contains:
    xpos 0.5
    HBox(   "star7")
    alpha 0.0
    linear 4 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 4 alpha 0.0
    repeat
contains:
    HBox(   "star8")
    ypos -0.3
    alpha 0.0
    linear 3 alpha 1.0
    pause 5
    alpha 1.0
    linear 3 alpha 0.0
    repeat
contains:
    HBox(   "star9")
    xpos 0.5
    yalign 0.2
    alpha 0.0
    linear 2 alpha 1.0
    pause 3
    alpha 1.0
    linear 2 alpha 0.0
    repeat
contains:
    HBox(   "star10")
    alpha 0.0
    linear 7 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 7 alpha 0.0
    repeat
contains:
    HBox(   "star11")
    alpha 0.0
    linear 7 alpha 1.0
    pause 1.5
    alpha 1.0
    linear 7 alpha 0.0
    repeat

以上代码主要对星星的闪烁进行定义
3.主菜单显示

#图层设置
image meteor_b:
subpixel True
contains:
    xalign 0.0
    yalign 0.0
    "menu1"
contains:
    xalign 0.0
    yalign 0.0
    "star_1"
contains:
    xalign 0.0
    yalign 0.0
    "meteor_a"
contains:
    xalign 0.0
    yalign 0.0
    "test2"

#定义溶解效果
define dissolve3 = Dissolve(3.0)
define dissolve2 = Dissolve(2.0)
define dissolve1 = Dissolve(1.0)
#主菜单标签
label before_main_menu:
######################################################
scene menu1
#禁止玩家跳过转场
$_dismiss_pause = False
with dissolve
$ renpy.pause(2.0, hard=True)
show menu2
#禁止玩家跳过转场
$_dismiss_pause = False
with dissolve3
######################################################
show meteor_b
with dissolve1
$ renpy.pause(2.0, hard=True)
return

以上代码调用定义的流星与星星动画使其在主页面正常显示。除此之外,为使此效果不被原有ui打断,应在gui.rpy中注释掉 add gui.main_menu_background