teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

a

2020/03/02 00:21

投稿

exif-u
exif-u

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- phina.jsライブラリで当たり判定を検出できない
1
+ testElemntCount()
body CHANGED
@@ -1,146 +1,1 @@
1
- ```javascript
2
-
3
- <html>
4
- <head>
5
- <meta charset='utf-8' />
6
- <meta name="viewport" content="width=device-width, user-scalable=no" />
7
- <meta name="apple-mobile-web-app-capable" content="yes" />
8
-
9
- <title>Getting started | phina.js</title>
10
- <!-- phina.js を読み込む -->
11
- <script src='http://cdn.rawgit.com/phi-jp/phina.js/v0.2.0/build/phina.js'></script>
12
-
13
- <!-- メイン処理 -->
14
- <script>
15
- // phina.js をグローバル領域に展開
16
- phina.globalize();
17
-
18
- var ASSETS = {
19
- //image
20
- image: {
21
- 'tomapiko': 'https://rawgit.com/phi-jp/phina.js/develop/assets/images/tomapiko.png',
22
- },
23
- };
24
-
25
- var SCREEN_WIDTH = 640;
26
- var SCREEN_HEIGHT = 960;
27
- var SPEED = 5;
28
- var ENEMY_INTERVAL = 10;
29
-
30
- // MainScene クラスを定義
31
- phina.define('MainScene', {
32
- superClass: 'DisplayScene',
33
- init: function() {
34
- this.superInit();
35
- // 背景色を指定
36
- this.backgroundColor = '#444';
37
- // スプライト画像作成
38
- var sprite = Sprite('tomapiko').addChildTo(this);
39
- // 初期位置
40
- sprite.x = 325;
41
- sprite.y = 740;
42
-
43
- // 一定フレーム経過したら
44
- // タッチ保持イベント
45
- this.onpointstay = function(e) {
46
- // スプライトをタッチ位置に
47
- sprite.x = e.pointer.x;
48
- sprite.y = e.pointer.y;
49
- };
50
- // タッチ移動イベント
51
- this.onpointmove = function(e) {
52
- // スプライトをタッチ位置に
53
- sprite.x = e.pointer.x;
54
- sprite.y = e.pointer.y;
55
- };
56
-
57
- },
58
-
59
- update: function(app){
60
-
61
- if (app.frame % ENEMY_INTERVAL === 0) {
62
- // 敵生成
63
- //長方形を描画
64
- for(var kali = 1; kali <= 50;){
65
- var default_x = Random.randint(-15,655);
66
- var default_y = Random.randint(-15,975);
67
- if (-5 <= default_x && default_x <= 645 && -5 <= default_y && default_y <= 965){}
68
- else{
69
- var shape = Shape().addChildTo(this);
70
- shape.setSize(10,10);
71
- shape.x = default_x;
72
- shape.y = default_y;
73
-
74
- if (-15 <= default_x && default_x <= 320 && -15 <= default_y && default_y <= 330){
75
- // Physicalクラスを適用して移動
76
- var phis_y_left_up = Random.randint(1,4)
77
- var phis_x_left_up = Math.sqrt(25 - phis_y_left_up^2)
78
- var last_x = phis_x_left_up
79
- var last_y = phis_y_left_up
80
- }
81
- else if (321 <= default_x && default_x <= 655 && -15 <= default_y && default_y <= 330){
82
- var phis_x_right_up = Random.randint(-1,-4)
83
- var phis_y_right_up = Math.sqrt(25 - phis_x_right_up^2)
84
- var last_x = phis_x_right_up
85
- var last_y = phis_y_right_up
86
- }
87
- else if (-15 <= default_x && default_x <= 320 && 331 <= default_y && default_y <= 975){
88
- var phis_y_left_down = Random.randint(-1,-4)
89
- var phis_x_left_down = Math.sqrt(25 - phis_y_left_down^2)
90
- var last_x = phis_x_left_down
91
- var last_y = phis_y_left_down
92
- }
93
- else if(321 <= default_x && default_x <= 655 && 331 <= default_y && default_y <= 975){
94
- var phis_x_right_down = Random.randint(-1,-4)
95
- var kali_k = Math.sqrt(25 - phis_x_right_down^2)
96
- var phis_y_right_down = kali_k * -1
97
- var last_x = phis_x_right_down
98
- var last_y = phis_y_right_down
99
- }
100
- shape.physical.force(last_x , last_y);
101
- if(shape.hitTestElement(sprite)){
102
- var self = this;
103
- self.exit();
104
- }
105
-
106
- }
107
- kali++;
108
- }
109
- }
110
- }
111
-
112
- });
113
-
114
- // メイン処理
115
- phina.main(function() {
116
- // アプリケーション生成
117
- var app = GameApp({
118
- //startLabel: 'main', // メインシーンから開始する
119
- assets: ASSETS, //loading image
120
- });
121
- // アプリケーション実行
122
- app.run();
123
- });
124
-
125
- </script>
126
- </head>
127
- <body>
128
-
129
- </body>
130
- </html>
131
- ```
132
- https://qiita.com/alkn203/items/bca3222f6b409382fe20#%E5%BD%93%E3%81%9F%E3%82%8A%E5%88%A4%E5%AE%9A%E7%B7%A8
133
- このサイトを参考にphina.jsライブラリを使用し、上記のコードで四方八方から向かってくる正方形をよけてスコアを稼ぐ避けげーを作ろうと思っているのですが、100行目の
134
- ```javascript
135
- if(shape.hitTestElement(sprite)){
136
- var self = this;
137
- self.exit();
138
- }
139
- ```
140
- これらを追加するとコンソール上に”ReferenceError: sprite is not defined”(spriteが定義されていない)と表示されてしまい、うまくいきません。上記のコードを除くと正常に動作します。
141
- initプロパティでspriteは定義しているように見えるのですが、何が問題なのでしょうか?
142
- 対処法をご教示いただきたいです。よろしくお願いします。
143
-
144
- ### 環境
145
- OS: windows10
146
- ブラウザ: firefox
1
+ testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()testElemntCount()

2

element

2020/03/02 00:21

投稿

exif-u
exif-u

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- phina.jsで当たり判定を検出できない
1
+ phina.jsライブラリで当たり判定を検出できない
body CHANGED
File without changes

1

追記

2020/03/01 14:05

投稿

exif-u
exif-u

スコア4

title CHANGED
File without changes
body CHANGED
@@ -129,8 +129,8 @@
129
129
  </body>
130
130
  </html>
131
131
  ```
132
-
132
+ https://qiita.com/alkn203/items/bca3222f6b409382fe20#%E5%BD%93%E3%81%9F%E3%82%8A%E5%88%A4%E5%AE%9A%E7%B7%A8
133
- phina.jsライブラリを使用し、上記のコードで四方八方から向かってくる正方形をよけてスコアを稼ぐ避けげーを作ろうと思っているのですが、100行目の
133
+ このサイトを参考にphina.jsライブラリを使用し、上記のコードで四方八方から向かってくる正方形をよけてスコアを稼ぐ避けげーを作ろうと思っているのですが、100行目の
134
134
  ```javascript
135
135
  if(shape.hitTestElement(sprite)){
136
136
  var self = this;