- ベストアンサー
HTML5,JavaScriptのアプリについて
- HTML5, JavaScriptを使用してスマホのアプリを作成しています。最優先で実装したいのは、パズル完成後の「CLEAR」の表示と、完成までの時間の表示です。
- また、画面の中央にパズルが表示されるようにしたいです。スマホとタブレットの画面サイズに対応するために、ディバイスごとに適切な大きさに調整したいです。
- 現在は用意した画像を読み込んでいますが、自分で撮った写真なども読み込ませたいです。初心者なので、分かりやすく教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
CSSにコレを足す記述を忘れてしまったせいかもしれません。 html, body{ width:100%; } 先の回答では省略してしまいましたが、CSSは下記のように記述して下さい。 #game_canvas { top:20px; }
その他の回答 (2)
- ONEONE
- ベストアンサー率48% (279/575)
1. getPanelNo関数をつかってすべてのセルのパネル番号が正しければ完了判定するメソッドを作ればよいでしょう。 2. ストップウォッチを実装すればよいと思います。 http://alphasis.info/2013/06/javascript-gyakubiki-stopwatch/ パズル開始時にstopwatchStart() 終了時にstopwatchStop()が 実行されるようにすればよいでしょう。 3. 幅100%でよいのなら ■CSSの変更 #title width:100%; #game_canvas top:20px; ■HTMLの変更 widthとheight属性削除 <canvas id="game_canvas"></canvas> ■JSの追加 設定とcanvasのコンテキストを取得部分を下記のように変更 //設定 var device_w = document.body.clientWidth; var main_image = "img/photo.png"; var panels = []; var cell_w = device_w / 3; //横に4分割 var cell_h = device_w / 3; //縦に4分割 var pos_array = [[-1,0],[1,0],[0,-1],[0,1]]; //上下左右の座標 //Canvasのコンテキストを取得 var canvas = document.getElementById("game_canvas"); canvas.width = device_w; canvas.height = device_w; var con = canvas.getContext("2d") 5. このあたりを参考に http://javascript.go-th.net/%E3%80%90graphics%E3%80%91canvas/canvas%E7%94%BB%E5%83%8F%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E3%80%82 画像の拡大縮小機能もひつようそうですね。
補足
3なのですが 書いていただいた通りやりました すると画像は表示されずtitleのバックカラーもおかしくなったのですがどうすれば。。。 コード載せます。。。 CSS #title { background-color: blue; color: white; padding:3px; font-size:14px; width:100%; height:14px; } #game_canvas top:20px; JS //設定 var device_w = document.body.clientWidth; var main_image = "img/hagaren.png"; var panels = []; var cell_w = device_w / 3; //横に3分割 var cell_h = device_w / 3; //縦に3分割 var pos_array = [[-1,0],[1,0],[0,-1],[0,1]]; //上下左右の座標 //Canvasのコンテキストを取得 var canvas = document.getElementById("game_canvas"); canvas.width = device_w; canvas.height = device_w; var con = canvas.getContext("2d");
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>3.パズルの画面が中央に来てほしい >4.タブレットで使用したときに画面が小さいのでディバイスごとに適した大きさにしたい JavaScript で画面のサイズを入手して、 Canvas そのものの、位置をCSSで移動してしまうabsoluteとか http://www.tagindex.com/html5/page/meta_viewport.html この辺参考になるかと思います。
補足
サイトを見て <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, user-scalable=no"> としたのですがやはりタブレットでは小さいしスマホで見ても若干のずれがあります。。。 どうすればいいのでしょうか?
補足
ありがとうございます! WEB上では中心に表示できたのですがスマホで起動させると 前と変わりません>< そして con.drawImage(image, px, py, cell_w, cell_h, tx, ty, cell_w, cell_h); にエラーが出ます 見直したのですがエラーの部分ってどこがおかしいのでしょうか? errorメッセージは Uncaught Error: INDEX_SIZE_ERR: DOM Exception 1 です