| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2010
Beiträge: 11
| Problem beim Programmieren eines Shooters
Ich bin neu im forum und hab bisher noch keinen Beitrag zu meinem Porblem gefunden bzw. weiß auch nich wonach ich genau suchen soll. Ich wollte mich eig an einem kleinem Spiel versuchen..ich hab zwar noch nicht so viel Erfahrung mit Flash aber bis jetzt hab ichs geschafft. Das Problem ist nur, dass die bullets auch wenn sie schon "abgeschossen" wurden, immer noch in die Richtung der Maus fliegen. Code: ball_mc.onEnterFrame = function() {
var xMouse = _root._xmouse;
var yMouse = _root._ymouse;
if(Math.abs(xMouse - this._x) < 1) {
this._x = xMouse;
this._y = yMouse;
} else {
this._x -= (this._x-xMouse) / 6;
this._y -= (this._y-yMouse) / 6;
}
}
var bulletSpeed = 12;
var bulletReady = true;
var bulletDelay = 150;
var bulletArray = [];
var bulletCount = 0;
function createBullets(){
var bulletMc = this.attachMovie("bullet","bullet"+bulletCount,1000+bulletCount);
bulletCount++;
bulletMc._x = this.ball_mc._x-(bulletMc._width/2);
bulletMc._y = this.ball_mc._y;
bulletArray.push(bulletMc);
}
function moveBullets(){
if(bulletReady && Key.isDown(Key.CONTROL)){
bulletReady = false;
currentTime = getTimer();
createBullets();
} else{
if(currentTime+bulletDelay<=getTimer()){
bulletReady = true;
}
}
for(var i = 0;i<bulletArray.length;i++){
var an = point._x-ball_mc._x;
var geg = point._y-ball_mc._y;
var hyp = Math.sqrt((an*an)+(geg*geg));
if(point._x>=ball_mc._x){
bulletArray[i]._x += bulletSpeed*Math.cos(Math.asin((point._y-ball_mc._y)/hyp));//bulletSpeed-1;//(point._y-ball_mc._y)/(point._x-ball_mc._x)*bulletArray[i]._x;
bulletArray[i]._y += bulletSpeed*Math.sin(Math.asin(geg/hyp));
} else {
bulletArray[i]._x +=
-1*(bulletSpeed*Math.cos(Math.asin((point._y-ball_mc._y)/hyp)));
bulletArray[i]._y += (bulletSpeed*Math.sin(Math.asin(geg/hyp)));
}
}
}
onEnterFrame = function (){
moveBullets();
this.attachMovie("ball_mc","ball_mc",1);
i = this.ball_mc._x;
d = this.ball_mc._y;
this.attachMovie("point","point",1);
this.point._x = 1+(i + _root._xmouse)/2;
this.point._y = 1+(d + _root._ymouse)/2;
}; -point ist ein Punkt, der vor dem Kreis fliegt und sozusagen die Zielrichtung der bullets anzeigt -bullet erklärt sich von selbst Wär nett, wenn mir jemand helfen könnte |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
zieh dir mal von hier das ZIP H.G.Seib -> Spiele z.b. - Schiessen: Der Buttler schiesst in der Wohnung herum das kannst du dir einmal ansehen
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
sorry, das liegt wohl an CS4 ? das ist nicht in der lage ältere flash-files zu öffnen. sowas mistiges gabs noch nie. ich habe erst in einem halben jahr wieder zugriff auf meine dateien. hatte über weihnachten/neujahr auch schon angefangen, bei den beispielen das AS in externe files zu sichern. bis zu den spielen bin ich leider noch nicht gekommen. entweder du holst dir eine ältere flash-version als demo, oder irgend jemand von hier öffnet dir das file?
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (06-01-2010 um 20:37 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2010
Beiträge: 11
|
ich hab das Problem jetzt anders gelöst nur jetzt hab ich iwie ein Problem bei dem ich mein Fehler nicht finde.. Code: for(var i = 0;i<bulletArray.length;i++){
if(bulletWayArrayX.length<bulletArray.length){
bulletWayArrayX.push(xbullet);
bulletWayArrayY.push(ybullet);
}
bulletArray[i]._x += bulletWayArrayX[i];
bulletArray[i]._y += bulletWayArrayY[i];
var bulletPos = bulletArray[i]._x;
if(enemy._x+11.5>=bulletArray[i]._x>=enemy._x-11.5 && enemy._y+11.5>bulletArray[i]._y>=enemy._y-11.5){
bullethit = true;
trace("ja");
}
} der Sinn davon besteht eig darin dass wenn die Kugel auf dem Objekt ist unloadMovie() folgt nur dass mir weder ja ausgegeben wird wenn ich auf das Objekt schieße oder dass die Variable bullethit auf true gesetzt wird.. Ich versteh den Fehler nicht.. |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
sorry, noch nichtmal ein hellseher könnte verstehen, was das da machen soll ;-) baue überall trace-befehle ein und/oder versuch dich mal mit dem debugger! damit kannst du deine programme schrittweisse abarbeiten und dir die variablen zur laufzeit anzeigen lassen. und sowas geht schonmal garnicht. du kannst immer nur 2 variablen miteinander vergleichen: enemy._x+11.5>=bulletArray[i]._x>=enemy._x-11.5 das wäre ja sowas: a>=b>=c
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (12-01-2010 um 17:00 Uhr) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| anfänger, bullet, game, shooter, spiel programmieren |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash MX] Problem beim erstellen eines Spiel's | Batez | Flash Einsteiger | 11 | 22-02-2009 23:50 |
| problem beim programmieren | memory | ActionScript 2 | 3 | 13-08-2008 15:31 |
| Problem beim Entladen eines MC | herrdirektor | Flash Einsteiger | 3 | 26-04-2008 16:16 |
| Problem beim ansprechen eines MCs | Flasher17 | Flash 4 und Flash 5 | 10 | 27-02-2002 14:22 |