Hallo auch,
(wie ihr seht ist das hier mein 1. Beitrag, also nicht gleich schlagen :-( )
habe hier ein mathematisches Problem, hat nicht wirklich etwas mit actionscript im allgemeinen zu tun.
Ich bastele gerade an einem kleineren "Carambolage"-Spiel weil ich einfach zu viel zeit habe und so meine Flash-Kenntnisse erweitern möchte. Bis jetzt hat auch alles wunderbar geklappt, aber jetzt habe ich das Problem dass ich die Kollision zwischen 2 Kugeln nicht berechnen kann, ich komme einfach nicht drauf... vielleicht könnt ihr mir helfen.
also die Berechnung an den Banden ist ja recht einfach. ich habe 3 Variablen je Kugel (3 Kugeln mit Namen "weiß", "rot" und "blau"), eine Geschwindigkeit und 2 Richtungen "xRichtung" und "yRichtung" und an den entsprechenden Banden multipliziere ich mit "-1", soweit dazu. aber bei Kollisionen sollte ich den Winkel zwischen den Kugeln ja auch berücksichtigen - und dazu reichen die Kenntnisse bei mir nicht mehr...
zu Testzwecken lasse ich die Kugeln erstmal mit vorgegebenen Geschwindigkeiten übers Feld laufen, die Werte werden in bild 1 initialisiert, hier das script von bild 2: (mit markierung wo ich nicht weiterkomme....)
(wie ihr seht ist das hier mein 1. Beitrag, also nicht gleich schlagen :-( )
habe hier ein mathematisches Problem, hat nicht wirklich etwas mit actionscript im allgemeinen zu tun.
Ich bastele gerade an einem kleineren "Carambolage"-Spiel weil ich einfach zu viel zeit habe und so meine Flash-Kenntnisse erweitern möchte. Bis jetzt hat auch alles wunderbar geklappt, aber jetzt habe ich das Problem dass ich die Kollision zwischen 2 Kugeln nicht berechnen kann, ich komme einfach nicht drauf... vielleicht könnt ihr mir helfen.
also die Berechnung an den Banden ist ja recht einfach. ich habe 3 Variablen je Kugel (3 Kugeln mit Namen "weiß", "rot" und "blau"), eine Geschwindigkeit und 2 Richtungen "xRichtung" und "yRichtung" und an den entsprechenden Banden multipliziere ich mit "-1", soweit dazu. aber bei Kollisionen sollte ich den Winkel zwischen den Kugeln ja auch berücksichtigen - und dazu reichen die Kenntnisse bei mir nicht mehr...
zu Testzwecken lasse ich die Kugeln erstmal mit vorgegebenen Geschwindigkeiten übers Feld laufen, die Werte werden in bild 1 initialisiert, hier das script von bild 2: (mit markierung wo ich nicht weiterkomme....)
Code:
movieclip.prototype.bewegung = function(pGeschw) {
this.onEnterFrame = function(){
i += 1;
if (this.rolldauer < pGeschw){
this.rolldauer += 0.2;
} else { this.rolldauer = pGeschw
};
//Kollisionsberechnung
this.bande(525,115,110,365);
this.kugel();
//Bewegung
this._x += (pGeschw-this.rolldauer) *this.xRichtung/2;
this._y += (pGeschw-this.rolldauer) *this.yRichtung/2;
}
}
movieclip.prototype.bande = function(pRechts, pLinks, pOben, pUnten) {
if (this._x>pRechts || this._x<pLinks) {
this.xRichtung *= -1; }
if (this._y>pUnten || this._y<pOben) {
this.yRichtung *= -1; }
}
movieclip.prototype.kugel = function() {
//Differenzen
if (this._x != weiß._x) {
this.winkel(weiß._x-this._x,weiß._y-this._y);
}
if (this._x != blau._x) {
this.winkel(blau._x-this._x,blau._y-this._y);
}
if (this._x != rot._x) {
this.winkel(rot._x-this._x,rot._y-this._y);
}
}
movieclip.prototype.winkel = function(pDifferenzX,pDifferenzY) {
//Pythagoras zur Bestimmung der Entfernung
//***es reicht "this.width", weil alle Kugeln die gleiche Größe haben und
//2 Radien addiert werden also einem Durchmesser der Kugel entspricht***
if (pDifferenzX*pDifferenzX + pDifferenzY*pDifferenzY <=
this.width*this.width) {
//Winkelberechnung
**** hier brauch ich jetzt HILFÄÄÄÄÄÄ ****
}
}
weiß.bewegung(30);
rot.bewegung(35);
blau.bewegung(25);
gotoAndStop(2);