次のページ前章で、「めり込みが直っていないぞ!」という方もいるかもしれません。自機の初期位置によってはまだめり込んでしまうことがあります。ためしにF2キーを押してプログラムを停止させ、キャラクタをクリックしてください。オブジェクトインスペクタからxを50、yを65にしてみます。数値を入力した際、数値をリターンキーなどで確定することをお忘れなく。y=65;と追記してもOKです)これで実行してみます。足のほうがめり込んでしまいました。前章では自機y座標の16dot先にブロックがあった場合に落下速度をとめる処理を書きましたが、判定時すでに自機がめり込んでいたときにブロックから抜け出すことをしていないためにこうなってしまっています。1文加えて修正してみます。SpriteChar;/*キャラクタ歩行プログラム左右のキーを押すとキャラクタが足踏みしながら移動します。vy=-10;y=y+vy;vx=0;update();}まずtrunc(y/32)で、自機のy座標を32で割った値の小数点を切り捨てています(詳しくはtruncを参照)。これでいるべき位置が上から4区画目であることがわかります。ここに、構成単位である32をかけて16を足せば、自機をブロックのちょうど上に置くことができます。これを式で書くと、y=trunc(y/32)*32+16となります。実際に自機が止まった位置をオブジェクトインスペクタで見てみると下記のようになっています。これでどんな位置から落としてもブロックの上に止まることができるようになります。自機の位置をいろいろと変えて試してみてください。