合成大西瓜之抱歉~ 我只有大西瓜和刀劍神域~!!
文章首發于公眾號 Java4ye
鏈接地址 :合成大西瓜之抱歉~ 我只有大西瓜和刀劍神域~!!
當當當當~
吃瓜嘞~ 吃瓜嘞~
先給小伙伴們看看這個效果~


簡單介紹下水果的種類~
哈哈哈哈 我看那個橘子也太像籃球了吧 菠蘿有點像榴蓮披薩~

對應代碼里的水果如下~ 這里黃色方框的數字就是水果陣列fruits中的最后一個

下面這注釋掉的部分是游戲的主要邏輯~
當你點擊使水果掉落后 createFruitCount 會加一 ,
開始順序是 葡萄 葡萄 葡萄 櫻桃 橘子 橘子 檸檬 然后就開始隨機上面 水果陣列fruits 中的前五種水果啦~
這里博主把這段邏輯注釋掉,換成這句代碼就變成上面 gif 圖的效果啦
a.default.Instance.createOneFruit(9)

修改圖片的話也比較簡單,我們只需要通過chrome瀏覽器的除錯視窗就i可以看到這些圖片,接著替換他們即可

博主這里也將他們整理出來啦~
| 水果 | 地址 | 尺寸 |
|---|---|---|
| 葡萄 | http://192.168.142.1:5000/res/raw-assets/ad/ad16ccdc-975e-4393-ae7b-8ac79c3795f2.png | 52*52 |
| 櫻桃 | http://192.168.142.1:5000/res/raw-assets/0c/0cbb3dbb-2a85-42a5-be21-9839611e5af7.png | 80*80 |
| 橘子 | http://192.168.142.1:5000/res/raw-assets/d0/d0c676e4-0956-4a03-90af-fee028cfabe4.png | 108*108 |
| 檸檬 | http://192.168.142.1:5000/res/raw-assets/74/74237057-2880-4e1f-8a78-6d8ef00a1f5f.png | 119*119 |
| 獼猴桃 | http://192.168.142.1:5000/res/raw-assets/13/132ded82-3e39-4e2e-bc34-fc934870f84c.png | 153*152 |
| 番茄 | http://192.168.142.1:5000/res/raw-assets/03/03c33f55-5932-4ff7-896b-814ba3a8edb8.png | 183*183 |
| 桃子 | http://192.168.142.1:5000/res/raw-assets/66/665a0ec9-6c43-4858-974c-025514f2a0e7.png | 193*193 |
| 菠蘿 | http://192.168.142.1:5000/res/raw-assets/84/84bc9d40-83d0-480c-b46a-3ef59e603e14.png | 258*258 |
| 椰子 | http://192.168.142.1:5000/res/raw-assets/5f/5fa0264d-acbf-4a7b-8923-c106ec3b9215.png | 308*308 |
| 半個西瓜 | http://192.168.142.1:5000/res/raw-assets/56/564ba620-6a55-4cbe-a5a6-6fa3edd80151.png | 308*309 |
| 大西瓜 | http://192.168.142.1:5000/res/raw-assets/50/5035266c-8df3-4236-8d82-a375e97a0d9c.png | 408*408 |
下面進入python教學~
先準備好圖片, 命名如下 像這樣子~

接下來要使用用 python 的 PIL 庫將他們裁剪成圓形
安裝模塊
pip install pillow
代碼參考了 https://www.sohu.com/a/336796776_120045344 這篇文章
創建 ``image2circle.py` 檔案
# -*- coding: utf-8 -*-
# @Time : 2021/2/10 17:01
# @Author : Java4ye
from PIL import Image, ImageDraw, ImageFilter
import os
def crop_max_square(pil_img):
return crop_center(pil_img, min(pil_img.size), min(pil_img.size))
def crop_center(pil_img, crop_width, crop_height):
img_width, img_height = pil_img.size
return pil_img.crop(
(
(img_width - crop_width) // 2,
(img_height - crop_height) // 2,
(img_width + crop_width) // 2,
(img_height + crop_height) // 2)
)
def mask_circle_transparent(pil_img, blur_radius, offset=0):
offset = blur_radius * 2 + offset
mask = Image.new("L", pil_img.size, 0)
draw = ImageDraw.Draw(mask)
draw.ellipse((offset, offset, pil_img.size[0] - offset, pil_img.size[1] - offset), fill=255)
mask = mask.filter(ImageFilter.GaussianBlur(blur_radius))
result = pil_img.copy()
result.putalpha(mask)
return result
imgFolder = "H://dxg_img"
imgs = os.listdir(imgFolder)
for img in imgs:
print(img)
img_path = os.path.join(imgFolder, img)
if os.path.isfile(img_path):
markImg = Image.open(img_path)
w, h = markImg.size
# thumb_width = 158
im_square = crop_max_square(markImg).resize((w, h), Image.LANCZOS)
im_thumb = mask_circle_transparent(im_square, 0)
im_thumb.save('H://dxg_img//circle//' + img)
創建 resetImage2dxg.py 檔案
這里主要是幫你將圖片拷貝到對應的檔案夾~
import os
import shutil
import time
millis = int(round(time.time() * 1000))
daxiegua_dir = "I://daxigua-1.0.0//"
imgFolder = "H://dxg_img//circle"
urls = [
'http://192.168.142.1:5000/res/raw-assets/ad/ad16ccdc-975e-4393-ae7b-8ac79c3795f2.png',
'http://192.168.142.1:5000/res/raw-assets/0c/0cbb3dbb-2a85-42a5-be21-9839611e5af7.png',
'http://192.168.142.1:5000/res/raw-assets/d0/d0c676e4-0956-4a03-90af-fee028cfabe4.png',
'http://192.168.142.1:5000/res/raw-assets/74/74237057-2880-4e1f-8a78-6d8ef00a1f5f.png',
'http://192.168.142.1:5000/res/raw-assets/13/132ded82-3e39-4e2e-bc34-fc934870f84c.png',
'http://192.168.142.1:5000/res/raw-assets/03/03c33f55-5932-4ff7-896b-814ba3a8edb8.png',
'http://192.168.142.1:5000/res/raw-assets/66/665a0ec9-6c43-4858-974c-025514f2a0e7.png',
'http://192.168.142.1:5000/res/raw-assets/84/84bc9d40-83d0-480c-b46a-3ef59e603e14.png',
'http://192.168.142.1:5000/res/raw-assets/5f/5fa0264d-acbf-4a7b-8923-c106ec3b9215.png',
'http://192.168.142.1:5000/res/raw-assets/56/564ba620-6a55-4cbe-a5a6-6fa3edd80151.png',
'http://192.168.142.1:5000/res/raw-assets/50/5035266c-8df3-4236-8d82-a375e97a0d9c.png'
]
imgs = [
'52.png',
'80.png',
'108.png',
'119.png',
'153.png',
'183.png',
'193.png',
'258.png',
'308.png',
'309.png',
'408.png'
]
i = 0
for url in urls:
a = url.rindex(":")
beginIndex = url.index("/", a)
lastIndex = url.rindex("/")
contextPath = url[beginIndex:lastIndex + 1]
realFileName = url[lastIndex + 1:]
folder = daxiegua_dir + contextPath
fileNames = os.listdir(folder)
for fileName in fileNames:
if fileName == realFileName:
arr = fileName.split(".")
os.path.join(folder, )
shutil.copyfile(folder + "//" + fileName, folder + "//" + "Java4ye_" + str(millis) + "." + arr[1])
shutil.copyfile(imgFolder + "//" + imgs[i], folder + "//" + fileName)
i += 1
準備好土圖片后,運行 ``image2circle.py檔案將圖片剪切成圓形的,接著運行resetImage2dxg.py` 檔案 即可將圖片拷貝到相應的目錄中,
博主這里參考了魚皮大佬的教程: https://juejin.cn/post/6923047027475644430
下面是原始碼地址 : https://github.com/liyupi/daxigua/releases/tag/1.0.0
在本地運行的話需要安裝 node.js 還有 vue-cli 還有 serve ,具體可以看看上面大佬的文章
運行起來的效果如下:

打開專案結構我們可以看到下面這些檔案~
紅框這個是什么呢?

搜搜看,原來是游戲引擎!!!
哇塞! 完了 感覺又要入坑啥了 我這該死的好奇心 (我 Springcloud Gateway 還沒寫呢 (,???)ノ)
https://www.cocos.com/docs

看了老半天發現還對電腦顯卡有點要求,想了想我滴小霸投訓是算了 哈哈哈
教程地址: https://docs.cocos.com/creator/manual/zh/getting-started/quick-start.html
不過還是有點小識訓的~ 這東西還可以變得Q彈 !
在檔案中點擊輸入查找 PhysicsCircleCollider


添加上述代碼可實作下面的效果

試玩地址 : https://dxgv01.vercel.app
復制到手機瀏覽器上就可以玩啦
作者簡介 :Java4ye 一個專注于提高作業效率~ (增加摸魚時間) 的小白博主,分享學習資源,技術感悟,程式員生活的點點滴滴 讓我們一起摸魚~(●ˇ?ˇ●)
關注公眾號: Java4ye 這里給你準備了一系列學習資源啦,還有各種插件,軟體哦
歡迎留言!謝謝支持!ヾ(≧▽≦*)o
2021一起好好加油! (? ?_?)?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259022.html
標籤:其他

