ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

Flash

turn circles

画面を左から右へ移動する円と逆に右から左へ移動する円をいくつか表示したら、画面中央を軸としてその周りをまわっているように見えないかと試してみた。 turn circles - wonderfl build flash onlineじっと見ているとときどき回っているように見えるが、あ…

ColorTransform

色を変化させるときにはColorTransformを使うと便利。たとえばRGBのRを0.5倍にするとか、Gにオフセットで100足すとかが簡単にできる。 描画オブジェクトのtansform.colorTransformにColorTransformのオブジェクトを作成して指定すれば良い。たとえばRGBすべ…

色を調整

HSV色空間を使って綺麗なグラデーションで色を変化させることが出来て、前よりはかっこ良くなったとは思う。が、もう少し色について調整したい部分が出てきたので、なんとか出来ないかと調整中。

HSV色空間

画面をもっとかっこ良くするためにwonderflで綺麗なエフェクトのあるいろいろなコードをチェック。 そこで色の指定でHSV色空間を使っているものがあった。それはFrocessingというライブラリを使っていた。Processingライクなドロー系のライブラリらしい。 nu…

wonderflで画面キャプチャのタイミングを変更する

wonderflでは自分の作成したコードの実行画面が自動的にキャプチャされ、それがサムネイルとなって表示される。キャプチャされるタイミングによってはサムネイルが気に入らないことがある。そのようなときにはキャプチャするタイミングを自分で指定すれば良…

エフェクト付け

引き続き思いついたアイデアのコードをActionScriptでテスト中。 いろいろと調整してなんとか最初に想定した状態に近いものになってきた。 ただ見た目が寂しい状態なので、いろいろとエフェクトをつけてかっこ良くできないか調整中。

リニアとカーブ

思いついたアイデアをいろいろとテスト実装中。 オブジェクトのアニメーションの変化をリニアで計算してみたら、非常に硬い感じになってしまった。これはちゃんとカーブで変化させたほうが良さそうだ。とりあえずsinカーブを使ってみるかな。

トンネルのような

拡大する円を連続して並べればトンネルの中を進んでいるように見えないか試してみたもの。 クリックで四角と円を切り替えられる。 カーソルをゆっくり動かしたほうがそれっぽく見える。 トンネルのような - wonderfl build flash online この前作った連続す…

描画リストに追加する順番を指定

addChild()で描画リストに追加した場合、描画順は追加した順番となる。つまり最初に追加したものが一番奥で、最後に追加したものが一番手前となる。 この描画順番を指定して追加するにはaddChildAt()を用いる。 addChildAt(displayobject, index); addChildAt…

beginFill,endFillでの塗り

二つ円が重なった図形を描こうとして次のようなコードを書いた。 graphics.beginFill(0xff0000); graphics.drawCircle(172,232,100); graphics.drawCircle(292,232,100); graphics.endFill(); 期待していたのは赤い円が二つ重なった図形。ところが実際に実行…

連続する四角

この前作った連続する円(id:toburau:20101112)をもうちょっと何とか出来ないかといろいろと変更したり調整してみている。 円ではなく四角にしてみたのがこちら。 連続する四角 - wonderfl build flash online 適当にカーソルを動かしているだけで、なんとな…

連続する円

拡大する円を並べたら、トンネルの中を進んでいるように見えないかなと試してみた。 カーソル位置から拡大していく円を発生するようにしたテストコード。 連続する円 - wonderfl build flash online ゆっくりカーソルを動かせばトンネルの中を進んでいるよう…

自分自身を描画リストから削除する

作成した描画オブジェクトを描画するにはaddChild()で描画リストへと追加する。削除するにはremoveChild()を使う。 このとき自分自身を描画リストから削除するには、自分自身を登録した親を取得して、その親でremoveChild()を呼べば良い。親はparentプロパテ…

newとdelete

オブジェクトをnewで作成して処理後、必要なくなったので削除しようとして、ふとActionScriptにdeleteってあったかなと考えてしまった。 もちろん、ActionScriptはガベージコレクションがあるので特に自分で削除する必要はない。そのオブジェクトがどこから…

配列が苦手

ちょっとしたアイデアのテストコードを作成中。 複数のオブジェクトが出てくるので、配列で処理しようとコードを書き始めたが、なんとなくActionScriptの配列は苦手意識が。 で、苦労しながら配列を使ったコードを書いていたが、配列を使わなくても処理でき…

イベントの発生

イベントを発生させるためにはdispatchEvent()を使う。 引数にはイベントオブジェクトを指定する。 たとえば、COMPLETEイベントを発生させたいときは次のような感じ。 dispatchEvent(new Event(Event.COMPLETE)); http://livedocs.adobe.com/flex/3_jp/langr…

イベントの削除

addEventListener()で追加したイベントを削除するにはremoveEventListener()を使う。 removeEventListener()の引数はイベントを追加するときに呼んだaddEventListener()と同じで、イベントのタイプと呼び出される関数名を指定する。 たとえばフレーム更新で…

wonderflのコードの貼り付け

いつの間にかwonderflのコードがはてなダイアリーで貼り付けられるようになっていた。以前は出来なかったと思うのだが、ただ気が付かなかっただけかな。 ということで、前回作ったゲームを貼り付けてみた。 Cave - wonderfl build flash online自機は赤い四…

背景色の設定

背景が白いままでは見にくかったので黒にした。背景色を設定するにはpackage内のクラス定義の直前に次の行を書けば良い。 [SWF(backgroundColor="0x000000")] ActionScriptの文法的にはこれはどうなっているのかよく分からないのだが、多分、生成されるSWFフ…

オブジェクトの生成順番

オブジェクトが生成される順番はどうなっているか、次のコードで調べてみた。 package { import flash.display.*; public class test extends Sprite { public function test() { trace("test"); } } } class Test0 { public function Test0() { trace("test…

画面端

プレイヤーの実装していて、ウィンドウの左端では正しく描画されるのに、右端では途中で切れてしまうというおかしな現象に遭遇。 調べてみたらバグでは無かった。フラッシュプレイヤーのウィンドウの右側と下側には一定のマージンが取られていた。たぶんスク…

キーボードの状態をチェックする

ゲームに使えるようなキーボードの状態をチェックするクラスを作った。 基本的にKEY_DOWNとKEY_UPイベントでカーソルの上下左右とスペースキー、Enterキーの状態を更新しているだけ。 使い方は、まず、Key.init()でstageを引数に指定して初期化。 isPress()…

contains

ある描画オブジェクトのインスタンスがすでに子オブジェクトとして追加されているか調べるにはcontains()を使う。 たとえば、描画オブジェクトballを表示するにはstageにaddChild()で子オブジェクトとして追加する。 ball = new Sprite(); stage.addChild(ba…

イベントの順番

フレーム更新イベントとキーボードイベントはどのような順番で呼び出されるのか調べてみた。 package { import flash.display.*; import flash.events.*; public class test extends Sprite { private var FrameNo:int = 0; public function test() { trace(…

複数のイベント登録

同じイベントを複数追加しても正しく動作するか確認してみた。 public class test extends Sprite { public function test() { stage.addEventListener(Event.ENTER_FRAME, onEnterFrame0); stage.addEventListener(Event.ENTER_FRAME, onEnterFrame1); } pu…

キーボードの状態取得

ActionScript3.0にはKey.isDown()が無くなってしまったので、とりあえず自分で何とかしようと、以前Windows上でSDLを使って作ったキーボードの状態を取得するクラスと同じようなものを作り始めた。 が、C++ならすぐに書けるものがActionScriptではなかなかう…

Key.isDown

もっとゲームに向いたキーボードの状態を取得する便利なものはないかと検索していたら、Key.isDown()とまさに目的のものを発見。さっそくコードに組み込んで試してみようとしたらエラー。どうやらActionScript3では削除されてしまった機能らしい。 となると…

キーボードイベント

キー入力の判定にはキーボードイベントを使う。キーが押されたときはKEY_DOWN,キーが離されたときはKEY_UPのイベントをイベントリスナーで登録すれば良い。 どんなキーが押されたかはflash.ui.Keyboardクラスにキーを表すプロパティが用意されているのでそれ…

wonderflでの画面サイズ

今、次のゲームのアイデアを考えていて、ちょっとwonderflの画面サイズを確認してみた。 wonderflの画面は465x465の正方形。これはフルスクリーンモードにしても拡大されるだけで変わらない。 wonderfl build flash online | 面白法人カヤック

二次ベジェ曲線

ActionScriptではcurveTo()メソッドにより曲線を描画することができる。この曲線の公式は二次ベジェ曲線。曲線の開始点を(x0,y0),コントロールポイントを(x1,y1),終了点を(x2,y2)とすると、次のようにして曲線を書くことができる。 graphics.moveTo(x0,y0); …