Stick Figure Animations
Text:
@@============================================================================
@@ .:....1....:....2....:....3....:....4....:....5....:....6....:....7....:...
@@ ---------------------------------------------------------------------------
@@ stick figure animations
@@ (soon, I hope to convert these from line-based streams to character-
@@ based ones, so that they can be placed in any location on the console.)
@@ ---------------------------------------------------------------------------
@@ .:....1....:....2....:....3....:....4....:....5....:....6....:....7....:...
@@ ---------------------------------------------------------------------------
@@ Source of material for 'cartwheel': Unsigned material located at...
@@ http://www.geocities.com/SouthBeach/Marina/4942/ascii.htm
@@
@@ 'Juggle', an original animation by Trispis.
@@ ---------------------------------------------------------------------------
@@ .:....1....:....2....:....3....:....4....:....5....:....6....:....7....:...
@@ ---------------------------------------------------------------------------
@wait 0=@set me=~:[create(stickman,10)]
@set [get(me/~)]=!no_command
&A0`1 [get(me/~)]=§§o§§
&A0`2 [get(me/~)]=§/|\§
&A0`3 [get(me/~)]=§/§\§
&A1`1 [get(me/~)]=\§o§/
&A1`2 [get(me/~)]=§§|§§
&A1`3 [get(me/~)]=§/§\§
&A2`1 [get(me/~)]=§_§o§
&A2`2 [get(me/~)]=§§/\§
&A2`3 [get(me/~)]=§|§\§
&A3`1 [get(me/~)]=§§§§§§§
&A3`2 [get(me/~)]=§§___\o
&A3`3 [get(me/~)]=§/)§§|§
&A4`1 [get(me/~)]=§§§__|§§
&A4`2 [get(me/~)]=§§§§§\o§
&A4`3 [get(me/~)]=§§§§§(§\
&A5`1 [get(me/~)]=§§§§§§\§/
&A5`2 [get(me/~)]=§§§§§§§|§
&A5`3 [get(me/~)]=§§§§§§/o\
&A6`1 [get(me/~)]=§§§§§§§§§§|__
&A6`2 [get(me/~)]=§§§§§§§§o/§§§
&A6`3 [get(me/~)]=§§§§§§§/§)§§§
&A7`1 [get(me/~)]=§§§§§§§§§§§§§§
&A7`2 [get(me/~)]=§§§§§§§§§o/__§
&A7`3 [get(me/~)]=§§§§§§§§§|§§(\
&A8`1 [get(me/~)]=§§§§§§§§§§§§o§_
&A8`2 [get(me/~)]=§§§§§§§§§§§§/\§
&A8`3 [get(me/~)]=§§§§§§§§§§§§/§|
&A9`1 [get(me/~)]=§§§§§§§§§§§§\§o§/
&A9`2 [get(me/~)]=§§§§§§§§§§§§§§|§§
&A9`3 [get(me/~)]=§§§§§§§§§§§§§/§\§
&A10`1 [get(me/~)]=§§§§§§§§§§§§§§o§§
&A10`2 [get(me/~)]=§§§§§§§§§§§§§/|\§
&A10`3 [get(me/~)]=§§§§§§§§§§§§§/§\§
@fo me=@edit [get(me/~)]/A*`*=§,[chr(160)]
&cartwheel [get(me/~)]=$cartwheel:@dol lnum(0, 10)=@wait #@=th [null(iter(1 2 3, pemit(%#, CONSOLE [itext(0)] [v(A##`[itext(0)])])))]
@@
&J`0`1 [get(me/~)]=~~~~~~~
&J`0`2 [get(me/~)]=~__O__
&J`0`3 [get(me/~)]=(oo|~o)
&J`0`4 [get(me/~)]=~~/~\
&J`0`5 [get(me/~)]=~_|~|_
@@
&J`1`1 [get(me/~)]=~~~~~o
&J`1`2 [get(me/~)]=~__O__)
&J`1`3 [get(me/~)]=(oo|~~
&J`1`4 [get(me/~)]=~~/~\
&J`1`5 [get(me/~)]=~_|~|_
@@
&J`2`1 [get(me/~)]=~~~~o
&J`2`2 [get(me/~)]=~~_O_
&J`2`3 [get(me/~)]=~(o|o)
&J`2`4 [get(me/~)]=~~/~\
&J`2`5 [get(me/~)]=~_|~|_
@@
&J`3`1 [get(me/~)]=~~~o~~o
&J`3`2 [get(me/~)]=~~_O__/
&J`3`3 [get(me/~)]=~(o|
&J`3`4 [get(me/~)]=~~/~\
&J`3`5 [get(me/~)]=~_|~|_
@@
&J`4`1 [get(me/~)]=~~o~~o
&J`4`2 [get(me/~)]=~~_O__)
&J`4`3 [get(me/~)]=~(o|
&J`4`4 [get(me/~)]=~~/~\
&J`4`5 [get(me/~)]=~_|~|_
@@
&J`5`1 [get(me/~)]=~o~~o
&J`5`2 [get(me/~)]=~~_O_~
&J`5`3 [get(me/~)]=~(o|~)
&J`5`4 [get(me/~)]=~~/~\
&J`5`5 [get(me/~)]=~_|~|_
@@
&J`6`1 [get(me/~)]=~o~~o
&J`6`2 [get(me/~)]=~~_O_~
&J`6`3 [get(me/~)]=~/~|o)
&J`6`4 [get(me/~)]=~~/~\
&J`6`5 [get(me/~)]=~_|~|_
@@
&J`7`1 [get(me/~)]=~~~o~~o
&J`7`2 [get(me/~)]=o~~O__/
&J`7`3 [get(me/~)]=~\/|
&J`7`4 [get(me/~)]=~~/~\
&J`7`5 [get(me/~)]=~_|~|_
@@
&J`8`1 [get(me/~)]=~~o~~o
&J`8`2 [get(me/~)]=~__O__)
&J`8`3 [get(me/~)]=(o~|
&J`8`4 [get(me/~)]=~~/~\
&J`8`5 [get(me/~)]=~_|~|_
@@
&J`9`1 [get(me/~)]=~o~~o
&J`9`2 [get(me/~)]=~~_O_~
&J`9`3 [get(me/~)]=~(o|~)
&J`9`4 [get(me/~)]=~~/~\
&J`9`5 [get(me/~)]=~_|~|_
@@
&J`10`1 [get(me/~)]=~o~~o
&J`10`2 [get(me/~)]=~~_O_~
&J`10`3 [get(me/~)]=~/~|o)
&J`10`4 [get(me/~)]=~~/~\
&J`10`5 [get(me/~)]=~_|~|_
@@
&J`11`1 [get(me/~)]=~~~o
&J`11`2 [get(me/~)]=o~~O_~
&J`11`3 [get(me/~)]=~\/|o)
&J`11`4 [get(me/~)]=~~/~\
&J`11`5 [get(me/~)]=~_|~|_
@@
&J`12`1 [get(me/~)]=~~o
&J`12`2 [get(me/~)]=~__O_~
&J`12`3 [get(me/~)]=(o~|o)
&J`12`4 [get(me/~)]=~~/~\
&J`12`5 [get(me/~)]=~_|~|_
@@
&J`13`1 [get(me/~)]=~o
&J`13`2 [get(me/~)]=~~_O_~
&J`13`3 [get(me/~)]=~(o|o)
&J`13`4 [get(me/~)]=~~/~\
&J`13`5 [get(me/~)]=~_|~|_
@@
&J`14`1 [get(me/~)]=~
&J`14`2 [get(me/~)]=o~_O__~
&J`14`3 [get(me/~)]=~/~|oo)
&J`14`4 [get(me/~)]=~~/~\
&J`14`5 [get(me/~)]=~_|~|_
@@
&J`15`1 [get(me/~)]=~
&J`15`2 [get(me/~)]=~__O_~
&J`15`3 [get(me/~)]=o~~|o)
&J`15`4 [get(me/~)]=~~/~\o
&J`15`5 [get(me/~)]=~_|~|_
@@
&J`16`1 [get(me/~)]=~
&J`16`2 [get(me/~)]=~__O_~
&J`16`3 [get(me/~)]=~~~|~\
&J`16`4 [get(me/~)]=o~/~\o
&J`16`5 [get(me/~)]=~_|~|_o
@@
&J`17`1 [get(me/~)]=~
&J`17`2 [get(me/~)]=~\_O_/
&J`17`3 [get(me/~)]=~~~|~
&J`17`4 [get(me/~)]=~~/~\
&J`17`5 [get(me/~)]=o_|~|_oo
@@
&J`18`1 [get(me/~)]=~
&J`18`2 [get(me/~)]=~~_O_
&J`18`3 [get(me/~)]=~<~|~>
&J`18`4 [get(me/~)]=~~/~\
&J`18`5 [get(me/~)]=o_|~|_oo
@wait 0=@edit [get(me/~)]/J*=~,%b
@@
&juggle [get(me/~)]=$juggle:@dol lnum(0, 18)=@wait #@=th null(iter(1 2 3 4 5, pemit(%#, CONSOLE [itext(0)] [v(J`##`[itext(0)])])))
@@============================================================================
@@ .:....1....:....2....:....3....:....4....:....5....:....6....:....7....:...
@@ ---------------------------------------------------------------------------
@@ Boot Wizard: an original animation - sad hack PD2007.
@@
@@ .:....1....:....2....:....3....:....4....:....5....:....6....:....7....:...
@@ NOTE: This uses the following, slightly different, input definition:
@@
@@ /def -ag -mregexp -t'CONSOLE R([1-5])C(\d+) (.+)' statstuffbychar = \
@@ etc.
@@
@@ The purpose for this modified version is to circumvent complications from
@@ having to escape commas.
@@ .:....1....:....2....:....3....:....4....:....5....:....6....:....7....:...
@@
&bootwiz [get(me/~)]=$bootwiz:@dolist 0 1=@wait [mul(##,10)]=@tr me/S`##=%#
@@
&UFUN`CENTER [get(me/~)]=[setq(w, switch(width(%#), *, 77))][setq(m, mod(%qw, 2))][setq(c, add(%qm, div(sub(%qw, %qm), 2)))]%qc
@@
&UFUN`CLEARLINE [get(me/~)]=CONSOLE %0 [chr(160)]
@@
&S`0 [get(me/~)]=@dolist [iter(1 2 3 4 5, pemit(setr(u, %0), CONSOLE [itext(0)] [chr(160)]))][lnum(1, 9)]=@wait ##=th [null(iter(get(me/S`0`F`##), [pemit(%qu, CONSOLE R[first(first(itext(0)), .)]C[add(%vc, rest(first(itext(0)), .))] [edit(iter(rest(itext(0)), ansi(first(itext(0), .), chr(rest(itext(0), .)))),%b,)])],|))]
@@
&S`0`F`1 [get(me/~)]=5.0 .046
@@
&S`0`F`2 [get(me/~)]=5.0 .111
@@
&S`0`F`3 [get(me/~)]=5.-1 .111 .056 .111
@@
&S`0`F`4 [get(me/~)]=4.-1 .111 .244 .111|5.-2 .111 .056 .056 .056 .111
@@
&S`0`F`5 [get(me/~)]=3.-1 .095 .212 .095|4.-2 .111 .056 .056 .056 .111|5.-3 .111 .056 .056 .056 .056 .056 .111
@@
&S`0`F`6 [get(me/~)]=2.-1 .095 .212 .095|3.-2 .047 .160 .089 .160 .092|4.-2 .046 .111 .056 .111 .046|5.-3 .046 .111 .056 .056 .056 .111 .046
@@
&S`0`F`7 [get(me/~)]=2.-3 .119 .095 .095 .212 .095 .095 .119|3.-2 .092 .095 .089 .095 .047|4.-2 .160 .047 .095 .092 .160|5.-3 .046 .111 .056 .056 .056 .111 .046
@@
&S`0`F`8 [get(me/~)]=1.-3 .109 .160 .160 .160 .160 .160 .109|2.-3 .160 .124 .092 .212 .047 .124 .160|3.-2 .160 .092 .089 .047 .160|5.-3 .046 .095 .047 .160 .092 .095 .046
@@
&S`0`F`9 [get(me/~)]=1.-3 .160 .095|1.2 .095 .160|2.-3 .109 .095|2.2 .095 .109|3.-3 bh.042|3.3 bh.042|5.-3 .160|5.3 .160
@@
&S`1 [get(me/~)]=@tr me/S`1`F`3=%0,3
@@
&S`1`F`3 [get(me/~)]=@dol 1 2=@wait ##=@tr me/S`1`F`3`##=%0,3
@@
&S`1`F`3`1 [get(me/~)]=@dolist [lnum(sub(%vc, 4), 0)]=@wait 0=@pemit %0=CONSOLE R%1C[setr(c, ##)] [edit(iter(lnum(sub(%vc, 4), %qc), [ansi(pickrand(r y g c b m), pickrand(+ ~ ^ -))]),%b,)]
@@
&S`1`F`3`2 [get(me/~)]=@dolist h a c k [iter(lnum(5,sub(%vc,4)),.)]=@wait 0=@pemit %0=CONSOLE R%1C[dec(setr(c,#@))] [switch(##,.,chr(160),##)][edit(iter(lnum(%qc,sub(%vc,4)),[ansi(pickrand(r y g c b m),pickrand(+ ~ ^ -))]),%b,)]
- Printer-friendly version
- Login or register to post comments

Click 

bootwiz
bootwiz is an initial demo of a 'boot wizard', written in MUX2 by a native Pennmush softcoder (so it should work in both).
at the time of initial posting, it has sort of 'bumped into' a couple of other issues...
1. screen real estate
2. softcode vs. client scripting and design.
3. compromise balance and timing.
re: screen real estate
this is 'how much of this space is dedicated to what' and 'who decides these things'?
re: softcode vs. client etc.
related to screen real estate, this is 'how much of this can/should be carreid by online softcode vs. how much of this can/should be handled by offline scripting'?
re: compromise
this is the solution to the above questions in concert with some sort of timed update system (aka cron). it brings to mind options such as that illustrated in the chat-based broadcast cron demonstrated in the warpedcore ~cron package elsewhere on this site.
note: with a few clever patterns and definitions, the softcode could actually configure the client... and conversely, the client could control the majority of what is displayed by using its own cron/wait system. and so on and so forth... as extensions to the 'compromise' section above.
note: as soon as i figure out how to get tf to support unicode, i'll be exploiting it asap thereafter for graphical goodies.
bump
another thing I'm bumping into is cost. running an animation tends to consume a lot of pennies. as will any realtime update widget running at a periodic interval (once per minute? once per second?). immediate solutions which come to mind...
global no_pay object to manage public stuff (re chat-broadcasts and such)
allow special no_pay objects (limited to 1 per player?) from which to run streaming media code
decrease the command cost from 1/64 to 1/128 (or 1/256?). (modern parsers and hardware should be up to the task, eh?)