げいなーハンドル
gainer&加速度センサー。
前に練習で作ったレースっぽいのの操作を加速度センサーでwiiハンドルっぽくしてみた。
gainer上のボタンで発進。適当な加速をして離すと1/2×フレームで減速。
旋回はもっと適当でハンドルを曲げると止まっててもぐるぐる。
動画で見る感じよりは結構操作性は良い。
よくみたらハンドルの設定左右逆だね。間違えた。
3軸加速度センサーなのに1軸しか使ってないという勿体ない仕様。
前後の傾きで加速にすれば良かったかな。
ハンドル部分は部屋に落ちてたスチレンボード。
次回予告「まらかす」
音源と絵の確保が前回よりめんどいのがネック。
一応、続きにソース貼るけど動けばいいレベルの限りなく汚い&読みにくいソースなのであまりじろじろ見ないでください。・・・せめてもうちと注釈つけとけばよかったな(自分のために)
まぁ関係ない。
.fla側はムービークリップ"car"を配置
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.display.MovieClip;
import flash.geom.Point;
import flash.text.*;
import gainer.*;
public class raceHandle extends Sprite {
private var gio:Gainer;
var textBoxes;
var handle:int;
public function raceHandle() {
// Gainerのインスタンスを生成する
gio = new Gainer("localhost", 2000, Gainer.MODE1, true);
// I/Oモジュールの準備が完了した時に呼ばれるイベントハンドラをセット
gio.onReady = _start;
}
// I/Oモジュールの準備が完了したら以下を実行
private function _start():void {
// アナログ入力の連続取得を開始
gio.beginAnalogInput();
//I/Oモジュール上のボタンにイベントハンドラをセット
gio.onPressed = _onPress;
gio.onReleased = _onRelease;
// ENTER_FRAMEイベントに対するイベントリスナをセット
addEventListener(Event.ENTER_FRAME, _onEnterFrame);
}
var carAngle:int;
var speed:Number;
var acceleration:Number = 1;
var button:Boolean;
private function _onEnterFrame(e:Event):void {
var zMin:Number = 85; // Z軸の最小値
var zMax:Number = 209; // Z軸の最大値
var zIn:Number = gio.analogInput[0];
var zSinTheta:Number;
var zAngle:int = 0;
//それぞれの軸の出力を-1から+1までにスケーリング
zSinTheta = Gainer.remap(zIn, zMin, zMax, -1, 1);
//逆サイン関数を用いて変換
zAngle = Math.asin(zSinTheta) / Math.PI * 180;
//車の動きを制御
if(button == true){
if(acceleration < 2) {
acceleration = acceleration * 1.2;
}
speed = acceleration;
}
else if(button == false){
speed = speed/1.2;
}
var goFront:Point = new Point(-speed,0);
var g_pos:Point = car.localToGlobal(goFront);
car.x = g_pos.x;
car.y = g_pos.y;
car.rotation = carAngle;
carAngle = carAngle + zAngle/10; //ハンドルの効き具合
}
private function _onPress():void {
button = true;
}
private function _onRelease():void {
button = false;
}
}
}
さりげなく流れてるマリオカートが懐かしすぎた。
paperVision3Dつかってスーファミマリオっぽいの再現してもいいな・・・
2009年05月26日 imu URL 編集
たぶんマリオサーキットかなpaperVision3Dつかってスーファミマリオっぽいの再現してもいいな・・・
2009年05月27日 かめ URL 編集