vinTagesworld Flash forum
door W0utah op 05-01-07 om 12:11
Ik probeer nu vanuit een kannon een kogel te laten afschieten, de kogel komt wel op de juiste plaats terecht, maar hij maakt geen beweging, hij springt er gewoon naartoe
Verder wou ik ook vragen of mijn code correct was, of die onRelease binnen de onEnterFrame moet?
actionscript codestop();
Mouse.hide();
startDrag(mc_crosshair, true);
this.onEnterFrame = function() {
var yLengte:Number = mc_crosshair._y-mc_kannon.kannon_loop._y;
var xLengte:Number = mc_crosshair._x-mc_kannon.kannon_loop._x;
// de hoek van de muis zoeken
var hoek = Math.atan2(yLengte, xLengte);
var hoek = hoek*(180/Math.PI);
mc_kannon.kannon_loop._rotation = hoek;
function shoot() {
var kogel = attachMovie("mc_bullet", "mc_bullet", this.getNextHighestDepth);
kogel._x = xLengte;
kogel._y = yLengte;
}
mc_crosshair.onRelease = function() {
shoot();
};
};
Je kogel is gelijk op het eindpunt omdat je dat ook aangeeft in je AS
actionscript codekogel._x = xLengte;
kogel._y = yLengte;
Je zal het moeten oplossen door aan de mc_bullet in een onClipEvent(load) de start en eind positie in te geven en in een enterFrame van start naar eind te laten gaan (en de clip daar te removen).
En die onRelease moet gewoon buiten die onEnterFrame.
door W0utah op 05-01-07 om 12:22
bedankt, ik ga het direct proberen, maar als ik die onRelease buiten die onEnterFrame zet, dan werkt het helemaal niet meer
Die function shoot moet ook buiten de onEnterFrame.
die onRelease en die function hoeven toch niet continue aangemaakt te worden

volgens mij moet je code er zo uitzien:
actionscript codestop();
Mouse.hide();
startDrag(mc_crosshair, true);
onEnterFrame = function() {
var yLengte:Number = mc_crosshair._y-mc_kannon.kannon_loop._y;
var xLengte:Number = mc_crosshair._x-mc_kannon.kannon_loop._x;
// de hoek van de muis zoeken
var hoek = Math.atan2(yLengte, xLengte);
var hoek = hoek*(180/Math.PI);
mc_kannon.kannon_loop._rotation = hoek;
};
function shoot() {
var kogel = attachMovie("mc_bullet", "mc_bullet", this.getNextHighestDepth);
kogel._x = xLengte;
kogel._y = yLengte;
}
mc_crosshair.onRelease = function() {
shoot();
};
En als je strict wilt scripten, dan moet je het wel goed doen, en niet hier wel en daar niet.
var yLengte:Number <=daar wel
var hoek <=daar niet
var kogel <=daar ook niet
door W0utah op 05-01-07 om 12:35
zo had ik mijn code eerst ook, maar het probleem is dan dat hij de kogel niet meer op de juiste plaats zet
en wat je wilt zeggen met dat laatste snap ik niet
quote vinTage :
En als je strict wilt scripten, dan moet je het wel goed doen, en niet hier wel en daar niet.
var yLengte:Number <=daar wel
var hoek <=daar niet
var kogel <=daar ook niet
ah, wss moet je gewoon overal die var zooi weghalen.
als je een var aanmaakt is die alleen IN desbetreffende functie.
strict scripten
var getal:Number <=strict
var getal <= niet strict
actionscript codestop();
Mouse.hide();
startDrag(mc_crosshair, true);
onEnterFrame = function () {
yLengte = mc_crosshair._y-mc_kannon.kannon_loop._y;
xLengte = mc_crosshair._x-mc_kannon.kannon_loop._x;
// de hoek van de muis zoeken
hoek = Math.atan2(yLengte, xLengte);
hoek = hoek*(180/Math.PI);
mc_kannon.kannon_loop._rotation = hoek;
};
function shoot() {
kogel = attachMovie("mc_bullet", "mc_bullet", this.getNextHighestDepth);
kogel._x = xLengte;
kogel._y = yLengte;
}
mc_crosshair.onRelease = function() {
shoot();
};
laatst ge-edit op: 05-01-07 om 12:50
door W0utah op 05-01-07 om 13:01
thx, dat werkt al, nu zal ik wel zoeken hoe het moet met de kogel
alvast bedankt
edit:ik zit nu al wat verder, maar zit met een probleem, zodra ik klik en de kogel wegschiet, nog niet in de juiste richting.
Dan kan je de loop van het kannon niet meer draaien, en de fout zie ik niet.
actionscript codeMouse.hide();
startDrag(mc_crosshair, true);
level = 0;
txt_level.text = level;
this.onEnterFrame = function() {
yLengte = mc_crosshair._y-mc_kannon.kannon_loop._y;
xLengte = mc_crosshair._x-mc_kannon.kannon_loop._x;
// de hoek van de muis zoeken
hoek = Math.atan2(yLengte, xLengte);
hoek = hoek*(180/Math.PI);
mc_kannon.kannon_loop._rotation = hoek;
};
function shoot() {
bullet++;
kogel = attachMovie("mc_bullet", "mc_bullet"+bullet, this.getNextHighestDepth);
kogel._x = mc_kannon.kannon_loop._x;
kogel._y = mc_kannon.kannon_loop._y;
shooting = true;
speed = 5;
if (shooting == true) {
this.onEnterFrame = function() {
kogel._x += speed;
kogel._y += speed;
};
}
if (kogel._x>xLengte) {
shooting = false;
}
}
mc_crosshair.onRelease = function() {
shoot();
};
stop();
laatst ge-edit op: 05-01-07 om 15:12
Mjah, wat kan ik zeggen, upload eens een fla :)
door W0utah op 05-01-07 om 15:22
laat maar, heb het al gevonden
het moest dit zijn:
actionscript codekogel.onEnterFrame = function() {
maar toch bedankt voor de snelle reactie
edit:de kogel schiet nu wel weg, maar nooit naar de goede richting, ik zou niet weten hoe dat moet
actionscript codeMouse.hide();
startDrag(mc_crosshair, true);
level = 0;
txt_level.text = level;
this.onEnterFrame = function() {
yLengte = mc_crosshair._y-mc_kannon.kannon_loop._y;
xLengte = mc_crosshair._x-mc_kannon.kannon_loop._x;
// de hoek van de muis zoeken
hoek = Math.atan2(yLengte, xLengte);
hoek = hoek*(180/Math.PI);
mc_kannon.kannon_loop._rotation = hoek;
};
function shoot() {
bullet++;
kogel = attachMovie("mc_bullet", "mc_bullet"+bullet, this.getNextHighestDepth);
kogel._x = mc_kannon.kannon_loop._x;
kogel._y = mc_kannon.kannon_loop._y;
shooting = true;
speed = 10;
if (shooting == true) {
kogel.onEnterFrame = function() {
if (xLengte>mc_kannon._x) {
kogel._x += speed;
} else if (xLengte<mc_kannon._x) {
kogel._x -= speed;
}
if (yLengte>mc_kannon._y) {
kogel._y += speed;
} else if (yLengte<mc_kannon._y) {
kogel._y -= speed;
}
};
}
}
mc_crosshair.onRelease = function() {
shoot();
};
stop();
laatst ge-edit op: 05-01-07 om 16:33
jamaar ik had toch voorgesteld om de richting etc via de bullit zelf te bepalen etc.
Nu overschrijf je bij elke movement de waardes.
(Daarergens zal de fout zitten imo)
door W0utah op 05-01-07 om 17:02
hoe zou ik dan moeten beginnen met de richting van die bullet te bepalen?
want als er geen bullets is kan je ook geen richting bepalen
Dit topic is gesloten.