HSP | ケルパニのロゴを回転させる
HSP | ケルパニのロゴを回転させる
この間GIFアニメーションでうpしましたが、それのソースです。(わかりやすいよう画面のサイズ広げました。)
サイズ変えたので、速度も少し変えてあります。
s=72*1-2,72*2-2,72*3-2,72*4-2,72*5-2 // 画像回転角度
p=111,37 // 画像のどこを中心にして回転させるか
omake=0.0 // 楕円回転角度
z=481 // 中心から楕円の中心までの距離
timer=0 // タイマー
flag=0 // どう処理するかのフラグ
buffer 1,157,123
color : boxf
color ,255 : circle 0,0,156,122
color : circle 0+8,0+8,156-8,122-8
screen 0,640,480
gmode 2,p(0)*2,(123-p(1))*2
*main
redraw 0
color ,,255 : boxf
repeat 5
t=M_PI*2*s(cnt)/360 // 単位ラジアンに
r=atan(24,33) // 楕円自体の角度
pos 320-cos(t+r)*z,240+sin(t+r)*z : grotate 1,0,0,-t+omake,157,123
loop
if flag=1 {
omake+=M_PI*2/20
z-11
}
if timer=0 : z=481
if 0<=timer & timer<20 : flag=0
if 20<=timer & timer<60 : flag=1
if 60<=timer : flag=2
timer+ : timer\100
redraw
await 40
goto *main
本当はもうちょっと工夫したいです。
実質的には5つの楕円がまっすぐ真ん中に集まっているだけなので。(回転はしてますけど)
なんの役に立つのかはわかりません。
今回はこれで。
↓クリックしてくれるとうれしい系だったりする。
結構、スクリプトを密に書くタイプなんですね。
そ、そうですかね…。
このスクリプトは、見た目よりややこしいので、ミスらないように作ったらこんなものになりました。
例えば、式や命令とコメントを同じ行に書いているとか、if文の後に直接命令を書くとか・・・
ああ、そっちの意味でしたか…。すいません。
確かに結構まとめて書きますね。私は。
pos ~ mes ~だったら、そのposは後ろのmesのためだけに書いているので、改行せずに書きます。(「 : 」を使う)
コメントも、その一行のことに関する物であればすぐ後ろに書きます。
ただし、そこから何行もかけてひとつの処理をしているとかであれば、そのすぐ前の行にコメント入れます。
ifは、一行で短い処理であれば改行しません。
一行だったとしても長い処理だったり、複数行で書いたほうが見やすい処理だったりしたら改行します。
後、相変わらずインデントは無しなんですね。
はい。
if { の後やラベルの次の所もまったくインデント入れません…。
あいかわらずHSPスクリプトエディタで作成してるんですが、ラベルの後に自動でインデントを入れる機能も切ってます。
HSPだとインデントする方が面倒なときもあります。
C++とかJavaみたいにしっかりなってくれないのが理由の一つですが^^;
私はHSPでは密に書いて、C++とかでは見やすく書いています。
他の言語ではちゃんとしてるんですか…。知りませんでした…。
そろそろ私もHSP以外のプログラミングもしたほうがいいのかな…。