キャラクターに簡単な加速度をつける方法

今日はちょっとした小技の紹介です。キャラクターを動かすときに簡単な加速度みたいなものをつける方法です。

2D横スクロールゲームを作るときに

player.x += 4;

のような感じでキャラクターの座標に直接数値を足してしまうのは良くありません。特にジャンプ中に方向転換するとカクカクした動きになってしまいます(ファミコンの北斗の拳みたいな感じ)。

それを滑らかにする方法がこちら

if(右押した){
    move_x += 1;
}
if(左押した){
    move_x -= 1;
}
player.x += move_x;

だいぶ省略してますが、イメージは伝わると思います。

move_xという移動値を入れる変数を用意します。そして押した方向に対して右なら+、左ならーの値を加算します。そしてそれを移動値としてプレイヤーの座標に加算します。

これによって反対方向を押した瞬間に反対に動くということはなくなり、また、同じ方向を押し続けることで移動値が増え加速しているように見えます。

もちろんこれはキャラクターをジャンプさせるときにも応用できます。

単純だけど効果的な方法ですね(*´ω`)

ちなみにこのゲームで使ってます

▷▷▷ 秘密警察ギャボリン 第三話

どのゲームで遊ぶ?

スマホ専用対戦ゲーム。3つの数字を順番にどちらが速く押せるかを競うミニゲーム。
あほげー。世紀末な感じの世界で熱い男たちの戦いの火ぶたが切って落とされる!?
最初にカードの配置を覚えてする神経衰弱。瞬間の記憶力が試されるゲームです。
爆弾を設置して爆発で敵を倒す懐かしいレトロゲーム。敵をすべて倒すとステージクリアです。...

コメント欄

※コメントはまだありません※

コメントを残す

メールアドレスが公開されることはありません。

ゲームタグ一覧

ゲーム開発書籍(amazon)

HTML5 ゲーム開発の教科書 スマホゲーム制作のための基礎講座
ゲームを作りながら楽しく学べるHTML5+CSS+JavaScriptプログラミング[改訂版] (Future Coders(NextPublishing))
改訂2版 はじめて学ぶ enchant.jsゲーム開発