• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-01-2010, 00:02   #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;
};
-der Movieclip ball_mc ist ein Kreis, der der Maus folgt
-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
mxmxmx ist offline   Mit Zitat antworten
Alt 04-01-2010, 13:26   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
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
hgseib ist offline   Mit Zitat antworten
Alt 06-01-2010, 20:31   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
ja danke genau danach hab ich gesucht! Das einzige Problemn ist, dass ich die .fla dateien nicht öffnen kann: "Unerwartetes Dateiformat"
Nur die swf-Dateien gehen
mxmxmx ist offline   Mit Zitat antworten
Alt 06-01-2010, 20:36   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
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)
hgseib ist offline   Mit Zitat antworten
Alt 12-01-2010, 15:19   #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");
			}
}
Das ist jetzt ein kleiner Ausschnitt des Codes und das Problem bei if(enemy._x+11.5..
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..
mxmxmx ist offline   Mit Zitat antworten
Alt 12-01-2010, 16:58   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
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)
hgseib ist offline   Mit Zitat antworten
Alt 12-01-2010, 17:28   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
hmm..eig müsste es ja gehen also: if (1<2<3){.. aber vllt liegts wirklich an den variablen
ich werds mal testen.. danke
mxmxmx ist offline   Mit Zitat antworten
Alt 12-01-2010, 17:41   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2010
Beiträge: 11
Oh man danke du hattest recht!!
Man kann wirklich nur immer 2 Variablen mit einander vergleichen
danke
mxmxmx ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
anfänger, bullet, game, shooter, spiel programmieren

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele