Commit ed7fbeb2 authored by 18류지석's avatar 18류지석

늒네코드 비활성화, 물리 문제 거의 해결, 단어 초기속도가 어디로 사라지는지 알 수 없음

Signed-off-by: 18류지석's avatar18류지석 <roadmageb@naver.com>
parent 21061e24
...@@ -17,10 +17,17 @@ class WordObject ...@@ -17,10 +17,17 @@ class WordObject
let scale = ((p[1].y - p[0].y) / (p[1].x - p[0].x)) * (this.wordWeight - p[0].x) + p[0].y; let scale = ((p[1].y - p[0].y) / (p[1].x - p[0].x)) * (this.wordWeight - p[0].x) + p[0].y;
let fontscale = 25; let fontscale = 25;
var random = WordSpace.getSpawnPoint(lenRate); var random = WordSpace.getSpawnPoint(lenRate);
this.physicsObj = scene.physics.add.sprite(random.x, random.y, 'wordBgr' + this.wordGrade + '_' + Math.min(Math.max(2, this.wordText.length), 6)) this.physicsObj = scene.physics.add.sprite(random.x, random.y, 'wordBgr' + this.wordGrade + '_' + Math.min(Math.max(2, this.wordText.length), 6))
.setMass(this.wordWeight) .setMass(this.wordWeight * 10)
.setScale(scale) .setScale(scale)
.setBounce(0.5); .setFrictionX(0.5)
.setFrictionY(0.5);
let dist = Phaser.Math.Distance.Between(this.physicsObj.x, this.physicsObj.y, WordSpace.gravityPoint.x, WordSpace.gravityPoint.y);
let angle = Phaser.Math.Angle.Between(this.physicsObj.x, this.physicsObj.y, WordSpace.gravityPoint.x, WordSpace.gravityPoint.y);
this.physicsObj.setVelocity(100 * Math.cos(angle), 100 * Math.sin(angle));
this.wordObj = scene.add.text(random.x, random.y, this.wordText, this.wordObj = scene.add.text(random.x, random.y, this.wordText,
{ {
...@@ -32,6 +39,8 @@ class WordObject ...@@ -32,6 +39,8 @@ class WordObject
WordSpace.totalWordNum += 1; WordSpace.totalWordNum += 1;
WordSpace.setGameOverTimer(); WordSpace.setGameOverTimer();
//console.log("Total weight : " + WordSpace.totalWeight); //console.log("Total weight : " + WordSpace.totalWeight);
console.log(this.physicsObj.body.velocity.x);
} }
destroy() destroy()
...@@ -47,19 +56,34 @@ class WordObject ...@@ -47,19 +56,34 @@ class WordObject
WordSpace.wordPhysicsGroup.remove(this.physicsObj, true, true); WordSpace.wordPhysicsGroup.remove(this.physicsObj, true, true);
} }
attract() attract()
{ {
let gravityScale = 0.1; /*
let accel = {x: 0, y: 0}; let gravityScale = 0.5, velocityLimit;
let dist = Phaser.Math.Distance.Between(this.physicsObj.x, this.physicsObj.y, WordSpace.gravityPoint.x, WordSpace.gravityPoint.y); let accel = {x: this.physicsObj.body.velocity.x, y: this.physicsObj.body.velocity.y};
let angle = Phaser.Math.Angle.Between(this.physicsObj.x, this.physicsObj.y, WordSpace.gravityPoint.x, WordSpace.gravityPoint.y); let dist, angle;
accel.x += Math.pow(dist,2) * gravityScale * Math.cos(angle); let vel;
accel.y += Math.pow(dist,2) * gravityScale * Math.sin(angle);
this.physicsObj.setVelocity(dist * Math.cos(angle) * this.wordSpeed, dist * Math.sin(angle) * this.wordSpeed); console.log('#' + this.physicsObj.body.velocity.x);
this.wordObj.setPosition(this.physicsObj.x, this.physicsObj.y);
this.physicsObj.setVelocity(dist * Math.cos(angle) * this.wordSpeed, dist * Math.sin(angle) * this.wordSpeed); dist = Phaser.Math.Distance.Between(this.physicsObj.x, this.physicsObj.y, WordSpace.gravityPoint.x, WordSpace.gravityPoint.y);
angle = Phaser.Math.Angle.Between(this.physicsObj.x, this.physicsObj.y, WordSpace.gravityPoint.x, WordSpace.gravityPoint.y);
velocityLimit = dist + 10;
//accel.x += gravityScale * Math.cos(angle);
//accel.y += gravityScale * Math.sin(angle);
vel = Phaser.Math.Distance.Between(accel.x,accel.y,0,0);
if(vel > velocityLimit)
{
accel.x *= velocityLimit / vel;
accel.y *= velocityLimit / vel;
}
this.physicsObj.setVelocity(accel.x, accel.y);
this.wordObj.setPosition(this.physicsObj.x, this.physicsObj.y); this.wordObj.setPosition(this.physicsObj.x, this.physicsObj.y);
*/
} }
isEqualObject(_generationCode) { return _generationCode === this.generationCode; } isEqualObject(_generationCode) { return _generationCode === this.generationCode; }
......
...@@ -33,8 +33,8 @@ WordSpace.getSpawnPoint = function(_lenRate) ...@@ -33,8 +33,8 @@ WordSpace.getSpawnPoint = function(_lenRate)
{ {
let lenRate = 1; let lenRate = 1;
if(typeof _lenRate == 'number') lenRate = _lenRate; if(typeof _lenRate == 'number') lenRate = _lenRate;
let xLen = 600 * lenRate; let xLen = 550 * lenRate;
let yLen = 300 * lenRate; let yLen = 350 * lenRate;
const angle = Math.random() * Math.PI * 2; const angle = Math.random() * Math.PI * 2;
let _x = xLen * Math.cos(angle) + this.gravityPoint.x; let _x = xLen * Math.cos(angle) + this.gravityPoint.x;
let _y = yLen * Math.sin(angle) + this.gravityPoint.y; let _y = yLen * Math.sin(angle) + this.gravityPoint.y;
......
...@@ -25,7 +25,7 @@ socket.on('idSet', function(msg) // {str, num} ...@@ -25,7 +25,7 @@ socket.on('idSet', function(msg) // {str, num}
}); });
//test //test
window.addEventListener("message", function(event) /*window.addEventListener("message", function(event)
{ {
var sub = 0; var sub = 0;
if(event.data == "tick"){ if(event.data == "tick"){
...@@ -122,3 +122,4 @@ window.addEventListener("message", function(event) ...@@ -122,3 +122,4 @@ window.addEventListener("message", function(event)
} }
}); });
})(this); })(this);
*/
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment