马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
如题,关于可视化音乐以及游戏内渲染图表一类之后看情况可能考虑GitHub开源试试,目前正在写音乐室的歌词导入,大体完工,不能正常导入日韩歌词以及时间轴可能会出现许多莫名其妙的bug可能之后会在群里找大佬们问问技术相关的问题orz
首先是主体:
[RenPy] 纯文本查看 复制代码 init python:
class MouseTooltip(renpy.Displayable):
def __init__(self, **kwargs):
super(renpy.Displayable, self).__init__(**kwargs)
self.text = Text("")
self.textsize = 18
if music_room == False:
self.textcolor = Color("#D3D3D3")
else:
self.textcolor = Color("#000000")
self.padding = 0
self.bold = False
self.backgroundcolor = Color("#000000", alpha=0)
self.x = 0
self.y = 0
def render(self, width, height, st, at):
## 避免在清除文本时渲染空矩形
if self.text.text != [""]:
w, h = self.text.size()
render = renpy.Render(w, h)
## 确保tooltip靠近屏幕边缘的时候还能正常显示在屏幕上
x = self.x + self.padding
else:
x = self.x - self.padding -12
if x > config.screen_width - w - self.padding:
x = config.screen_width - w - self.padding
y = self.y-h-self.padding*2 ## -h会将将文本放置在鼠标上方,+h反之
if y < 0:
y = 0
fixed = Fixed(self.backgroundcolor, xpos=-self.padding, xsize=int(w)+self.padding*2, ysize=int(h)+self.padding*2)
fixed.add(self.text)
render.place(fixed, x, y)
return render
return renpy.Render(1, 1)
def event(self, ev, x, y, st):
import pygame
## 忽略除“MOUSEMOTION”之外的所有事件
if ev.type != pygame.MOUSEMOTION:
return None
self.x = x
self.y = y
tooltip = GetTooltip()
if tooltip:
self.text = Text(tooltip, size=self.textsize, color=self.textcolor, xpos=self.padding, ypos=self.padding, bold=self.bold, font="/fonts/NotoSansHans-Regular.otf")
renpy.redraw(self, 0)
elif self.text.text != [""]:
## 避免不必要的重绘
self.text = Text("")
## 只清除一次文本
renpy.redraw(self, 0)
define mousetooltip = MouseTooltip()
相比原本的tooltip能够更好的应用在一些图像模块上(可用于图像数值菜单)
这里有个简单的调用实例:
[RenPy] 纯文本查看 复制代码 vbox:
style_prefix "navigation"
xalign 0.145
yalign 0.93
frame:
background None
padding (0, 0, 0, 0)
imagebutton:
idle im.MatrixColor(gui.button_url, im.matrix.colorize('#a9a9a9dd', '#dcdcdcdd') * im.matrix.opacity(0.95), xalign=0.5, yalign = 0.5)
hover im.MatrixColor(gui.button_url, im.matrix.colorize('#dcdcdcdd', '#a9a9a9dd') * im.matrix.opacity(0.55), xalign=0.5, yalign = 0.5)
# foreground "URL_button_text"
at main_menu_url_hover
activate_sound "audio/Menu/g_ui_confirm.wav"
hover_sound "audio/Menu/g_ui_btn_n.wav"
if URL.user_networking == True:
if URL.user_Draw_renpy == 1:
action [Function(URL.check_Orientation_Jump),Function(Draw.Webpage.auto_in_renpy)]
else:
action [Function(URL.auto_Orientation_Jump)]
if URL.user.Draw_renpy == 1:
tooltip "显示官网 (可能会占用大量资源)" ## if不是必要的,可以去掉
else:
tooltip "跳转官网"
at main_menu_button_floor(0.3)
## 必要部分
$ tooltip = GetTooltip()
if tooltip:
timer 0.001 action SetVariable("tt_timer", True)
if tt_timer:
add MouseTooltip()
$ mouse_pos = renpy.get_mouse_pos()
$ renpy.set_mouse_pos(mouse_pos[0], mouse_pos[1])
else:
timer 0.001 action SetVariable("tt_timer", False)
|