phina.js Tips Collection #WinningDetermination - Qiita
Using the above site as a reference, I am thinking of using the phina.js library to avoid the square coming from all directions using the code below, but line 100
if(shape.hitTestElement(sprite)){
varself = this;
self.exit();
}
When you add them, "ReferenceError: sprite is not defined" appears on the console and does not work.Except for the above code, it works fine.
In the init property, sprite seems to be defined, but what is the problem?
Please tell me how to deal with it.Thank you for your cooperation.
OS:windows10
browsers:firefox
Code of interest
<html>
<head>
<metacharset='utf-8'/>
<meta name="viewport" content="width=device-width, user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<title> Getting started | phina.js</title>
<!--Read phina.js-->
<script src='http://cdn.rawgit.com/phi-jp/phina.js/v0.2.0/build/phina.js'></script>
<!--Main Action-->
<script>
// Deploy phina.js to Global Territories
phina.globalize();
varASSETS = {
// image
image:{
'tomapiko': 'https://rawgit.com/phi-jp/phina.js/develop/assets/images/tomapiko.png',
},
};
var SCREEN_WIDTH = 640;
var SCREEN_HEIGHT=960;
varSPEED=5;
varENEMY_INTERVAL = 10;
// Define MainScene Class
phina.define('MainScene', {
superClass: 'DisplayScene',
init:function(){
This.superInit();
// Specify background color
This.backgroundColor='#444';
// sprite imaging
varsprite=Sprite('tomapiko').addChildTo(this);
// initial position
sprite.x = 325;
sprite.y = 740;
// after a certain frame has passed
// Touch Retention Event
This.onpointstay=function(e){
// Place the sprite in the touch position
sprite.x = e.pointer.x;
sprite.y = e.pointer.y;
};
// Touch Move Event
This.onpointmove=function(e){
// Place the sprite in the touch position
sprite.x = e.pointer.x;
sprite.y = e.pointer.y;
};
},
update:function(app){
if(app.frame%ENEMY_INTERVAL===0){
// enemy generation
// Draw a rectangle
for(varkali=1;kali<=50;){
var default_x = Random.randint (-15,655);
var default_y = Random.randint (-15,975);
if(-5<=default_x&&default_x<=645&-5<=default_y&=965){}
else{
varshape=Shape().addChildTo(this);
shape.setSize(10,10);
shape.x = default_x;
shape.y = default_y;
if(-15<=default_x&&default_x<=320&&-15<=default_y&&default_y<=330){
// Apply Physical Class and Move
varphis_y_left_up = Random.randint(1,4)
varphis_x_left_up = Math.sqrt(25-phis_y_left_up^2)
var last_x = phis_x_left_up
var last_y=phis_y_left_up
}
else if (321<=default_x&&default_x<=655&-15<=default_y&=330){
varphis_x_right_up = Random.randint(-1,-4)
varphis_y_right_up = Math.sqrt(25-phis_x_right_up^2)
var last_x = phis_x_right_up
var last_y = phis_y_right_up
}
else if (-15<=default_x&&default_x<=320&331<=default_y&&default_y<=975){
varphis_y_left_down = Random.randint(-1,-4)
varphis_x_left_down = Math.sqrt(25-phis_y_left_down^2)
var last_x = phis_x_left_down
var last_y = phis_y_left_down
}
else if (321<=default_x&&default_x<=655&331<=default_y&&default_y<=975){
varphis_x_right_down = Random.randint(-1,-4)
varkali_k = Math.sqrt(25-phis_x_right_down^2)
varphis_y_right_down = kali_k*-1
var last_x = phis_x_right_down
var last_y = phis_y_right_down
}
shape.physical.force(last_x, last_y);
if(shape.hitTestElement(sprite)){
varself = this;
self.exit();
}
}
kali++;
}
}
}
});
// main processing
phina.main(function(){
// application generation
var app = GameApp({
// startLabel: 'main', // Start with main scene
assets —ASSETS, // loading image
});
// application execution
app.run();
});
</script>
</head>
<body>
</body>
</html>
init:function(){
//
// sprite imaging
varsprite=Sprite('tomapiko').addChildTo(this);
// initial position
sprite.x = 325;
sprite.y = 740;
The variable sprite defined here is the local variable for this function.It cannot be viewed from outside the function that is set to init.Therefore, if you try to browse among the functions that you set for the update property, you get an error.
The workaround is to define sprite in a location that can be referenced by the function that you set to the update property.
916 When building Fast API+Uvicorn environment with PyInstaller, console=False results in an error
582 PHP ssh2_scp_send fails to send files as intended
573 rails db:create error: Could not find mysql2-0.5.4 in any of the sources
619 Uncaught (inpromise) Error on Electron: An object could not be cloned
© 2024 OneMinuteCode. All rights reserved.