当前位置:
文章详情

pico-8 精彩代码解析 3

2019-11-21 19:45:32 0点赞 0收藏 0评论

pico-8 精彩代码解析 3

pico-8 精彩代码解析 3

作者:Luca@lucatron_
来源:twitter

整理过后 14 行代码:

c={10,9,8,2,1,0}for i=24576,32767 do   poke(i,peek(i)/2)endfor z=6,1,-.1 dofor b=0,7 do    b=b/8+sin(z/8+t()/4)/30    k=19-sin((6-z)/20)*40*(.5+sin(t()/2+z/9+b*2)/2)    circfill(64+cos(b)*k,64+sin(b)*k,z*2.3,c[flr(z)]+c[flr(z+.5)]*16)end

1-2 行,c 是触手的颜色,顶部到底部由明止暗。fillp 是填充样式,点阵图样填充,有种渐变的效果(在最后详细解释)。

pico-8 精彩代码解析 3

4-6 行,是残影效果,这里没有用 cls 清空画布,直接将屏幕内存中的数值每帧减半,最终降为 0 透明,来实现透明效果

pico-8 精彩代码解析 3

10-11 行,两个嵌套循环,外层的 z 表示,每个触手的层数,内层 b 表示触手的数量(8 个)。单个触手是由从下至上,大小递减,颜色逐渐变亮的圆组成,z 表示圆的位置,相当于 z 轴的坐标,从 6-1 共有 60 层。

9 行,b/8 将八只触手映射到 0-1,pico8 中三角函数的参数取值 0-1 代表着 0-360°。在第 11 行的 circlefill 圆的绘制函数中,圆 B 的位置 x,y =  64+cos(b)*k,64+sin(b)*k。其中原点是屏幕的中心点 64, 64;角度 b 为每个触手映射的角度,k 为圆至屏幕中心的距离。

pico-8 精彩代码解析 3

10 行 计算每个圆至屏幕中心的距离 k,我们先把圆的角度 b 从中去掉看下结果。k=19-sin((6-z)/20)*40*(.5+sin(t()/2+z/9)/2)

pico-8 精彩代码解析 3

将圆的 z 轴坐标 z 映射到至中心的距离 k,通过 sin 的映射使得,距离 k 根据 z 呈现正弦波的形状。

最后把角度 b 加回去,k=19-sin((6-z)/20)*40*(.5+sin(t()/2+z/9+b*2)/2) 使得不同的触手在波形上拥有不同的位置。

pico-8 精彩代码解析 3

第 11 行 circlefill 画圆,其中圆的半径 根据 z 轴距离变化,z*2.3。圆的颜色 c[flr(z)]+c[flr(z+.5)]*16 是两个颜色相加,利用高低位的不同颜色,再配合第 2 行的 fillp 实现两种颜色的填充图样。

最后补充下 fillp 的用法。pico8 中用一个 4*4 的图来填充 circ() circfill() rect() rectfill() pset() line() 等函数画的图形。

pico-8 精彩代码解析 3

16 个像素点用上图表格里的数字代表,如果想让某个点不着色就将点对应的数值累加,将最终得到的值传给 fillp,比如只让对角线 32768,1024,32,1 没有颜色,fillp(32768+1024+32+1)

pico-8 精彩代码解析 3

也可以 7+8*16 指定第二个颜色



展开 收起

SONY 索尼 PS5游戏《碧蓝幻想relink 含首发特典》港版

SONY 索尼 PS5游戏《碧蓝幻想relink 含首发特典》港版

354元起

索尼(SONY) PS4 Slim Pro 游戏软件 游戏光盘 地平线2 西部禁域 特别版 港版中文

索尼(SONY) PS4 Slim Pro 游戏软件 游戏光盘 地平线2 西部禁域 特别版 港版中文

235元起

Nintendo 任天堂 港版 Switch游戏卡带《碧姬公主 表演时刻》

Nintendo 任天堂 港版 Switch游戏卡带《碧姬公主 表演时刻》

237元起

SONY 索尼 国行 PS5游戏《地平线西之绝境》

SONY 索尼 国行 PS5游戏《地平线西之绝境》

299元起

任天堂(Nintendo) Switch全新海外版游戏卡带 全明星大乱斗 克劳德amiibo(不含游戏)

任天堂(Nintendo) Switch全新海外版游戏卡带 全明星大乱斗 克劳德amiibo(不含游戏)

125元起

SONY 索尼 PS5游戏光盘《浪人崛起》

SONY 索尼 PS5游戏光盘《浪人崛起》

499元起

喜马拉雅 会员5天/7天/季卡/年卡 会员喜马拉雅V IP会

喜马拉雅 会员5天/7天/季卡/年卡 会员喜马拉雅V IP会

4.5元起

Nintendo 任天堂 Switch游戏 NS 千变的迷宫 风来的希炼6 蛇蜷岛探险谭 中文

Nintendo 任天堂 Switch游戏 NS 千变的迷宫 风来的希炼6 蛇蜷岛探险谭 中文

318元起

任天堂SWITCH游戏卡带NS 逆转裁判456 王泥喜精选集 中文

任天堂SWITCH游戏卡带NS 逆转裁判456 王泥喜精选集 中文

320元起

Nintendo 任天堂 Switch游戏卡带 NS游戏软件 全新海外版 双人成行 双人同行中文

Nintendo 任天堂 Switch游戏卡带 NS游戏软件 全新海外版 双人成行 双人同行中文

172元起

任天堂(Nintendo)Switch游戏卡带 NS游戏软件 全新海外版 【活动】名侦探皮卡丘闪电回归 中文

任天堂(Nintendo)Switch游戏卡带 NS游戏软件 全新海外版 【活动】名侦探皮卡丘闪电回归 中文

99元起

SONY 索尼 现货港版索尼包邮 PS5游戏 龙之信条2 龙族 Dragon's Dogma 2中文

SONY 索尼 现货港版索尼包邮 PS5游戏 龙之信条2 龙族 Dragon's Dogma 2中文

354元起

Nintendo 任天堂 switch游戏卡带 中文 海外版 保税仓 有氧拳击2节奏与锻炼

Nintendo 任天堂 switch游戏卡带 中文 海外版 保税仓 有氧拳击2节奏与锻炼

268元起

索尼(SONY)PS5全新大作游戏光盘 游戏软件 最终幻想7 重生 中文

索尼(SONY)PS5全新大作游戏光盘 游戏软件 最终幻想7 重生 中文

449元起

Nintendo 任天堂 NS游戏卡带《碧姬公主 表演时刻!》

Nintendo 任天堂 NS游戏卡带《碧姬公主 表演时刻!》

285元起

港版 NS游戏卡带《魂斗罗 加鲁加行动》

港版 NS游戏卡带《魂斗罗 加鲁加行动》

289元起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松