mirror of
https://github.com/direct-img/vibegif.direct-img.link.git
synced 2026-10-29 11:44:51 +00:00
Bring the minimalist section to 50 with 46 new creatures, 500 total
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
// stork flying with a bundle in its beak: its wings flap, it bobs, the bundle swings and the baby inside blinks
|
||||
const{sin,cos,PI}=Math,T=2*PI
|
||||
export const frames=24,delay=80,rim=3,rimColor='#111'
|
||||
export default(c,t)=>{
|
||||
const f=sin(T*t*2),a=.5+.85*f,sw=.18*sin(T*t*2-1.8),bl=t>.55&&t<.62
|
||||
c.fillStyle=c.strokeStyle='#fff';c.lineWidth=6
|
||||
c.translate(5,12)
|
||||
c.translate(0,46-6*sin(T*t*2+1.2))
|
||||
const shape=g=>{c.beginPath();g();c.fill();c.stroke()}
|
||||
const wing=(x,y,r,k,ln)=>{
|
||||
c.save();c.translate(x,y);c.rotate(r);c.scale(k,k)
|
||||
c.beginPath();c.moveTo(14,6);c.bezierCurveTo(-10,-30,-74,-38,-108,-18)
|
||||
c.quadraticCurveTo(-94,-8,-100,0);c.quadraticCurveTo(-86,0,-88,9);c.quadraticCurveTo(-74,8,-74,17);c.quadraticCurveTo(-60,14,-58,22);c.quadraticCurveTo(-24,24,14,6)
|
||||
c.fill();c.stroke()
|
||||
if(ln){c.strokeStyle='#111';c.lineWidth=3;for(const[x0,y0,x1,y1]of[[-100,0,-80,-17],[-88,9,-66,-10],[-74,17,-52,-2],[-58,22,-38,8]])c.beginPath(),c.moveTo(x0+3,y0-3),c.lineTo(x1,y1),c.stroke()}
|
||||
c.restore()}
|
||||
c.lineWidth=5;for(const[y,d]of[[118,0],[123,8]])c.beginPath(),c.moveTo(64,y),c.lineTo(30,y+8+d),c.stroke()
|
||||
c.lineWidth=6
|
||||
wing(130,94,a+.3,.82,0)
|
||||
shape(()=>{c.moveTo(64,102);c.lineTo(34,92);c.lineTo(40,114);c.closePath()})
|
||||
shape(()=>c.ellipse(104,108,56,30,-.1,0,T))
|
||||
c.lineWidth=20;c.beginPath();c.moveTo(140,100);c.quadraticCurveTo(166,98,172,74);c.stroke();c.lineWidth=6
|
||||
shape(()=>c.arc(176,70,18,0,T))
|
||||
c.save();c.translate(204,83);c.rotate(sw)
|
||||
shape(()=>{c.moveTo(-6,2);c.lineTo(-14,-12);c.lineTo(0,-4);c.lineTo(12,-14);c.lineTo(6,2)
|
||||
c.bezierCurveTo(30,20,36,62,0,66);c.bezierCurveTo(-36,62,-30,20,-6,2)})
|
||||
c.fillStyle=c.strokeStyle='#111';c.lineWidth=3;c.beginPath();c.arc(0,42,14,0,T);c.stroke()
|
||||
for(const d of[-1,1])if(bl)c.beginPath(),c.arc(d*5.5,40,3.5,.15*PI,.85*PI),c.stroke()
|
||||
else c.beginPath(),c.arc(d*5.5,41,3,0,T),c.fill()
|
||||
c.beginPath();c.arc(0,46,4,.2*PI,.8*PI);c.stroke()
|
||||
c.restore()
|
||||
c.fillStyle=c.strokeStyle='#fff';c.lineWidth=6
|
||||
shape(()=>{c.moveTo(186,62);c.lineTo(229,86);c.lineTo(188,80);c.closePath()})
|
||||
wing(118,98,a,1,1)
|
||||
c.fillStyle='#111';c.beginPath();c.arc(180,66,5,0,T);c.fill()
|
||||
}
|
||||
Reference in New Issue
Block a user