S
Saja1010
Guest
Hi Leute,
er zählt leider in der Grafik den Score nicht hoch. Woran kann es liegen?
er zählt leider in der Grafik den Score nicht hoch. Woran kann es liegen?
Code:
package {
import flash.display.MovieClip;
import flash.events.Event;
public class Main extends MovieClip {
public function Main() {
// MY CODE
// BALL
var movBall:Ball = new Ball();
var ballSpeedX:int = -3; // geschwindigkeit des balles links/rechts
var ballSpeedY:int = -2; // geschwindigkeit des balles hoch/runter
addChild(movBall);
movBall.x = 400;
movBall.y = 400;
// PLAYER PADDLE
var pPaddle:PlayerPaddle = new PlayerPaddle();
addChild(pPaddle);
pPaddle.x = 20;
pPaddle.y = 288;
init();
// CPU PADDLE
var ePaddle:CpuPaddle = new CpuPaddle();
var ePaddleSpeed:int = 3;
addChild(ePaddle);
ePaddle.x = 1004;
ePaddle.y = 288;
// SCORE
var pScore:int = 0;
var eScore:int = 0;
//SCORE TEXT
var pScoreText:Playerscore = new Playerscore;
var eScoreText:Cpuscore = new Cpuscore;
addChild(pScoreText);
pScoreText.x = 350;
pScoreText.y = 25;
addChild(eScoreText);
eScoreText.x = 724;
eScoreText.y = 25;
//FUNCTIONS
function init():void
{
stage.addEventListener(Event.ENTER_FRAME, loop); // bei jedem frame wird dieses event ausgelöst und das gelooped
}
function loop(e:Event):void
{
pPaddle.y = mouseY; // sorgt dafür das der pPaddle sich immer zu den y-koordinaten der maus ausrichtet
movBall.x += ballSpeedX; // bei jedem frame wird ballSpeedX zu der position des balles addiert
movBall.y += ballSpeedY; // ballSpeedY
trace(eScore);
trace(pScore);
// BOUNCING BALL
if (movBall.x <= movBall.width/2) { // überprüft ob der ball auf der linken fensterseite auf einer x position ist die gleich oder weniger der hälfte des balles ist
movBall.x = movBall.width/2; // wenn die bedingung erfüllt ist wird der ball auf die x position der hälfte des durchmessers des balles gesetzt (8)
ballSpeedX *= -1; // lässt den ball abprallen
eScore ++;
uTF();
} else if (movBall.x >= stage.stageWidth - movBall.width/2) {
movBall.x = stage.stageWidth - movBall.width/2;
ballSpeedX *= -1;
pScore ++;
uTF();
}
if (movBall.y <= movBall.height/2) {
movBall.y = movBall.height/2;
ballSpeedY *= -1;
} else if (movBall.y >= stage.stageHeight - movBall.height/2) {
movBall.y = stage.stageHeight - movBall.height/2;
ballSpeedY *= -1;
}
// CONTROLLING PADDLE
if (pPaddle.y - pPaddle.height/2 - 5 < 0) { // sorgt dafür das der pPaddle nicht aus dem fenster geführt werden kann
pPaddle.y = pPaddle.height/2 + 5;
}
if (pPaddle.y + pPaddle.height/2 + 5 > stage.stageHeight) {
pPaddle.y = stage.stageHeight - pPaddle.height/2 - 5;
}
if (ePaddle.y - ePaddle.height/2 - 5 < 0) { // sorgt dafür das der pPaddle ni5*cht aus dem fenster geführt werden kann
ePaddle.y = ePaddle.height/2 + 5;
}
if (ePaddle.y + ePaddle.height/2 + 5 > stage.stageHeight) {
ePaddle.y = stage.stageHeight - ePaddle.height/2 - 5;
}
// AI
if (ePaddle.y < movBall.y - 10) {
ePaddle.y += ePaddleSpeed;
} else if (ePaddle.y > movBall.y + 10) {
ePaddle.y -= ePaddleSpeed;
}
// COLLISIONS
if (pPaddle.hitTestObject(movBall) == true) {
if (ballSpeedX < 0) {
ballSpeedX *= -1;
ballSpeedY = calculateBallAngle(pPaddle.y, movBall.y);
}
} else if (ePaddle.hitTestObject(movBall) == true) {
if (ballSpeedX > 0) {
ballSpeedX *= -1;
ballSpeedY = calculateBallAngle(ePaddle.y, movBall.y);
}
if (pScore >= 3) {
pPaddle.height = 70;
}
if (pScore >= 5) {
pPaddle.height = 50;
}
if (pScore >= 8) {
pPaddle.height = 30;
}
}
// CALCULATION OF BALL ANGLE
function calculateBallAngle(paddleY:Number, ballY:Number):Number
{
var ySpeed:Number = 5 * ( (ballY - paddleY) / 25); // ballY - paddleY / 25 ergibt -1 und 1 je nachdem wo der ball aufschlägt
return ySpeed;
}
//SCORE
function uTF():void
{
pScoreText.text = "test" + pScore;
eScoreText.text = "test" + eScore;
}
}
}
}
}