26 |
BSVによるSpace Invadersの変更 (8) |
Y字リプレースアニメーションのソース
Y字リプレースアニメーションのソースを示します。Y字リプレースアニメーションもFボタンにより中断するため、各所でFボタンを見ています。
function Stmt replaceY; return (seq // from right to left for (i <= 228; i >= 142; i <= i - 2) seq copyArea((pack(i)[1] == 1'b1) ? 68 : 84 , 32, i, 67, 10, 8); wait_timer(`TICK_WAIT3); if (fbutton) break; endseq // for if (fbutton) break; // from left to right for (i <= 136; i <= 226; i <= i + 2) seq copyArea((pack(i)[1] == 1'b1) ? 75 : 91 , 107, i, 67, 16, 8); wait_timer(`TICK_WAIT3); if (fbutton) break; endseq // for eraseArea(226, 67, 16, 8); wait_timer(`TICK_WAIT32); if (fbutton) break; // from right to left for (i <= 226; i >= 136; i <= i - 2) seq copyArea((pack(i)[1] == 1'b1) ? 77 : 93 , 117, i, 67, 16, 8); wait_timer(`TICK_WAIT3); if (fbutton) break; endseq // for wait_timer(`TICK_WAIT32); if (fbutton) break; eraseArea(141, 67, 9, 8); wait_timer(`TICK_WAIT32); if (fbutton) break; endseq); endfunction
これだけでなく、タイマールーチンの中でもFボタンによる中断を見ていますが、ちょっとやり過ぎのようです。実際には多少間引いても体感に影響しないと思います。