cordova+enchantjsでサンプルアプリ
enchatjs
javascriptのゲームエンジン簡単な描画処理を実施できるとのこと
http://enchantjs.com/ja/
実装
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1"> <title>Capture Photo</title> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> <script type="text/javascript" src="enchant.min.js"></script> <script type="text/javascript" src="main.js"></script> <style type="text/css"> body { margin: 0; padding: 0; } </style> </head> <body> </body> </html>
main.js
enchant(); window.onload = function() { // 画面サイズ var _width = document.width; var _height = document.height; var game = new Game(_width, _height); game.preload('chara1.png'); // preload image game.fps = 20; game.onload = function(){ var _w = _width - 32; var _h = _height - 32; var scene = game.rootScene; scene.backgroundColor = "blue"; var bear = new Sprite(32, 32); bear.image = game.assets['chara1.png']; game.rootScene.addChild(bear); bear.frame = [6, 6, 7, 7]; // select sprite frame bear.tl .moveBy(_w, 0, 90) // move right .moveBy(0, _h, 90) .scaleTo(-1, 1, 10) // turn left .moveBy(-1 * _w, 0, 90) // move left .moveBy(0, -1 * _h, 90) .scaleTo(1, 1, 10) // turn right .loop(); // loop it }; game.start(); };
マニフェスト
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.phonegap01" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" /> <supports-screens android:largeScreens="true" android:normalScreens ="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true"/> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.phonegap01.MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
※起動時の画面などを制御する「android:screenOrientation="landscape"」を追加
結果
※実機画面のスクリーンショット
指定サイズでの固定を行っているわけではない→400☓300などで固定化している感じではないので画面へ配置する場所が固定ではなくなった感じになるかもしれません。
位置調整は多少誤差があるのでうまく動かないもかも
まとめ
cordova(phonegap)にenchantjsを組み込むことも可能な感じ、ゲーム用のものだけど高速動作は期待できないから
シンプルな挙動というか簡単な動作でできるゲームアプリしか作成できないと思われる。
enchantjsでサンプルを作ったりしてenchantjsの勉強をしながらandroidアプリへの落としこみを行う必要がありそう