1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

phina.js が面白そうなのでお勉強中 その2

Last updated at Posted at 2019-11-23

phina.js が面白そうなのでお勉強中 その1

基本的なことが解らん・・・。

そんなわけで、キャラクターが動くようになったプログラムをいろいろ触ってみてさらにハマった所。

spritesheet を使わなくても画像を切り出せる

Spriteで画像を指定すると、画像全体が指定されたサイズに変形されて表示されるので、てっきり切り出せないと思ってたけど、frameIndex にフレーム番号を設定すれば指定されたサイズ単位で切り出せるのが解った。
画像を切り出すには、アニメーション不要でも spritesheet が必須と思ってました。

setSize を使うと、frameIndex で取得する画像サイズまで変わってしまう

大きい画像を作るのが面倒なので、3232の画像を6464の大きさで使おうと思っていたのですが、setSize を使うと frameIndex が想定通りに機能しなくなるため諦めた。
setScale で拡大すれば、frameIndex は想定通りなんだけど、Spriteのtopの値とかがそのままなのでいろいろ面倒そうで諦めた。

画面の解像度を下げればいいじゃん

画像を拡大するからややこしいのであって、解像度を下げればいいのでは、と思い

phina.main(function() {
	// アプリケーション生成
	var app = GameApp({
		startLabel: 'main', // メインシーンから開始する
		// アセット読み込み
		assets: ASSETS,
		width: 320,
		height: 480,

ってしたけどうまくいかなかった。

MainSceneのサイズがデフォルトのままだからっぽい。

「phina.jsで画面サイズを変更するときに失敗したのでメモ」
https://qiita.com/_yukihito/items/0cabcc8cb289e75eddb6
を参考に
MainSceneを

phina.define('MainScene', {
	superClass: 'DisplayScene',
	init: function(option) {
		this.superInit(option);

ってoptionを受け取ってsuperInitに渡すと、GameAppで設定したサイズになってくれた。
っていうか、こっちをひな形にしてくれた方が幸せな人が多いと思うんだけど・・・・。

今日の成果

なし!
でも、表示周りがなんとなく解ったので、次は弾の発射をさせようと思ってます。
自機が動かせて弾が発射できればそれだけで楽しいもんね。

phina.js が面白そうなのでお勉強中 その3

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?