Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zeroing-libs
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
劳工
zeroing-libs
Commits
7da17f99
Commit
7da17f99
authored
Aug 07, 2020
by
汪欢
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
a
parent
d3d3c9d7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
384 additions
and
153 deletions
+384
-153
main.js
src/custom/basket/debug/main.js
+128
-37
main.js.map
src/custom/basket/debug/main.js.map
+1
-1
GameView.ts
src/custom/basket/src/game/GameView.ts
+255
-115
No files found.
src/custom/basket/debug/main.js
View file @
7da17f99
...
...
@@ -114,8 +114,14 @@
_this
.
toRo
=
180
/
Math
.
PI
;
_this
.
loopMark
=
false
;
_this
.
guideMark
=
false
;
_this
.
ballAddSpeedX
=
1.2
;
_this
.
ballAddSpeedY
=
5.3
;
_this
.
inPointMark
=
false
;
_this
.
outPointMark
=
false
;
_this
.
boardMark
=
false
;
_this
.
pointMark
=
false
;
_this
.
planeMark
=
false
;
_this
.
stringMark
=
""
;
_this
.
ballAddSpeedX
=
-
40
;
_this
.
ballAddSpeedY
=
-
80
;
_this
.
gravity
=
-
5
;
_this
.
stepSpeed
=
[
0.5
,
3.5
];
_this
.
detaTimeEf
=
_this
.
stepSpeed
[
1
];
...
...
@@ -130,7 +136,27 @@
_this
.
clickMark
=
false
;
_this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
_this
.
start
,
_this
);
var
p2
=
window
[
"p2"
];
var
materialBall
=
new
p2
.
Material
(
1
);
_this
.
world
=
new
p2
.
World
();
_this
.
world
.
sleepMode
=
p2
.
World
.
BODY_SLEEPING
;
_this
.
world
.
gravity
=
[
0
,
10
];
var
box
=
new
p2
.
Box
({
width
:
20
,
height
:
200
,
material
:
materialBoard
,
});
_this
.
boxBody
=
new
p2
.
Body
({
mass
:
0
,
type
:
p2
.
Body
.
STATIC
,
position
:
[
20
,
400
],
});
_this
.
boxBody
.
addShape
(
box
);
_this
.
box
=
_this
.
createBox
(
0
,
-
100
,
20
,
200
);
_this
.
boxBody
.
displays
=
[
_this
.
box
];
_this
.
world
.
addBody
(
_this
.
boxBody
);
_this
.
world
.
defaultContactMaterial
.
friction
=
0.1
;
_this
.
world
.
defaultContactMaterial
.
restitution
=
1
;
_this
.
world
.
setGlobalStiffness
(
1
e5
);
var
materialBall
=
new
p2
.
Material
(
2
);
var
materialPoint
=
new
p2
.
Material
(
2
);
var
materialBoard
=
new
p2
.
Material
(
2
);
var
materialPlane
=
new
p2
.
Material
(
2
);
...
...
@@ -139,50 +165,77 @@
restitution
:
0.5
,
});
var
contactMaterialBallBoard
=
new
p2
.
ContactMaterial
(
materialBall
,
materialBoard
,
{
friction
:
0.
3
,
restitution
:
0.5
,
friction
:
0.
1
,
restitution
:
1
,
});
var
contactMaterialBallPlane
=
new
p2
.
ContactMaterial
(
materialBall
,
materialPlane
,
{
friction
:
0.
3
,
restitution
:
0.7
,
friction
:
0.
1
,
restitution
:
1
,
});
_this
.
world
=
new
p2
.
World
();
_this
.
world
.
sleepMode
=
p2
.
World
.
BODY_SLEEPING
;
_this
.
world
.
gravity
=
[
0
,
10
];
var
box
=
new
p2
.
Box
({
width
:
_this
.
config
.
boardBody
.
width
,
height
:
_this
.
config
.
boardBody
.
height
,
material
:
materialBoard
});
_this
.
boxBody
=
new
p2
.
Body
({
mass
:
0
,
type
:
p2
.
Body
.
STATIC
,
position
:
[
20
,
200
]
});
_this
.
boxBody
.
addShape
(
box
);
var
display
=
new
engine
.
Texture
(
getTextureByName
(
'篮板'
));
var
displays
=
new
engine
.
Sprite
(
display
);
_this
.
addChild
(
displays
);
_this
.
boxBody
.
displays
=
[
displays
];
_this
.
world
.
addBody
(
_this
.
boxBody
);
_this
.
world
.
defaultContactMaterial
.
friction
=
0.3
;
_this
.
world
.
defaultContactMaterial
.
restitution
=
0.6
;
_this
.
world
.
setGlobalStiffness
(
1
e5
);
_this
.
world
.
addContactMaterial
(
contactMaterialBallPoint
);
_this
.
world
.
addContactMaterial
(
contactMaterialBallBoard
);
_this
.
world
.
addContactMaterial
(
contactMaterialBallPlane
);
var
ball
=
new
p2
.
Circle
({
radius
:
60
});
_this
.
basketball
=
new
p2
.
Body
({
var
circleShape
=
new
p2
.
Circle
({
radius
:
1
,
material
:
materialPoint
,
});
var
circleBody
=
_this
.
circleBody
=
new
p2
.
Body
({
mass
:
0
,
position
:
[
60
,
500
],
type
:
p2
.
Body
.
STATIC
,
});
circleBody
.
addShape
(
circleShape
);
_this
.
world
.
addBody
(
circleBody
);
var
ellipse
=
_this
.
createBox
(
0
,
0
,
20
,
20
);
circleBody
.
displays
=
[
ellipse
];
var
circleShape1
=
new
p2
.
Circle
({
radius
:
1
,
material
:
materialPoint
,
});
var
circleBody1
=
_this
.
circleBody1
=
new
p2
.
Body
({
mass
:
0
,
position
:
[
200
,
500
],
type
:
p2
.
Body
.
STATIC
,
});
circleBody1
.
addShape
(
circleShape1
);
_this
.
world
.
addBody
(
circleBody1
);
var
ellipse2
=
_this
.
createBox
(
0
,
0
,
20
,
20
);
circleBody1
.
displays
=
[
ellipse2
];
var
ball
=
new
p2
.
Circle
({
radius
:
60
});
var
basketball
=
_this
.
basketball
=
new
p2
.
Body
({
mass
:
1
,
position
:
[
300
,
250
],
velocity
:
[
-
40
,
0
],
material
:
materialBall
velocity
:
[
0
,
4
0
],
material
:
materialBall
,
});
_this
.
basketball
.
addShape
(
ball
);
_this
.
world
.
addBody
(
_this
.
basketball
);
var
balldisplay
=
new
engine
.
Texture
(
getTextureByName
(
'篮球'
)
);
var
balldisplays
=
new
engine
.
Sprite
(
balldisplay
)
;
_this
.
addChild
(
balldisplays
)
;
_this
.
basketball
.
displays
=
[
balldisplays
]
;
_this
.
ball
=
_this
.
createCircle
(
);
_this
.
basketball
.
displays
=
[
_this
.
ball
]
;
var
stringMark
=
_this
.
stringMark
;
var
self
=
_this
;
var
plane
=
new
p2
.
Plane
();
_this
.
planeBody
=
new
p2
.
Body
({
position
:
[
engine
.
gameStage
.
width
/
2
,
engine
.
gameStage
.
height
-
100
]
});
_this
.
planeBody
=
new
p2
.
Body
({
position
:
[
engine
.
gameStage
.
width
,
engine
.
gameStage
.
height
-
200
],
material
:
materialPlane
,
});
_this
.
planeBody
.
angle
=
Math
.
PI
;
_this
.
planeBody
.
addShape
(
plane
);
_this
.
world
.
addBody
(
_this
.
planeBody
);
_this
.
plane
=
_this
.
createPlane
();
_this
.
planeBody
.
displays
=
[
_this
.
plane
];
_this
.
world
.
on
(
'beginContact'
,
function
(
e
)
{
if
(
e
.
bodyA
==
circleBody
||
e
.
bodyA
==
circleBody1
)
{
if
(
basketball
.
position
[
0
]
>
circleBody
.
position
[
0
]
&&
basketball
.
position
[
0
]
<
circleBody1
.
position
[
0
])
{
if
(
basketball
.
position
[
1
]
>
circleBody
.
position
[
1
]
||
basketball
.
position
[
1
]
>
circleBody1
.
position
[
1
])
{
console
.
log
(
"上往下"
);
self
.
isRight
=
!
self
.
isRight
;
self
.
changePosition
();
}
}
}
});
_this
.
addEventListener
(
engine
.
Event
.
ENTER_FRAME
,
_this
.
onEnterFrame
,
_this
);
return
_this
;
}
...
...
@@ -194,21 +247,30 @@
var
display
=
body
.
displays
[
0
];
display
.
x
=
body
.
position
[
0
];
display
.
y
=
body
.
position
[
1
];
display
.
rotation
=
body
.
angle
*
180
/
Math
.
PI
;
display
.
rotation
=
(
body
.
angle
*
180
)
/
Math
.
PI
;
}
if
(
this
.
basketball
.
position
[
0
]
<
-
120
)
{
this
.
basketball
.
position
[
0
]
=
750
;
}
if
(
this
.
basketball
.
position
[
0
]
>
750
+
120
)
{
this
.
basketball
.
position
[
0
]
=
-
120
;
}
};
GameView
.
prototype
.
createBox
=
function
()
{
GameView
.
prototype
.
createBox
=
function
(
x
,
y
,
w
,
h
)
{
var
sp
=
new
engine
.
Shape
();
sp
.
beginFill
(
0x0000ff
);
sp
.
drawRect
(
0
,
0
,
50
,
50
);
sp
.
drawRect
(
x
,
y
,
w
,
h
);
sp
.
endFill
();
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
this
.
addChild
(
sp
);
return
sp
;
};
GameView
.
prototype
.
createPlane
=
function
()
{
var
sp
=
new
engine
.
Shape
();
sp
.
beginFill
(
0x0000ff
,
1
);
sp
.
moveTo
(
0
,
0
);
sp
.
lineTo
(
engine
.
gameStage
.
width
,
0
);
sp
.
drawRect
(
0
,
-
10
,
engine
.
gameStage
.
width
,
1
0
);
sp
.
endFill
(
);
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
this
.
addChild
(
sp
);
...
...
@@ -217,17 +279,46 @@
GameView
.
prototype
.
createCircle
=
function
()
{
var
sp
=
new
engine
.
Shape
();
sp
.
beginFill
(
0xff0000
,
0.7
);
sp
.
drawCircle
(
200
,
15
0
,
60
);
sp
.
drawCircle
(
0
,
0
,
60
);
sp
.
endFill
();
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
this
.
addChild
(
sp
);
return
sp
;
};
GameView
.
prototype
.
createEclipse
=
function
()
{
var
sp
=
new
engine
.
Shape
();
sp
.
beginFill
(
0x00ff00
,
0.4
);
sp
.
drawEllipse
(
0
,
0
,
200
,
80
);
sp
.
endFill
();
this
.
addChild
(
sp
);
return
sp
;
};
GameView
.
prototype
.
changePosition
=
function
()
{
this
.
boxBody
.
position
[
0
]
=
740
;
this
.
boxBody
.
position
[
1
]
=
400
;
this
.
circleBody
.
position
[
0
]
=
540
;
this
.
circleBody
.
position
[
1
]
=
400
;
this
.
circleBody1
.
position
[
0
]
=
700
;
this
.
circleBody1
.
position
[
1
]
=
400
;
};
GameView
.
prototype
.
onMouseDown
=
function
(
e
)
{
var
direction
=
this
.
isRight
?
-
1
:
1
;
this
.
basketball
.
velocity
[
0
]
=
this
.
ballAddSpeedX
*
direction
;
this
.
basketball
.
velocity
[
1
]
=
this
.
ballAddSpeedY
;
this
.
basketball
.
angularVelocity
=
-
2
*
direction
;
};
GameView
.
prototype
.
addEvent
=
function
()
{
this
.
addEventListener
(
engine
.
Event
.
ENTER_FRAME
,
(
this
.
onEnterFrameBind
=
this
.
onEnterFrame
.
bind
(
this
)));
};
GameView
.
prototype
.
removeEvent
=
function
()
{
this
.
removeEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
onEnterFrameBind
);
};
GameView
.
prototype
.
start
=
function
()
{
this
.
stage
.
addEventListener
(
engine
.
MouseEvent
.
CLICK
,
this
.
onMouseDown
,
this
);
console
.
log
(
this
.
world
);
};
GameView
.
prototype
.
stop
=
function
()
{
};
GameView
.
prototype
.
addEvent
=
function
()
{
};
return
GameView
;
}(
engine
.
Container
));
...
...
src/custom/basket/debug/main.js.map
View file @
7da17f99
{"version":3,"file":"index.js","sources":["src/custom/basket/src/game/utils.ts","src/custom/basket/src/game/basketBoard.ts","src/custom/basket/src/game/GameView.ts","src/custom/basket/src/props.ts","src/custom/basket/src/game/GameWrapper.ts","src/custom/basket/src/index.ts"],"sourcesContent":["/**\r\n * Created by rockyl on 2020-01-21.\r\n */\r\n\r\nexport function getTexture(uuid) {\r\n\treturn engine.Texture.from(getAssetByUUID(uuid).uuid);\r\n}\r\n\r\nexport function getTextureByName(name) {\r\n\treturn getTexture(engine.getAssetByName(name).uuid);\r\n}\r\n\r\nexport function playSound(name) {\r\n\tengine.playSound(engine.getAssetByName(name).uuid, {keep: true});\r\n}\r\nexport function createSvga(name, anchorName?) {\r\n\tlet inst = new svga.Svga();\r\n\tinst.source = 'asset://' + engine.getAssetByName(name).uuid;\r\n\treturn inst;\r\n}\r\n\r\n\r\n\r\nexport function getIndexFromRC(row,col,maxCol){\r\n\tlet index;\r\n\tindex = row * maxCol + col ;\r\n\treturn index\r\n}\r\n\r\n\r\n\r\n\r\nexport function getRandomArray(array){\r\n\tarray.sort(function() {\r\n\t\treturn .5 - Math.random();\r\n\t});\r\n}","import {getTextureByName} from './utils'\r\n\r\nexport default class BasketBoard extends engine.Container{\r\n board:engine.Sprite = new engine.Sprite(getTextureByName('篮板'));\r\n netFront:engine.Sprite = new engine.Sprite(getTextureByName('球网前'));\r\n netBack:engine.Sprite = new engine.Sprite(getTextureByName('球网后'));\r\n\r\n // 篮筐传感,圆环\r\n private config = {\r\n boardBody:{\r\n x:0,\r\n y:0,\r\n width:0.3,\r\n height:2\r\n },\r\n insidePointBody: {\r\n x: 15,\r\n y: 65,\r\n radius: 0.07\r\n },\r\n outsidePointBody: {\r\n x: 180,\r\n y: 65,\r\n radius: 0.05\r\n },\r\n upSensorBody: {\r\n x: 100,\r\n y: 65,\r\n radius: 0.05\r\n },\r\n downSensorBody: {\r\n x: 100,\r\n y: 65 + 80,\r\n radius: 0.05\r\n }\r\n }\r\n\r\n \r\n\r\n constructor(){\r\n super();\r\n this.addChild(this.board);\r\n\r\n // 椭圆\r\n let shape = new engine.Shape();\r\n shape.beginFill(0xff0000,0.5);\r\n shape.drawEllipse(50,150,200,80);\r\n shape.endFill();\r\n\r\n this.board.addChild(shape)\r\n\r\n\r\n \r\n }\r\n\r\n setPosition(x,y){\r\n this.x = x;\r\n this.y = y;\r\n }\r\n\r\n}","import { getTextureByName, getTexture } from \"./utils\";\r\nimport BasketBoard from \"./basketBoard\";\r\nimport Basketball from \"./Basketball\";\r\nexport default class GameView extends engine.Container {\r\n\r\n private world:p2.World;\r\n private boxBody:p2.Body;\r\n private planeBody:p2.Body;\r\n private basketball:p2.Body;\r\n private ball:engine.Sprite;\r\n private plane:engine.Sprite;\r\n\r\n basketBoard: BasketBoard = new BasketBoard();\r\n\r\n\r\n private pool = {};\r\n private horizontal = [74, 676]; //二值\r\n private verticalArea = [200, 600]; //范围\r\n\r\n private verticalInit = 462 - 45;\r\n private positionInitBall = {\r\n x: 551,\r\n y: 805,\r\n };\r\n private vertical = this.verticalInit;\r\n private isRight = false;\r\n private saleX = this.isRight ? 1 : -1;\r\n\r\n private config = {\r\n net: {\r\n x: 9.5,\r\n y: 19 + 45,\r\n },\r\n insidePointBody: {\r\n x: 15,\r\n y: 65,\r\n radius: 0.07,\r\n },\r\n outsidePointBody: {\r\n x: 180,\r\n y: 65,\r\n radius: 0.05,\r\n },\r\n boardBody: {\r\n x: 0,\r\n y: 0,\r\n // length: 2,\r\n // radius: 0.1,\r\n width: 0.3,\r\n height: 2,\r\n },\r\n upSensorBody: {\r\n x: 100,\r\n y: 65,\r\n radius: 0.05,\r\n },\r\n downSensorBody: {\r\n x: 100,\r\n y: 65 + 80,\r\n radius: 0.05,\r\n },\r\n };\r\n private view;\r\n // private basketball;\r\n private direction;\r\n private toRo = 180 / Math.PI;\r\n private loopMark = false;\r\n private guideMark = false;\r\n\r\n private ballAddSpeedX = 1.2;\r\n private ballAddSpeedY = 5.3;\r\n private gravity = -5;\r\n private stepSpeed = [0.5, 3.5]; //3.5正常速度,2慢速播放\r\n private detaTimeEf = this.stepSpeed[1];\r\n private ballSpeedLimitX = 3;\r\n private planeHeight = 1100;\r\n\r\n private brokeMark = false;\r\n private doubleHit = 0;\r\n private timeLimit = window[\"timeLimit\"] ? window[\"timeLimit\"] : 5;\r\n private timeMark = false;\r\n private timeCount = this.timeLimit;\r\n private timeSpeed = 1 / 60;\r\n\r\n private clickMark = false;\r\n\r\n constructor() {\r\n super();\r\n this.once(engine.Event.ADDED_TO_STAGE, this.start, this);\r\n\r\n var p2 = window[\"p2\"];\r\n\r\n \r\n\r\n // material\r\n var materialBall = new p2.Material(1); //参数id:number\r\n var materialPoint = new p2.Material(2);\r\n var materialBoard = new p2.Material(2);\r\n var materialPlane = new p2.Material(2);\r\n\r\n // 不同material碰撞系数\r\n var contactMaterialBallPoint = new p2.ContactMaterial(\r\n materialBall,\r\n materialPoint,\r\n {\r\n friction: 0.3,\r\n restitution: 0.5,\r\n }\r\n );\r\n var contactMaterialBallBoard = new p2.ContactMaterial(\r\n materialBall,\r\n materialBoard,\r\n {\r\n friction: 0.3,\r\n restitution: 0.5,\r\n }\r\n );\r\n var contactMaterialBallPlane = new p2.ContactMaterial(\r\n materialBall,\r\n materialPlane,\r\n {\r\n friction: 0.3,\r\n restitution: 0.7,\r\n }\r\n );\r\n \r\n\r\n this.world = new p2.World();\r\n this.world.sleepMode = p2.World.BODY_SLEEPING;\r\n\r\n this.world.gravity = [0,10];\r\n // this.world.gravity = [0,-5];\r\n //创建box\r\n // var box:p2.Box = new p2.Box({width:100, height:100});\r\n var box:p2.Box = new p2.Box({width:this.config.boardBody.width, height:this.config.boardBody.height,material:materialBoard});\r\n // this.boxBody = new p2.Body({mass:10, angularVelocity:1, position:[200,200]});\r\n\r\n this.boxBody = new p2.Body({mass:0, type:p2.Body.STATIC, position:[20,200]});\r\n this.boxBody.addShape(box);\r\n // 添加图片\r\n\r\n let display = new engine.Texture(getTextureByName('篮板'));\r\n let displays = new engine.Sprite(display)\r\n this.addChild(displays)\r\n this.boxBody.displays = [displays];\r\n\r\n this.world.addBody(this.boxBody);\r\n // 设置摩擦和回弹系数\r\n this.world.defaultContactMaterial.friction = 0.3;\r\n this.world.defaultContactMaterial.restitution = 0.6;\r\n this.world.setGlobalStiffness(1e5);\r\n\r\n this.world.addContactMaterial(contactMaterialBallPoint);\r\n this.world.addContactMaterial(contactMaterialBallBoard);\r\n this.world.addContactMaterial(contactMaterialBallPlane);\r\n \r\n\r\n // 球体\r\n var ball = new p2.Circle({radius:60});\r\n this.basketball = new p2.Body({\r\n mass:0,\r\n position:[300,250],\r\n velocity:[-40,0],\r\n // type:p2.Body.DYNAMIC,\r\n material:materialBall\r\n })\r\n this.basketball.addShape(ball);\r\n this.world.addBody(this.basketball);\r\n\r\n // this.ball = this.createCircle();\r\n\r\n let balldisplay = new engine.Texture(getTextureByName('篮球'));\r\n let balldisplays = new engine.Sprite(balldisplay);\r\n this.addChild(balldisplays)\r\n this.basketball.displays = [balldisplays];\r\n\r\n\r\n\r\n //创建plane Plane shape class. The plane is facing in the Y direction.\r\n var plane:p2.Plane = new p2.Plane();\r\n this.planeBody = new p2.Body({position:[engine.gameStage.width/2, engine.gameStage.height - 100]}); //GameConst.stage保存全局静态变量stage\r\n this.planeBody.angle = Math.PI;\r\n\r\n this.planeBody.addShape(plane);\r\n\r\n this.world.addBody(this.planeBody);\r\n this.plane = this.createPlane();\r\n this.planeBody.displays = [this.plane];\r\n //每帧更新\r\n this.addEventListener(engine.Event.ENTER_FRAME, this.onEnterFrame, this);\r\n\r\n }\r\n\r\n private onEnterFrame(){\r\n //更新物理世界\r\n this.world.step(60/1000);\r\n var len:number = this.world.bodies.length;\r\n for(var i: number = 0;i < len;i++) {\r\n var body: p2.Body = this.world.bodies[i];\r\n var display: engine.DisplayObject = body.displays[0];\r\n display.x = body.position[0]; //同步刚体和egret显示对象的位置和旋转角度\r\n display.y = body.position[1];\r\n display.rotation = body.angle * 180 / Math.PI;\r\n }\r\n }\r\n private createBox(){\r\n // var sp:engine.Sprite = new engine.Sprite();\r\n var sp = new engine.Shape();\r\n sp.beginFill(0x0000ff);\r\n sp.drawRect(0,0,50,50);\r\n sp.endFill();\r\n // sp.anchorX = sp.width/2;\r\n // sp.anchorY = sp.height/2;\r\n return sp;\r\n }\r\n private createPlane(){\r\n // var sp:engine.Sprite = new engine.Sprite();\r\n var sp = new engine.Shape();\r\n // sp.lineStyle(10, 0x00ff00);\r\n sp.beginFill(0x0000ff,1)\r\n sp.moveTo(0, 0);\r\n sp.lineTo(engine.gameStage.width,0);\r\n sp.anchorX = sp.width/2;\r\n sp.anchorY = sp.height/2;\r\n this.addChild(sp);\r\n return sp;\r\n }\r\n\r\n private createCircle(){\r\n var sp = new engine.Shape();\r\n sp.beginFill(0xff0000,0.7);\r\n sp.drawCircle(200,150,60);\r\n sp.endFill();\r\n sp.anchorX = sp.width/2;\r\n sp.anchorY = sp.height/2;\r\n return sp;\r\n }\r\n \r\n start() {\r\n\r\n // let gameBg = new engine.Sprite(\r\n // getTexture(\"a880ee6b-c6d1-4d8f-8734-367f368a1803\")\r\n // );\r\n // this.addChild(gameBg);\r\n // this.createWorld()\r\n // this.createPlane();\r\n console.log(this.world)\r\n\r\n \r\n\r\n\r\n // this.addChild(this.world)\r\n /* var fixedTimeStep = 1 / 60; // seconds\r\n var maxSubSteps = 10; // Max sub steps to catch up with the wall clock\r\n var lastTime;\r\n\r\n // Animation loop\r\n function animate(time) {\r\n requestAnimationFrame(animate);\r\n\r\n var deltaTime = lastTime ? (time - lastTime) / 1000 : 0;\r\n\r\n this.world.step(fixedTimeStep, deltaTime, maxSubSteps);\r\n\r\n // Render the circle at the current interpolated position\r\n // renderCircleAtPosition(circleBody.interpolatedPosition);\r\n\r\n lastTime = time;\r\n }\r\n\r\n // Start the animation loop\r\n requestAnimationFrame(animate); */\r\n\r\n\r\n // this.basketBoard.setPosition(0,100);\r\n // this.addChild(this.basketBoard)\r\n // console.log('1')\r\n\r\n // this.basketball.initPos(400,200);\r\n // this.addChild(this.basketball);\r\n\r\n \r\n }\r\n\r\n stop() {}\r\n\r\n addEvent() {}\r\n}\r\n","\r\n\r\nexport let props: any = {};\r\n\r\nexport function prepareProps() {\r\n\tlet metaProps = getProps();\r\n\r\n\tengine.injectProp(props, metaProps);\r\n}\r\n\r\nexport function injectProps(p) {\r\n\tengine.injectProp(props, p);\r\n}\r\n","\r\nimport GameView from \"./GameView\";\r\n\r\nimport { injectProps } from \"../props\";\r\n\r\n\r\nexport class GameWrapper extends engine.Container {\r\n\t// private _status;\r\n\tprivate _gameView: GameView;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tengine.globalEvent.addEventListener('game-start', this.start, this);\r\n\t\tengine.globalEvent.addEventListener('game-stop', this.stop, this);\r\n\r\n\t\t//创建实例\r\n\t\tlet gameView = this._gameView = new GameView();\r\n\t\tthis.addChild(gameView);\r\n\r\n\t}\r\n\r\n\tstart(event: engine.Event) {\r\n\t\tinjectProps(event.data);\r\n\r\n\t\t// this._status = 1;\r\n\r\n\t\tthis._gameView.start();\r\n\t}\r\n\tstop(event: engine.Event) {\r\n\t\t\r\n\t\tthis._gameView.stop();\r\n\t}\r\n\r\n\t// reset(event:engine.Event){\r\n\t// \tthis._gameView.reset();\r\n\t// }\r\n}\r\n","\r\n\r\nimport {GameWrapper} from \"./game/GameWrapper\";\r\nimport {injectProps, prepareProps} from \"./props\";\r\n\r\nexport default function (props) {\r\n\tprepareProps();\r\n\tinjectProps(props);\r\n\r\n\tlet instance = new GameWrapper();\r\n\t\r\n\treturn instance;\r\n}\r\n"],"names":["__extends"],"mappings":"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"}
\ No newline at end of file
{"version":3,"file":"index.js","sources":["src/custom/basket/src/game/utils.ts","src/custom/basket/src/game/basketBoard.ts","src/custom/basket/src/game/GameView.ts","src/custom/basket/src/props.ts","src/custom/basket/src/game/GameWrapper.ts","src/custom/basket/src/index.ts"],"sourcesContent":["/**\r\n * Created by rockyl on 2020-01-21.\r\n */\r\n\r\nexport function getTexture(uuid) {\r\n\treturn engine.Texture.from(getAssetByUUID(uuid).uuid);\r\n}\r\n\r\nexport function getTextureByName(name) {\r\n\treturn getTexture(engine.getAssetByName(name).uuid);\r\n}\r\n\r\nexport function playSound(name) {\r\n\tengine.playSound(engine.getAssetByName(name).uuid, {keep: true});\r\n}\r\nexport function createSvga(name, anchorName?) {\r\n\tlet inst = new svga.Svga();\r\n\tinst.source = 'asset://' + engine.getAssetByName(name).uuid;\r\n\treturn inst;\r\n}\r\n\r\n\r\n\r\nexport function getIndexFromRC(row,col,maxCol){\r\n\tlet index;\r\n\tindex = row * maxCol + col ;\r\n\treturn index\r\n}\r\n\r\n\r\n\r\n\r\nexport function getRandomArray(array){\r\n\tarray.sort(function() {\r\n\t\treturn .5 - Math.random();\r\n\t});\r\n}","import {getTextureByName} from './utils'\r\n\r\nexport default class BasketBoard extends engine.Container{\r\n board:engine.Sprite = new engine.Sprite(getTextureByName('篮板'));\r\n netFront:engine.Sprite = new engine.Sprite(getTextureByName('球网前'));\r\n netBack:engine.Sprite = new engine.Sprite(getTextureByName('球网后'));\r\n\r\n // 篮筐传感,圆环\r\n private config = {\r\n boardBody:{\r\n x:0,\r\n y:0,\r\n width:0.3,\r\n height:2\r\n },\r\n insidePointBody: {\r\n x: 15,\r\n y: 65,\r\n radius: 0.07\r\n },\r\n outsidePointBody: {\r\n x: 180,\r\n y: 65,\r\n radius: 0.05\r\n },\r\n upSensorBody: {\r\n x: 100,\r\n y: 65,\r\n radius: 0.05\r\n },\r\n downSensorBody: {\r\n x: 100,\r\n y: 65 + 80,\r\n radius: 0.05\r\n }\r\n }\r\n\r\n \r\n\r\n constructor(){\r\n super();\r\n this.addChild(this.board);\r\n\r\n // 椭圆\r\n let shape = new engine.Shape();\r\n shape.beginFill(0xff0000,0.5);\r\n shape.drawEllipse(50,150,200,80);\r\n shape.endFill();\r\n\r\n this.board.addChild(shape)\r\n\r\n\r\n \r\n }\r\n\r\n setPosition(x,y){\r\n this.x = x;\r\n this.y = y;\r\n }\r\n\r\n}","import { getTextureByName, getTexture } from \"./utils\";\r\nimport BasketBoard from \"./basketBoard\";\r\nimport Basketball from \"./Basketball\";\r\nexport default class GameView extends engine.Container {\r\n private world: p2.World;\r\n private boxBody: p2.Body;\r\n private planeBody: p2.Body;\r\n private basketball: p2.Body;\r\n private ball: engine.Sprite;\r\n private plane: engine.Sprite;\r\n private box: engine.Sprite;\r\n\r\n private circleBody:p2.Body;\r\n private circleBody1:p2.Body;\r\n\r\n basketBoard: BasketBoard = new BasketBoard();\r\n\r\n private pool = {};\r\n private horizontal = [74, 676]; //二值\r\n private verticalArea = [200, 600]; //范围\r\n\r\n private verticalInit = 462 - 45;\r\n private positionInitBall = {\r\n x: 551,\r\n y: 805,\r\n };\r\n private vertical = this.verticalInit;\r\n private isRight = false;\r\n private saleX = this.isRight ? 1 : -1;\r\n\r\n private config = {\r\n net: {\r\n x: 9.5,\r\n y: 19 + 45,\r\n },\r\n insidePointBody: {\r\n x: 15,\r\n y: 65,\r\n radius: 0.07,\r\n },\r\n outsidePointBody: {\r\n x: 180,\r\n y: 65,\r\n radius: 0.05,\r\n },\r\n boardBody: {\r\n x: 0,\r\n y: 0,\r\n // length: 2,\r\n // radius: 0.1,\r\n width: 0.3,\r\n height: 2,\r\n },\r\n upSensorBody: {\r\n x: 100,\r\n y: 65,\r\n radius: 0.05,\r\n },\r\n downSensorBody: {\r\n x: 100,\r\n y: 65 + 80,\r\n radius: 0.05,\r\n },\r\n };\r\n private onEnterFrameBind: Function;\r\n\r\n private view;\r\n // private basketball;\r\n private direction;\r\n private toRo = 180 / Math.PI;\r\n private loopMark = false;\r\n private guideMark = false;\r\n\r\n //碰撞标志位\r\n private inPointMark = false;\r\n private outPointMark = false;\r\n private boardMark = false;\r\n private pointMark = false;\r\n private planeMark = false;\r\n private stringMark = \"\";\r\n\r\n private ballAddSpeedX = -40;\r\n private ballAddSpeedY = -80;\r\n private gravity = -5;\r\n private stepSpeed = [0.5, 3.5]; //3.5正常速度,2慢速播放\r\n private detaTimeEf = this.stepSpeed[1];\r\n private ballSpeedLimitX = 3;\r\n private planeHeight = 1100;\r\n\r\n private brokeMark = false;\r\n private doubleHit = 0;\r\n private timeLimit = window[\"timeLimit\"] ? window[\"timeLimit\"] : 5;\r\n private timeMark = false;\r\n private timeCount = this.timeLimit;\r\n private timeSpeed = 1 / 60;\r\n\r\n private clickMark = false;\r\n\r\n constructor() {\r\n super();\r\n this.once(engine.Event.ADDED_TO_STAGE, this.start, this);\r\n\r\n var p2 = window[\"p2\"];\r\n\r\n this.world = new p2.World();\r\n this.world.sleepMode = p2.World.BODY_SLEEPING;\r\n\r\n this.world.gravity = [0, 10];\r\n // this.world.gravity = [0,-5];\r\n //创建box\r\n var box: p2.Box = new p2.Box({\r\n width: 20,\r\n height: 200,\r\n material: materialBoard,\r\n });\r\n // var box:p2.Box = new p2.Box({width:this.config.boardBody.width, height:this.config.boardBody.height,material:materialBoard});\r\n // this.boxBody = new p2.Body({mass:10, angularVelocity:1, position:[200,200]});\r\n\r\n this.boxBody = new p2.Body({\r\n mass: 0,\r\n type: p2.Body.STATIC,\r\n position: [20, 400],\r\n });\r\n this.boxBody.addShape(box);\r\n // 添加图片\r\n this.box = this.createBox(0, -100, 20, 200);\r\n this.boxBody.displays = [this.box];\r\n\r\n // let display = new engine.Texture(getTextureByName('篮板'));\r\n // let displays = new engine.Sprite(display)\r\n // this.addChild(displays)\r\n // this.boxBody.displays = [displays];\r\n\r\n this.world.addBody(this.boxBody);\r\n // 设置摩擦和回弹系数\r\n this.world.defaultContactMaterial.friction = 0.1;\r\n this.world.defaultContactMaterial.restitution = 1;\r\n this.world.setGlobalStiffness(1e5);\r\n\r\n // material\r\n var materialBall = new p2.Material(2); //参数id:number\r\n var materialPoint = new p2.Material(2);\r\n var materialBoard = new p2.Material(2);\r\n var materialPlane = new p2.Material(2);\r\n\r\n // 不同material碰撞系数\r\n var contactMaterialBallPoint = new p2.ContactMaterial(\r\n materialBall,\r\n materialPoint,\r\n {\r\n friction: 0.3,\r\n restitution: 0.5,\r\n }\r\n );\r\n var contactMaterialBallBoard = new p2.ContactMaterial(\r\n materialBall,\r\n materialBoard,\r\n {\r\n friction: 0.1,\r\n restitution: 1,\r\n }\r\n );\r\n var contactMaterialBallPlane = new p2.ContactMaterial(\r\n materialBall,\r\n materialPlane,\r\n {\r\n friction: 0.1,\r\n restitution: 1,\r\n }\r\n );\r\n this.world.addContactMaterial(contactMaterialBallPoint);\r\n this.world.addContactMaterial(contactMaterialBallBoard);\r\n this.world.addContactMaterial(contactMaterialBallPlane);\r\n\r\n // 框点\r\n var circleShape = new p2.Circle({\r\n // radius: this.config.outsidePointBody.radius,\r\n radius: 1,\r\n material: materialPoint,\r\n });\r\n var circleBody = this.circleBody = new p2.Body({\r\n mass: 0,\r\n // position: [5.65, -5.5],\r\n position: [60, 500],\r\n type: p2.Body.STATIC,\r\n });\r\n circleBody.addShape(circleShape);\r\n this.world.addBody(circleBody);\r\n var ellipse = this.createBox(0, 0, 20, 20);\r\n circleBody.displays = [ellipse];\r\n\r\n var circleShape1 = new p2.Circle({\r\n // radius: this.config.insidePointBody.radius,\r\n radius: 1,\r\n material: materialPoint,\r\n });\r\n var circleBody1 = this.circleBody1 = new p2.Body({\r\n mass: 0,\r\n // position: [5.65, -5.5],\r\n position: [200, 500],\r\n type: p2.Body.STATIC,\r\n });\r\n circleBody1.addShape(circleShape1);\r\n this.world.addBody(circleBody1);\r\n var ellipse2 = this.createBox(0, 0, 20, 20);\r\n circleBody1.displays = [ellipse2];\r\n\r\n // 球体\r\n var ball = new p2.Circle({ radius: 60 });\r\n var basketball = this.basketball = new p2.Body({\r\n mass: 1,\r\n position: [300, 250],\r\n velocity: [0, 40],\r\n // type:p2.Body.DYNAMIC,\r\n material: materialBall,\r\n });\r\n this.basketball.addShape(ball);\r\n this.world.addBody(this.basketball);\r\n\r\n this.ball = this.createCircle();\r\n this.basketball.displays = [this.ball];\r\n\r\n // let balldisplay = new engine.Texture(getTextureByName('篮球'));\r\n // let balldisplays = new engine.Sprite(balldisplay);\r\n // balldisplays.width = 120;\r\n // balldisplays.height = 120\r\n // this.addChild(balldisplays)\r\n // this.basketball.displays = [balldisplays];\r\n\r\n //进球感应区域\r\n // var sensorShape = new p2.Circle({\r\n // radius: this.config.upSensorBody.radius\r\n // });\r\n // sensorShape.sensor = true;\r\n // var sensorBody = new p2.Body({\r\n // position: [this.config.upSensorBody.x, this.config.upSensorBody.y]\r\n // });\r\n // sensorBody.damping = 0;\r\n // sensorBody.addShape(sensorShape);\r\n // this.world.addBody(sensorBody);\r\n\r\n // var sensorShape1 = new p2.Circle({\r\n // radius: this.config.downSensorBody.radius\r\n // });\r\n // sensorShape1.sensor = true;\r\n // var sensorBody1 = new p2.Body({\r\n // position: [this.config.downSensorBody.x, this.config.downSensorBody.y]\r\n // });\r\n // sensorBody1.damping = 0;\r\n // sensorBody1.addShape(sensorShape1);\r\n // this.world.addBody(sensorBody1);\r\n\r\n //contactPointA 相对于bodyA的碰撞点位置,\r\n //contactPointB 相对于bodyB的碰撞点位置,\r\n\r\n let stringMark = this.stringMark;\r\n let self = this;\r\n let boardMarkSetTime;\r\n let pointMarkSetTime;\r\n\r\n //创建plane Plane shape class. The plane is facing in the Y direction.\r\n var plane: p2.Plane = new p2.Plane();\r\n this.planeBody = new p2.Body({\r\n position: [engine.gameStage.width, engine.gameStage.height - 200],\r\n material: materialPlane,\r\n }); //GameConst.stage保存全局静态变量stage\r\n this.planeBody.angle = Math.PI;\r\n\r\n this.planeBody.addShape(plane);\r\n\r\n this.world.addBody(this.planeBody);\r\n this.plane = this.createPlane();\r\n this.planeBody.displays = [this.plane];\r\n\r\n // 碰撞\r\n this.world.on('beginContact',function(e){\r\n // let direction = self.isRight ? 1 : -1;\r\n \r\n if(e.bodyA == circleBody || e.bodyA == circleBody1){\r\n if (\r\n basketball.position[0] > circleBody.position[0] &&\r\n basketball.position[0] < circleBody1.position[0]\r\n ) {\r\n if (basketball.position[1] > circleBody.position[1] || basketball.position[1] > circleBody1.position[1]) {\r\n console.log(\"上往下\");\r\n self.isRight = !self.isRight;\r\n // 移动刚体\r\n self.changePosition()\r\n }\r\n }\r\n }\r\n \r\n\r\n })\r\n\r\n //每帧更新\r\n this.addEventListener(\r\n engine.Event.ENTER_FRAME,\r\n this.onEnterFrame,\r\n this\r\n );\r\n }\r\n\r\n private onEnterFrame() {\r\n // this.basketball.position[0] = this.basketball.interpolatedPosition[0] * 100;\r\n // this.basketball.position[1] = -this.basketball.interpolatedPosition[1] * 100;\r\n // this.basketball.rotation = -this.basketball.interpolatedAngle * this.toRo;\r\n\r\n //更新物理世界\r\n this.world.step(60 / 1000);\r\n var len: number = this.world.bodies.length;\r\n for (var i: number = 0; i < len; i++) {\r\n var body: p2.Body = this.world.bodies[i];\r\n var display: engine.DisplayObject = body.displays[0];\r\n display.x = body.position[0]; //同步刚体和egret显示对象的位置和旋转角度\r\n display.y = body.position[1];\r\n display.rotation = (body.angle * 180) / Math.PI;\r\n }\r\n\r\n if (this.basketball.position[0] < -120) {\r\n this.basketball.position[0] = 750;\r\n }\r\n if (this.basketball.position[0] > 750 + 120) {\r\n this.basketball.position[0] = - 120;\r\n }\r\n\r\n }\r\n private createBox(x, y, w, h) {\r\n // var sp:engine.Sprite = new engine.Sprite();\r\n var sp = new engine.Shape();\r\n sp.beginFill(0x0000ff);\r\n sp.drawRect(x, y, w, h);\r\n sp.endFill();\r\n sp.anchorX = sp.width / 2;\r\n sp.anchorY = sp.height / 2;\r\n this.addChild(sp);\r\n return sp;\r\n }\r\n private createPlane() {\r\n // var sp:engine.Sprite = new engine.Sprite();\r\n var sp = new engine.Shape();\r\n // sp.lineStyle(10, 0x00ff00);\r\n sp.beginFill(0x0000ff, 1);\r\n // sp.moveTo(0, 0);\r\n // sp.lineTo(engine.gameStage.width,0);\r\n sp.drawRect(0, -10, engine.gameStage.width, 10);\r\n sp.endFill();\r\n sp.anchorX = sp.width / 2;\r\n sp.anchorY = sp.height / 2;\r\n this.addChild(sp);\r\n return sp;\r\n }\r\n\r\n private createCircle() {\r\n var sp = new engine.Shape();\r\n sp.beginFill(0xff0000, 0.7);\r\n sp.drawCircle(0, 0, 60);\r\n sp.endFill();\r\n sp.anchorX = sp.width / 2;\r\n sp.anchorY = sp.height / 2;\r\n this.addChild(sp);\r\n return sp;\r\n }\r\n\r\n private createEclipse() {\r\n var sp = new engine.Shape();\r\n sp.beginFill(0x00ff00, 0.4);\r\n sp.drawEllipse(0, 0, 200, 80);\r\n sp.endFill();\r\n this.addChild(sp);\r\n return sp;\r\n }\r\n\r\n changePosition(){\r\n this.boxBody.position[0] = 740;\r\n this.boxBody.position[1] = 400;\r\n\r\n this.circleBody.position[0] = 540;\r\n this.circleBody.position[1] = 400;\r\n this.circleBody1.position[0] = 700;\r\n this.circleBody1.position[1] = 400;\r\n\r\n }\r\n\r\n onMouseDown(e: engine.MouseEvent) {\r\n var direction = this.isRight ? -1 : 1;\r\n this.basketball.velocity[0] = this.ballAddSpeedX * direction;\r\n this.basketball.velocity[1] = this.ballAddSpeedY;\r\n this.basketball.angularVelocity = -2 * direction;\r\n }\r\n\r\n addEvent() {\r\n this.addEventListener(\r\n engine.Event.ENTER_FRAME,\r\n (this.onEnterFrameBind = this.onEnterFrame.bind(this))\r\n );\r\n }\r\n removeEvent() {\r\n this.removeEventListener(\r\n engine.Event.ENTER_FRAME,\r\n this.onEnterFrameBind\r\n );\r\n }\r\n\r\n start() {\r\n // let gameBg = new engine.Sprite(\r\n // getTexture(\"a880ee6b-c6d1-4d8f-8734-367f368a1803\")\r\n // );\r\n // this.addChild(gameBg);\r\n\r\n this.stage.addEventListener(\r\n engine.MouseEvent.CLICK,\r\n this.onMouseDown,\r\n this\r\n );\r\n\r\n console.log(this.world);\r\n\r\n // this.basketBoard.setPosition(0,100);\r\n // this.addChild(this.basketBoard)\r\n // console.log('1')\r\n\r\n // this.basketball.initPos(400,200);\r\n // this.addChild(this.basketball);\r\n }\r\n\r\n stop() {}\r\n}\r\n","\r\n\r\nexport let props: any = {};\r\n\r\nexport function prepareProps() {\r\n\tlet metaProps = getProps();\r\n\r\n\tengine.injectProp(props, metaProps);\r\n}\r\n\r\nexport function injectProps(p) {\r\n\tengine.injectProp(props, p);\r\n}\r\n","\r\nimport GameView from \"./GameView\";\r\n\r\nimport { injectProps } from \"../props\";\r\n\r\n\r\nexport class GameWrapper extends engine.Container {\r\n\t// private _status;\r\n\tprivate _gameView: GameView;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tengine.globalEvent.addEventListener('game-start', this.start, this);\r\n\t\tengine.globalEvent.addEventListener('game-stop', this.stop, this);\r\n\r\n\t\t//创建实例\r\n\t\tlet gameView = this._gameView = new GameView();\r\n\t\tthis.addChild(gameView);\r\n\r\n\t}\r\n\r\n\tstart(event: engine.Event) {\r\n\t\tinjectProps(event.data);\r\n\r\n\t\t// this._status = 1;\r\n\r\n\t\tthis._gameView.start();\r\n\t}\r\n\tstop(event: engine.Event) {\r\n\t\t\r\n\t\tthis._gameView.stop();\r\n\t}\r\n\r\n\t// reset(event:engine.Event){\r\n\t// \tthis._gameView.reset();\r\n\t// }\r\n}\r\n","\r\n\r\nimport {GameWrapper} from \"./game/GameWrapper\";\r\nimport {injectProps, prepareProps} from \"./props\";\r\n\r\nexport default function (props) {\r\n\tprepareProps();\r\n\tinjectProps(props);\r\n\r\n\tlet instance = new GameWrapper();\r\n\t\r\n\treturn instance;\r\n}\r\n"],"names":["__extends"],"mappings":"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"}
\ No newline at end of file
src/custom/basket/src/game/GameView.ts
View file @
7da17f99
...
...
@@ -2,17 +2,19 @@ import { getTextureByName, getTexture } from "./utils";
import
BasketBoard
from
"./basketBoard"
;
import
Basketball
from
"./Basketball"
;
export
default
class
GameView
extends
engine
.
Container
{
private
world
:
p2
.
World
;
private
boxBody
:
p2
.
Body
;
private
planeBody
:
p2
.
Body
;
private
basketball
:
p2
.
Body
;
private
ball
:
engine
.
Sprite
;
private
plane
:
engine
.
Sprite
;
private
box
:
engine
.
Sprite
;
private
world
:
p2
.
World
;
private
boxBody
:
p2
.
Body
;
private
planeBody
:
p2
.
Body
;
private
basketball
:
p2
.
Body
;
private
ball
:
engine
.
Sprite
;
private
plane
:
engine
.
Sprite
;
private
circleBody
:
p2
.
Body
;
private
circleBody1
:
p2
.
Body
;
basketBoard
:
BasketBoard
=
new
BasketBoard
();
private
pool
=
{};
private
horizontal
=
[
74
,
676
];
//二值
private
verticalArea
=
[
200
,
600
];
//范围
...
...
@@ -60,6 +62,8 @@ export default class GameView extends engine.Container {
radius
:
0.05
,
},
};
private
onEnterFrameBind
:
Function
;
private
view
;
// private basketball;
private
direction
;
...
...
@@ -67,8 +71,16 @@ export default class GameView extends engine.Container {
private
loopMark
=
false
;
private
guideMark
=
false
;
private
ballAddSpeedX
=
1.2
;
private
ballAddSpeedY
=
5.3
;
//碰撞标志位
private
inPointMark
=
false
;
private
outPointMark
=
false
;
private
boardMark
=
false
;
private
pointMark
=
false
;
private
planeMark
=
false
;
private
stringMark
=
""
;
private
ballAddSpeedX
=
-
40
;
private
ballAddSpeedY
=
-
80
;
private
gravity
=
-
5
;
private
stepSpeed
=
[
0.5
,
3.5
];
//3.5正常速度,2慢速播放
private
detaTimeEf
=
this
.
stepSpeed
[
1
];
...
...
@@ -90,10 +102,43 @@ export default class GameView extends engine.Container {
var
p2
=
window
[
"p2"
];
this
.
world
=
new
p2
.
World
();
this
.
world
.
sleepMode
=
p2
.
World
.
BODY_SLEEPING
;
this
.
world
.
gravity
=
[
0
,
10
];
// this.world.gravity = [0,-5];
//创建box
var
box
:
p2
.
Box
=
new
p2
.
Box
({
width
:
20
,
height
:
200
,
material
:
materialBoard
,
});
// var box:p2.Box = new p2.Box({width:this.config.boardBody.width, height:this.config.boardBody.height,material:materialBoard});
// this.boxBody = new p2.Body({mass:10, angularVelocity:1, position:[200,200]});
this
.
boxBody
=
new
p2
.
Body
({
mass
:
0
,
type
:
p2
.
Body
.
STATIC
,
position
:
[
20
,
400
],
});
this
.
boxBody
.
addShape
(
box
);
// 添加图片
this
.
box
=
this
.
createBox
(
0
,
-
100
,
20
,
200
);
this
.
boxBody
.
displays
=
[
this
.
box
];
// let display = new engine.Texture(getTextureByName('篮板'));
// let displays = new engine.Sprite(display)
// this.addChild(displays)
// this.boxBody.displays = [displays];
this
.
world
.
addBody
(
this
.
boxBody
);
// 设置摩擦和回弹系数
this
.
world
.
defaultContactMaterial
.
friction
=
0.1
;
this
.
world
.
defaultContactMaterial
.
restitution
=
1
;
this
.
world
.
setGlobalStiffness
(
1
e5
);
// material
var
materialBall
=
new
p2
.
Material
(
1
);
//参数id:number
var
materialBall
=
new
p2
.
Material
(
2
);
//参数id:number
var
materialPoint
=
new
p2
.
Material
(
2
);
var
materialBoard
=
new
p2
.
Material
(
2
);
var
materialPlane
=
new
p2
.
Material
(
2
);
...
...
@@ -111,166 +156,265 @@ export default class GameView extends engine.Container {
materialBall
,
materialBoard
,
{
friction
:
0.
3
,
restitution
:
0.5
,
friction
:
0.
1
,
restitution
:
1
,
}
);
var
contactMaterialBallPlane
=
new
p2
.
ContactMaterial
(
materialBall
,
materialPlane
,
{
friction
:
0.
3
,
restitution
:
0.7
,
friction
:
0.
1
,
restitution
:
1
,
}
);
this
.
world
=
new
p2
.
World
();
this
.
world
.
sleepMode
=
p2
.
World
.
BODY_SLEEPING
;
this
.
world
.
gravity
=
[
0
,
10
];
// this.world.gravity = [0,-5];
//创建box
// var box:p2.Box = new p2.Box({width:100, height:100});
var
box
:
p2
.
Box
=
new
p2
.
Box
({
width
:
this
.
config
.
boardBody
.
width
,
height
:
this
.
config
.
boardBody
.
height
,
material
:
materialBoard
});
// this.boxBody = new p2.Body({mass:10, angularVelocity:1, position:[200,200]});
this
.
boxBody
=
new
p2
.
Body
({
mass
:
0
,
type
:
p2
.
Body
.
STATIC
,
position
:[
20
,
200
]});
this
.
boxBody
.
addShape
(
box
);
// 添加图片
let
display
=
new
engine
.
Texture
(
getTextureByName
(
'篮板'
));
let
displays
=
new
engine
.
Sprite
(
display
)
this
.
addChild
(
displays
)
this
.
boxBody
.
displays
=
[
displays
];
this
.
world
.
addBody
(
this
.
boxBody
);
// 设置摩擦和回弹系数
this
.
world
.
defaultContactMaterial
.
friction
=
0.3
;
this
.
world
.
defaultContactMaterial
.
restitution
=
0.6
;
this
.
world
.
setGlobalStiffness
(
1
e5
);
this
.
world
.
addContactMaterial
(
contactMaterialBallPoint
);
this
.
world
.
addContactMaterial
(
contactMaterialBallBoard
);
this
.
world
.
addContactMaterial
(
contactMaterialBallPlane
);
// 框点
var
circleShape
=
new
p2
.
Circle
({
// radius: this.config.outsidePointBody.radius,
radius
:
1
,
material
:
materialPoint
,
});
var
circleBody
=
this
.
circleBody
=
new
p2
.
Body
({
mass
:
0
,
// position: [5.65, -5.5],
position
:
[
60
,
500
],
type
:
p2
.
Body
.
STATIC
,
});
circleBody
.
addShape
(
circleShape
);
this
.
world
.
addBody
(
circleBody
);
var
ellipse
=
this
.
createBox
(
0
,
0
,
20
,
20
);
circleBody
.
displays
=
[
ellipse
];
var
circleShape1
=
new
p2
.
Circle
({
// radius: this.config.insidePointBody.radius,
radius
:
1
,
material
:
materialPoint
,
});
var
circleBody1
=
this
.
circleBody1
=
new
p2
.
Body
({
mass
:
0
,
// position: [5.65, -5.5],
position
:
[
200
,
500
],
type
:
p2
.
Body
.
STATIC
,
});
circleBody1
.
addShape
(
circleShape1
);
this
.
world
.
addBody
(
circleBody1
);
var
ellipse2
=
this
.
createBox
(
0
,
0
,
20
,
20
);
circleBody1
.
displays
=
[
ellipse2
];
// 球体
var
ball
=
new
p2
.
Circle
({
radius
:
60
});
this
.
basketball
=
new
p2
.
Body
({
mass
:
0
,
position
:
[
300
,
250
],
velocity
:
[
-
40
,
0
],
var
ball
=
new
p2
.
Circle
({
radius
:
60
});
var
basketball
=
this
.
basketball
=
new
p2
.
Body
({
mass
:
1
,
position
:
[
300
,
250
],
velocity
:
[
0
,
4
0
],
// type:p2.Body.DYNAMIC,
material
:
materialBall
})
material
:
materialBall
,
})
;
this
.
basketball
.
addShape
(
ball
);
this
.
world
.
addBody
(
this
.
basketball
);
// this.ball = this.createCircle();
let
balldisplay
=
new
engine
.
Texture
(
getTextureByName
(
'篮球'
));
let
balldisplays
=
new
engine
.
Sprite
(
balldisplay
);
this
.
addChild
(
balldisplays
)
this
.
basketball
.
displays
=
[
balldisplays
];
this
.
ball
=
this
.
createCircle
();
this
.
basketball
.
displays
=
[
this
.
ball
];
// let balldisplay = new engine.Texture(getTextureByName('篮球'));
// let balldisplays = new engine.Sprite(balldisplay);
// balldisplays.width = 120;
// balldisplays.height = 120
// this.addChild(balldisplays)
// this.basketball.displays = [balldisplays];
//进球感应区域
// var sensorShape = new p2.Circle({
// radius: this.config.upSensorBody.radius
// });
// sensorShape.sensor = true;
// var sensorBody = new p2.Body({
// position: [this.config.upSensorBody.x, this.config.upSensorBody.y]
// });
// sensorBody.damping = 0;
// sensorBody.addShape(sensorShape);
// this.world.addBody(sensorBody);
// var sensorShape1 = new p2.Circle({
// radius: this.config.downSensorBody.radius
// });
// sensorShape1.sensor = true;
// var sensorBody1 = new p2.Body({
// position: [this.config.downSensorBody.x, this.config.downSensorBody.y]
// });
// sensorBody1.damping = 0;
// sensorBody1.addShape(sensorShape1);
// this.world.addBody(sensorBody1);
//contactPointA 相对于bodyA的碰撞点位置,
//contactPointB 相对于bodyB的碰撞点位置,
let
stringMark
=
this
.
stringMark
;
let
self
=
this
;
let
boardMarkSetTime
;
let
pointMarkSetTime
;
//创建plane Plane shape class. The plane is facing in the Y direction.
var
plane
:
p2
.
Plane
=
new
p2
.
Plane
();
this
.
planeBody
=
new
p2
.
Body
({
position
:[
engine
.
gameStage
.
width
/
2
,
engine
.
gameStage
.
height
-
100
]});
//GameConst.stage保存全局静态变量stage
this
.
planeBody
.
angle
=
Math
.
PI
;
var
plane
:
p2
.
Plane
=
new
p2
.
Plane
();
this
.
planeBody
=
new
p2
.
Body
({
position
:
[
engine
.
gameStage
.
width
,
engine
.
gameStage
.
height
-
200
],
material
:
materialPlane
,
});
//GameConst.stage保存全局静态变量stage
this
.
planeBody
.
angle
=
Math
.
PI
;
this
.
planeBody
.
addShape
(
plane
);
this
.
world
.
addBody
(
this
.
planeBody
);
this
.
plane
=
this
.
createPlane
();
this
.
planeBody
.
displays
=
[
this
.
plane
];
//每帧更新
this
.
addEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
onEnterFrame
,
this
);
// 碰撞
this
.
world
.
on
(
'beginContact'
,
function
(
e
){
// let direction = self.isRight ? 1 : -1;
if
(
e
.
bodyA
==
circleBody
||
e
.
bodyA
==
circleBody1
){
if
(
basketball
.
position
[
0
]
>
circleBody
.
position
[
0
]
&&
basketball
.
position
[
0
]
<
circleBody1
.
position
[
0
]
)
{
if
(
basketball
.
position
[
1
]
>
circleBody
.
position
[
1
]
||
basketball
.
position
[
1
]
>
circleBody1
.
position
[
1
])
{
console
.
log
(
"上往下"
);
self
.
isRight
=
!
self
.
isRight
;
// 移动刚体
self
.
changePosition
()
}
}
}
})
//每帧更新
this
.
addEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
onEnterFrame
,
this
);
}
private
onEnterFrame
(){
private
onEnterFrame
()
{
// this.basketball.position[0] = this.basketball.interpolatedPosition[0] * 100;
// this.basketball.position[1] = -this.basketball.interpolatedPosition[1] * 100;
// this.basketball.rotation = -this.basketball.interpolatedAngle * this.toRo;
//更新物理世界
this
.
world
.
step
(
60
/
1000
);
var
len
:
number
=
this
.
world
.
bodies
.
length
;
for
(
var
i
:
number
=
0
;
i
<
len
;
i
++
)
{
this
.
world
.
step
(
60
/
1000
);
var
len
:
number
=
this
.
world
.
bodies
.
length
;
for
(
var
i
:
number
=
0
;
i
<
len
;
i
++
)
{
var
body
:
p2
.
Body
=
this
.
world
.
bodies
[
i
];
var
display
:
engine
.
DisplayObject
=
body
.
displays
[
0
];
display
.
x
=
body
.
position
[
0
];
//同步刚体和egret显示对象的位置和旋转角度
display
.
x
=
body
.
position
[
0
];
//同步刚体和egret显示对象的位置和旋转角度
display
.
y
=
body
.
position
[
1
];
display
.
rotation
=
body
.
angle
*
180
/
Math
.
PI
;
display
.
rotation
=
(
body
.
angle
*
180
)
/
Math
.
PI
;
}
if
(
this
.
basketball
.
position
[
0
]
<
-
120
)
{
this
.
basketball
.
position
[
0
]
=
750
;
}
if
(
this
.
basketball
.
position
[
0
]
>
750
+
120
)
{
this
.
basketball
.
position
[
0
]
=
-
120
;
}
}
private
createBox
(
)
{
private
createBox
(
x
,
y
,
w
,
h
)
{
// var sp:engine.Sprite = new engine.Sprite();
var
sp
=
new
engine
.
Shape
();
sp
.
beginFill
(
0x0000ff
);
sp
.
drawRect
(
0
,
0
,
50
,
50
);
sp
.
drawRect
(
x
,
y
,
w
,
h
);
sp
.
endFill
();
// sp.anchorX = sp.width/2;
// sp.anchorY = sp.height/2;
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
this
.
addChild
(
sp
);
return
sp
;
}
private
createPlane
(){
private
createPlane
()
{
// var sp:engine.Sprite = new engine.Sprite();
var
sp
=
new
engine
.
Shape
();
// sp.lineStyle(10, 0x00ff00);
sp
.
beginFill
(
0x0000ff
,
1
)
sp
.
moveTo
(
0
,
0
);
sp
.
lineTo
(
engine
.
gameStage
.
width
,
0
);
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
sp
.
beginFill
(
0x0000ff
,
1
);
// sp.moveTo(0, 0);
// sp.lineTo(engine.gameStage.width,0);
sp
.
drawRect
(
0
,
-
10
,
engine
.
gameStage
.
width
,
10
);
sp
.
endFill
();
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
this
.
addChild
(
sp
);
return
sp
;
}
private
createCircle
(){
private
createCircle
()
{
var
sp
=
new
engine
.
Shape
();
sp
.
beginFill
(
0xff0000
,
0.7
);
sp
.
drawCircle
(
200
,
150
,
60
);
sp
.
beginFill
(
0xff0000
,
0.7
);
sp
.
drawCircle
(
0
,
0
,
60
);
sp
.
endFill
();
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
sp
.
anchorX
=
sp
.
width
/
2
;
sp
.
anchorY
=
sp
.
height
/
2
;
this
.
addChild
(
sp
);
return
sp
;
}
start
()
{
// let gameBg = new engine.Sprite(
// getTexture("a880ee6b-c6d1-4d8f-8734-367f368a1803")
// );
// this.addChild(gameBg);
// this.createWorld()
// this.createPlane();
console
.
log
(
this
.
world
)
private
createEclipse
()
{
var
sp
=
new
engine
.
Shape
();
sp
.
beginFill
(
0x00ff00
,
0.4
);
sp
.
drawEllipse
(
0
,
0
,
200
,
80
);
sp
.
endFill
();
this
.
addChild
(
sp
);
return
sp
;
}
// this.addChild(this.world)
/* var fixedTimeStep = 1 / 60; // seconds
var maxSubSteps = 10; // Max sub steps to catch up with the wall clock
var lastTime;
changePosition
(){
this
.
boxBody
.
position
[
0
]
=
740
;
this
.
boxBody
.
position
[
1
]
=
400
;
// Animation loop
function animate(time) {
requestAnimationFrame(animate);
this
.
circleBody
.
position
[
0
]
=
540
;
this
.
circleBody
.
position
[
1
]
=
400
;
this
.
circleBody1
.
position
[
0
]
=
700
;
this
.
circleBody1
.
position
[
1
]
=
400
;
var deltaTime = lastTime ? (time - lastTime) / 1000 : 0;
}
this.world.step(fixedTimeStep, deltaTime, maxSubSteps);
onMouseDown
(
e
:
engine
.
MouseEvent
)
{
var
direction
=
this
.
isRight
?
-
1
:
1
;
this
.
basketball
.
velocity
[
0
]
=
this
.
ballAddSpeedX
*
direction
;
this
.
basketball
.
velocity
[
1
]
=
this
.
ballAddSpeedY
;
this
.
basketball
.
angularVelocity
=
-
2
*
direction
;
}
// Render the circle at the current interpolated position
// renderCircleAtPosition(circleBody.interpolatedPosition);
addEvent
()
{
this
.
addEventListener
(
engine
.
Event
.
ENTER_FRAME
,
(
this
.
onEnterFrameBind
=
this
.
onEnterFrame
.
bind
(
this
))
);
}
removeEvent
()
{
this
.
removeEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
onEnterFrameBind
);
}
lastTime = time;
}
start
()
{
// let gameBg = new engine.Sprite(
// getTexture("a880ee6b-c6d1-4d8f-8734-367f368a1803")
// );
// this.addChild(gameBg);
// Start the animation loop
requestAnimationFrame(animate); */
this
.
stage
.
addEventListener
(
engine
.
MouseEvent
.
CLICK
,
this
.
onMouseDown
,
this
);
console
.
log
(
this
.
world
);
// this.basketBoard.setPosition(0,100);
// this.addChild(this.basketBoard)
...
...
@@ -278,11 +422,7 @@ export default class GameView extends engine.Container {
// this.basketball.initPos(400,200);
// this.addChild(this.basketball);
}
stop
()
{}
addEvent
()
{}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment