0-5为星魂,6-7为普攻+天赋
(n int)
| 28 | var skillList = []string{"_rank1.png", "_rank2.png", "_ultimate.png", "_rank4.png", "_skill.png", "_rank6.png", "_basic_atk.png", "_talent.png"} // 0-5为星魂,6-7为普攻+天赋 |
| 29 | |
| 30 | func (t *thisdata) drawcard(n int) (string, error) { |
| 31 | var wg sync.WaitGroup |
| 32 | wg.Add(5) |
| 33 | yinyinBlack127 := color.NRGBA{R: 0, G: 0, B: 0, A: 127} |
| 34 | dc := gg.NewContext(1080, 1680) |
| 35 | dc.SetRGB(1, 1, 1) |
| 36 | if err := dc.LoadFontFace(sinoFile, 40); err != nil { |
| 37 | panic(err) |
| 38 | } |
| 39 | beijing, err := gg.LoadImage(windowsPath) |
| 40 | if err != nil { |
| 41 | return "", err |
| 42 | } |
| 43 | beijing = img.Size(beijing, 0, 1680).Image() |
| 44 | dc.DrawImageAnchored(beijing, 540, 0, 0.5, 0) |
| 45 | lihui, err := gg.LoadPNG(liHuiPath + strconv.Itoa(t.RoleData[n].ID) + ".png") |
| 46 | if err != nil { |
| 47 | return "", err |
| 48 | } |
| 49 | lihui = img.Size(lihui, 0, 880).Image() |
| 50 | sxx := lihui.Bounds().Size().X |
| 51 | dc.DrawImage(lihui, int(300-float64(sxx)/2), 0) |
| 52 | // 昵称框图 |
| 53 | go func() { |
| 54 | defer wg.Done() |
| 55 | zero := gg.NewContext(540, 200) |
| 56 | zero.SetRGB(1, 1, 1) // 白色 |
| 57 | // 角色名字 |
| 58 | if err := zero.LoadFontFace(nameFont, 80); err != nil { |
| 59 | panic(err) |
| 60 | } |
| 61 | zero.DrawStringAnchored(t.RoleData[n].Name, 505, 130, 1, 0) |
| 62 | if err := zero.LoadFontFace(sinoFile, 30); err != nil { |
| 63 | panic(err) |
| 64 | } |
| 65 | zero.DrawStringAnchored("昵称:"+t.Nickname, 505, 40, 1, 0) |
| 66 | if err := zero.LoadFontFace(digenFile, 30); err != nil { |
| 67 | panic(err) |
| 68 | } |
| 69 | zero.DrawStringAnchored("UID:"+t.UID+"-LV."+strconv.Itoa(t.Level), 505, 180, 1, 0) |
| 70 | newying := Yinying(540, 200, 16, color.NRGBA{R: 0, G: 0, B: 0, A: 106}) |
| 71 | dc.DrawImage(newying, 505, 20) |
| 72 | dc.DrawImage(zero.Image(), 505, 20) |
| 73 | }() |
| 74 | // 星魂 |
| 75 | go func() { |
| 76 | defer wg.Done() |
| 77 | ten := gg.NewContext(470, 80) |
| 78 | sdPic, err := gg.LoadImage(skillSdPic) |
| 79 | if err != nil { |
| 80 | panic(err) |
| 81 | } |
| 82 | sdPic = img.Size(sdPic, 0, 80).Image() |
| 83 | sdPicBlack := adjustOpacity(sdPic, 0.5) |
| 84 | var sd image.Image |
| 85 | for a := 0; a < 6; a++ { |
| 86 | if skillpic, err := gg.LoadImage(tPicPath + strconv.Itoa(t.RoleData[n].ID) + skillList[a]); err == nil { |
| 87 | skillpic = img.Size(skillpic, 0, 60).Image() |