dwitter.net

+ New dweet
function u(t) {
} //
122/140


Please log in (or register) to post a dweet (copy-paste the code somewhere safe to save it meanwhile)


u(t) is called 60 times per second. t: Elapsed time in seconds. S: Shorthand for Math.sin. C: Shorthand for Math.cos. T: Shorthand for Math.tan. R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5) c: A 1920x1080 canvas. x: A 2D context for that canvas.
show FPS hide FPS share fullscreen

function u(t) {

}//
132/140


Please log in (or register) to post as a new dweet (copy-paste code somewhere safe to save it meanwhile).

  • Infinite hopscotch
  • u/Odog8
    Thats nuts
  • u/Joachim
    This 3D-like technique is useful for making single-direction ground textures. This is roughly how it works: A rectangle with a height of ~1px is drawn for every row of pixels on the screen. The width of every rectangle depends on how far down it is (their index). The x position of every rectangle is defined by this bit of code: T(z^z/i+t*9). This is then multiplied by their index to achieve a 3D look, as everything gets bigger & faster near the bottom of the screen. Without the animation or colours, the entire thing can get as small as 64 char: for(i=z=c.width=300;i--;)x.fillRect(140+T(z^z/i+t*9)*i,90+i,i,1). Feel free to get it even smaller!
  • u/vain
    @u/Joachim: Thanks a lot for the litte explanation and example. =)
  • u/Joachim
    #d3 #perspective #mist #colors
  • u/lineburgb
    for(i=z=c.width=300;i--;)x.fillRect(140+T(z^z/i+t*9)*i,90+i,i,1)

Please log in (or register) to comment.

u(t) is called 60 times per second. t: elapsed time in seconds. c: A 1920x1080 canvas. x: A 2D context for that canvas. S: Math.sin C: Math.cos T: Math.tan R: Generates rgba-strings, ex.: R(255, 255, 255, 0.5)