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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-05-2010, 21:36   #1 (permalink)
Neuer User
 
Registriert seit: May 2010
Beiträge: 1
kleines racing-game: problem mit kollisionen

Hallo!

Genauso neu wie ich in diesem forum bin, bin ich auch in flash:

Als Einsteiger wollte ich ein kleines racing-game mit actionscript2 programmieren.


an und für sich, läuft alles ganz gut, leider hab ich schwere probleme die fahrbahn bzw. banden abzugrenzen. via kollision habe ich 4 punkte definiert, welche um das auto verteilt sind. diese prüfe ich ab. wenn eine kollision ist, will ich das auto abbremsen und gleichzeitig wieder richtung fahrbahn lenken. bei mir kommt es aber immer wieder vor dass das auto stecken bleibt, sich willkürlich im kreis dreht oder direkt hinter der bande verschwindet.

außerdem ist mir aufgefallen dass das auto im rückwärtsgang "ruckelt"? kann mir jedoch nich erklären warum.

hat jemand vl einen effizienten weg, diese kollisionen besser abzugrenzen bzw. allgemein tipps? bin noch nicht wirklich vertraut mit actionscript.

hier der code:

Code:
var v = 0; // autogeschwindigkeit
var vx = 0; // autogeschwindigkeit x-anteil
var vy = 0; // autogeschwindigkeit y-anteil
var vmax = 20; // maximale geschwindigkeit des autos
var vmin = -2;
var beschleunigung = 0.8;
var vvermindert = 0.9; // geschwindigkeitsabnahme bei loslassen der UP-taste
var vbremse = 3; // geschwingigkeitsabnahme bei bremsung
var lenkung = 10; //gradwert mit diesen sich das auto dreht wenn links oder rechts gesteuert wird

_root.onEnterFrame = function() {
	
	// bschleunigung wenn UP-Taste betätigt wird
	if(Key.isDown(Key.UP) && (v < vmax))  {
		v += beschleunigung;
		//trace(v+" +");
	   }
	
	// bremsung wenn DOWN-Taste betätigt wird
	if (Key.isDown(Key.DOWN) && (v > vmin)) {
		v -= vbremse;
		//trace(v+" -");
		}
	
	if (v > 0.4 || v < 0) v = v*vvermindert; // ausrollen des autos wenn nicht beschleunigt wird
	else v = 0;
	 
	// lenkung links
	if (Key.isDown(Key.LEFT) && (v > 0.4)) {
			car_mc._rotation -= lenkung; // wird wird der winkel gleich dem auto zugewiesen und das auto dementsprechnd gedreht
			//trace(lenkung+" links");
		}
		
	// lenkung rechts
	if (Key.isDown(Key.RIGHT) && (v > 0.4)) {
			car_mc._rotation += lenkung; 
			//trace(lenkung+" rechts");
		}
	
	// zerlegen der geschwindigkeit in komponenten
	vx = Math.sin(car_mc._rotation * (Math.PI / 180)) * v;
	vy = Math.cos(car_mc._rotation * (Math.PI / 180)) * v * -1;
	//trace(vx+" "+vy);
	
	// zuweisen an die x und y werte des autos car_mc
	car_mc._x += vx;
	car_mc._y += vy;
	
	
	// definieren der kollisionspunkte des autos car_mc:
	linksx = car_mc._x - 20;
	rechtsx = car_mc._x + 20;
	rechtsy = linksy = car_mc._y;
	vornex = hintenx = car_mc._x;
	vorney = car_mc._y - 25;
	hinteny = car_mc._y + 25;
	
	
	// aktionen setzen wenn eine kollision zwischen rennstrecke und auto stattfindet
	if (_root.rennstrecke_mc.hitTest(linksx, linksy, true)) {
		car_mc._rotation += 5; // drehung des autos richtung fahrbahn
		v *= 0,85; // verminderung des geschwindkeit
		trace("kollision LINKS "+linksx+" "+linksy);
	}
		
	if (_root.rennstrecke_mc.hitTest(rechtsx, rechtsy, true)) {
		car_mc._rotation -= 5; // drehung des autos richtung fahrbahn
		v *= 0,85; // verminderung des geschwindkeit
		trace("kollision RECHTS "+rechtsx+" "+rechtsy);
	}
	
	if (_root.rennstrecke_mc.hitTest(vornex, vorney, true)) {
		car_mc._rotation -= 2; // drehung des autos richtung fahrbahn
		v = -2; // verminderung des geschwindkeit
		trace("kollision VORNE "+vornex+" "+vorney);
	}
	
	if (_root.rennstrecke_mc.hitTest(hintenx, hinteny, true)) {
		car_mc._rotation += 2; // drehung des autos richtung fahrbahn
		v = 0; // verminderung des geschwindkeit
		trace("kollision HINTEN "+hintenx+" "+hinteny);
	}
	
	
	
	
}




bin für jeden tipp dankbar. wer ganz toll wenn sich jemand kurz zeit nehmen würde und kurz drüberliest.


grüße flo



edit: hab noch die fla hochgeladen.
Angehängte Dateien
Dateityp: fla car_racing.fla (13,8 KB, 6x aufgerufen)

Geändert von flow89 (19-05-2010 um 21:40 Uhr) Grund: anhang hinzugefügt
flow89 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
car, game, kollison, racing

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
racing game - hintergrund bewegen option ActionScript 2 0 11-09-2009 01:53
racing game - stecken kollision webholics.de ActionScript 2 4 27-07-2006 20:23
Nettes Racing Game in Pseudo 3D Optik Flashbob 3D 11 23-06-2006 17:59
racing game engine problem der_oki Flash 4 und Flash 5 4 02-03-2004 09:07
Game „Breakout“ Kollisionen usw....... Scrawer ActionScript 1 12 26-02-2002 09:23


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

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


Copyright ©1999 – 2012 Marc Thiele