如何仅在某些卡片上将图标嵌入Squib中的文本?

时间:2015-08-04 12:17:07

标签: ruby squib

这正是我想要做的事情:每当我的一张牌在我的.csv的“能力”列中有“获得1点贡献”时,输出就是“获得1 [我的贡品图标]”卡片的文本框,格式化,使其成为常规Ability文本的一部分。这可能吗?

P.S。另外,如何让图标具有透明背景?我已经将它们保存在game-icons.net中,但它们总是以白色背景显示。这是我尝试过的:

require 'squib'
require 'game_icons'

Squib::Deck.new(cards: 4, layout: %w(hand.yml layout.yml), width: 825, height: 1425) do
  background color: '#FFFFFF'
  rect x: 0, y: 0, width: 825, height: 1425, x_radius: 38, y_radius: 38
  data = csv file: 'country.csv'
  png file: data['Art'], layout: 'Art'
  png file: 'textbox.png', x: 50, y: 890
  png file: 'titlebox.png', x: 65, y: 30

  tribute = data['Tribute']
    colorl = tribute.collect { |x| fg(x) }
    background color: tribute.map.with_index { |x,i| bg_grad(x, attrr[i]) }
    text str: data['Tribute'], layout: :Tribute, color: colorl
    svg file: tribute.collect {|x| icon(x)}, layout: :TributeIcon
  end

  %w(Title Ability Quote Type Subtype).each do |key|
    text str: data[key], layout: key, markup: true
  end

  %w(Tribute Power Dominion).each do |key|
    svg file: "#{key.downcase}.svg", layout: "#{key}Icon"
    text str: data[key], layout: key
  end

  save_png prefix: 'country_'
end

但是,我现在收到预期的输入结束错误!

1 个答案:

答案 0 :(得分:2)

由于.collect构造需要单个值或所有内容的列表,因此您需要在现有阵列上使用类似ability = csvfile['Ability'] ability_offset = ability.collect { |x| choose_offset(x) } ability_icon = ability.collect { |x| choose_icon(x) } ability_icon_x = ability.collect { |x| choose_icon_loc(x) } 的内容,可能需要使用几个,因为我不需要了解如何将图像插入文本。

所以,你需要像...这样的东西。

text

然后像往常一样在svg<path>命令中使用这些列表,如果没有显示,可能会显示空的存根图像,以保持一致性。

对于图像,查看几个样本, I 将使用透明黑色图标并手动或自动编辑文件,以便fill="white"包括一个stroke="black"属性,如果它有用,可能还有library(stringr) library(devtools) full_patterns <- source_gist("446417161352179ce42c")$value literal_strings <- source_gist("21f5cf342e20c6e4a1e8")$value literal_strings <- literal_strings[order(nchar(literal_strings), decreasing = TRUE)] regex_list <- list() for (i in 1:length(literal_strings)){ regex_list[i] <- paste0("(?<=", literal_strings[i], "?)(?:I\\d-?)*I3(?:-?I\\d)*") } IVs_identified <- list() DVs_identified <- list() for (i in 1:length(regex_list)){ DVs_identified[[i]] <- lapply(full_patterns, str_extract_all, regex_list[[i]]) IVs_identified[[i]] <- lapply(full_patterns, str_extract_all, literal_strings[[i]]) } data.frame(unlist(DVs_identified), unlist(IVs_identified)) length(unlist(DVs_identified)) length(unlist(IVs_identified))