Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-12-2011, 14:20   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Rennspiel - Zeit/Kollision/

Hallo Forum,

ich sitze seit geraumer Zeit an einem Rennspiel. Ich komme allerdings auch nach einiger Recherche nicht weiter.

Des ganze soll in einer Vogelperspektive sein und mit den Pfeiltasten gesteuert werden. Des klappt soweit gut.
Des Auto fährt auf einer Strecke, kommt es von der Strecke ab, kommt eine meldung.
Allerdings will Ich, dass das Auto dadurch abgebremst wird. Das scheint aber nicht zu klappen, hab mehrere sachen ausporbiert.



Dann Zweitens hab ich einige "Reifen" an engen kurven gelegt. Wenn das Auto diese Berührt soll es vollständig abgebremst werden.

Da hab ich folgenden Ansatz.

Code:
if(car.hitTest(reifen)) {
trace("irgentwas");
}
Aber da kommt er nie rein und vorallem was müsste dann tehoretisch passieren? eigentlich ja die Geschwindigkeit auf null aber auch das funktuniert nicht. :/

Zum Dritten will ich das Wenn das Auto seine runden dreht jeweils nach einer Runde die Zeit gestoppt wird. Das klappt allerdings scheint auch da ein denkfehler zu sein weil Flash die Zeit nicht Stopt und von vorne anfängt sondern einfach weiter zählt wo er aufgehört hat.

Mein AS für die Zeit sieht folgendermaßen aus.

Code:
//Zeit Funktion

var sekunden = 0;
var minuten   = 0;
var stunden   = 0;

timer_int = setInterval(timer, 1000);

function timer() {
  sekunden = Number(sekunden);
  minuten  = Number(minuten);
  stunden  = Number(stunden);
  
  sekunden++;

  if(sekunden > 59) {
    sekunden = 0;
    minuten ++;

    if(minuten > 59) {
      minuten = 0;
      stunden++; 
      
      if(stunden > 23) {
        stunden = 0;
      }
    }
  }

  if(sekunden <10) {
    sekunden = "0"+sekunden;
  }
  if(minuten < 10) {
    minuten = "0"+minuten;
  }
  if(stunden < 10) {
    stunden = "0"+stunden;
  } 
  zeit = (stunden+":"+minuten+":"+sekunden);


//------------
//Runde 1


   if(runde == 1) {
	 	 
	  zeit1 = (stunden+":"+minuten+":"+sekunden);
	 }
	 

//------------
//Runde 2



  if(runde == 2) {
	clearInterval(timer_int);
	timer_int = setInterval(timer, 1000);
	
	  zeit2 = (stunden+":"+minuten+":"+sekunden);
	  
  }
  
  
//------------
//Runde 3


  if(runde == 3) {
	  clearInterval(timer_int);
	timer_int = setInterval(timer, 1000);
	  
	  zeit3 = (stunden+":"+minuten+":"+sekunden);
	  
	  
  }
  
  
//------------
//Runde 4


  if(runde == 4) {
	  clearInterval(timer_int);
	timer_int = setInterval(timer, 1000);
	  
	  zeit4 = (stunden+":"+minuten+":"+sekunden);
	  
  }
}
Viertens und letztens. Mein Auto soll nicht über die Bühne hinaus fahren können. Gibt es dafür irgent ein Befehl wie beim Drag&Drop?
Auch da bin ich Ratlos.

Ich wäre für jede Hilfe sehr dankbar. Ich hab momentan einfach eine Denkblokade.

Wie müssten denn die Lösungsansätze für die drei Probleme aussehn?

Danke und liebe Grüße
Don
DonLuzin ist offline   Mit Zitat antworten
Alt 06-12-2011, 16:59   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
mal gucken?
H.G.Seib
-> Spiele (das ZIP laden) Auto über eine 8-er Bahn fahren
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 07-12-2011, 08:16   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Dank dir.
Ich klick mich mal da durch
Wenn noch Fragen aufkommen meld ich mich

nochmals Danke
DonLuzin ist offline   Mit Zitat antworten
Alt 19-12-2011, 10:35   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Stand der Dinge....

-Beim verlassen der Strecke wird auto Abgebremst
-Rundenzeit geht einwandfrei

Jetzt fehlt nur noch, dass das Auto durch Hindernisse nicht durchfahren kann.
Ich dachte ja an eine hittest(); abfrage aber wie genau mache ich das?
Ich will, dass das Auto weder abgebremst oder abgelenkt wird sondern, dass das auto einfach nicht drüber sondern nur dagegen fahren kann

Jemand eine Idee?

Danke schon mal im voraus
Nachträglich einen schönen 4 Advent
DonLuzin ist offline   Mit Zitat antworten
Alt 19-12-2011, 14:23   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
das thema kollisionen ist eben so alt wie vielfältig (bitte mal hier im flashforum suchen. auf meiner homepage findest du auch jede menge infos und beispielskripte dazu).
generell: je genauer, desto aufwendiger
und es gibt NICHT eine lösung für alles.

- simple körper (ersatzkörper): wenn du dein hindernis hinreichend genau mit rechtecken oder kreise darstellen kannst. sowas kann man einfach berechnen und ist für rennspiele üblich und ausreichend (nur bei zeitlupe könnte ein betrachter feststellen, wenn die kollision nicht 1000%ig exact ist). wenn sich z.b. das auto in einem bestimmten rechteck befindet (bzw. linie überquert) mit einer bestimmten mindestgeschwindigkeit, dann ist eine kollision unvermeidlich. egal wie die konturen aussehen.
- unregelmässig gegen simple körper kann man mit beliebig vielen punkten an der aussenkontur berechnen. lauter leere movieclips positionieren und deren koordinaten z.b. mit localToGlobal umrechnen lassen. spitzen, die zwischen die kontrollpunkte passen, werden nicht erkannt. dazu muss man die kontrollpunkte als polygon betrachten und schnittpunkte mit den polygonkanten ermitteln.
- unregelmässig gegen unregelmässig: da kann man die objekte als bitmaps umrechnen lassen, für bitmaps gibts auch einen hitTest befehl. das währe ziemlich exakt, dürfte aber auch die meisste rechenzeit benötigen).
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (19-12-2011 um 14:38 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 03-01-2012, 13:17   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Natürlich bleibt bei mir auch nichts unversucht.

So Hab ich nun die Lösung meiner Probleme.

Für Leute die das gleiche Problem haben/hatten/haben werden:

Begrenzung für das Auto/ Bühnenbegrenzung:

Code:
//Links && Rechts \\
	
	if (Key.isDown(Key.UP)){
							
		if(this._x <= 5) {
					this._x = 5;
			}
		}
		
	if (Key.isDown(Key.UP)){
							
		if(this._x >= 700) {
					this._x = 700;
			}
		}
		
	//Oben && Unten \\
	
		if (Key.isDown(Key.UP)){
		
				if(this._y <= 10) {
					this._y = 10;
			}
		}
		
		if (Key.isDown(Key.UP)){
		
		if(this._y >= 750) {
				this._y = 750;
		}
		}
Je nachdem wie groß eure Begrenzung sein soll.

Und was passiert wenn man im Rennen Ordentlich in die Reifenstapel reinfährt? Richtig man kommt schwer vorwärts
Davor kommt man von der Fahrbahn ab und wird verlangsamt.

Also dafür:

Code:
if(this.strecke.hitTest(carx,cary,true)){

		text = "";
	}
	
	else{
		text = "Achtung - Bleib auf der Strecke Sonst wird die Runde nicht gewertet";
		
		if( (Key.isDown(Key.UP)) && (Key.isDown(Key.LEFT)) || (Key.isDown(Key.UP)) && (Key.isDown(Key.RIGHT)) || (Key.isDown(Key.UP)))
			{
				_global.speed = 3.5;
				
			}
			else{
		_global.speed = 0;
		
	}
	}
		if(_root.reifen.hitTest(carx,cary,true)){
				
				
			_global.speed = 0;
			
			
			
			
		}
Beste Grüße bei dem besten Wetter
DonLuzin
DonLuzin ist offline   Mit Zitat antworten
Alt 03-01-2012, 13:55   #7 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.040
Zitat:
Zitat von DonLuzin Beitrag anzeigen
Code:
//Links && Rechts \\
	
	if (Key.isDown(Key.UP)){
							
		if(this._x <= 5) {
					this._x = 5;
			}
		}
		
	if (Key.isDown(Key.UP)){
							
		if(this._x >= 700) {
					this._x = 700;
			}
		}
		
	//Oben && Unten \\
	
		if (Key.isDown(Key.UP)){
		
				if(this._y <= 10) {
					this._y = 10;
			}
		}
		
		if (Key.isDown(Key.UP)){
		
		if(this._y >= 750) {
				this._y = 750;
		}
		}
Wie oft willst du ein und dieselbe if Abfrage denn durchführen?

//ein Beispiel
PHP-Code:
import flash.geom.Rectangle;

var 
bound:Rectangle = new Rectangle(1010Stage.width 20 mc._widthStage.height 20 mc._height);

mc._x = const(mc._xbound.leftbound.right);
mc._y = const(mc._ybound.topbound.bottom);

function const(
value:Numberlower:Numberupper:Number):Number
{
    return 
Math.min(Math.max(valuelower), upper);

__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist gerade online   Mit Zitat antworten
Alt 10-01-2012, 13:46   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
So hab das ganze mal auf ein Testserver hochgeladen.

Wer es sich mal anschauen will

//Spiel entfernt\\

Grüße
Don

Geändert von DonLuzin (10-01-2012 um 15:14 Uhr)
DonLuzin ist offline   Mit Zitat antworten
Alt 10-01-2012, 14:29   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
da musst du noch was tunen. das auto prallt ab, wie ein gummiball ;-)
und ich fahre problemlos über die schrift 'südkurier' also ausserhalb der rennstecke !? d.h. einmal draussen kann man überall hinfahren.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (10-01-2012 um 14:31 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 10-01-2012, 14:49   #10 (permalink)
Neuer User
 
Benutzerbild von maybe
 
Registriert seit: Nov 2006
Beiträge: 195
Ich finde es trotz des unrealistischen Abprallens ganz lustig als Gelegenheitsspiel.

Schrift und Farben sind etwas langweilig, auf der Startseite kann ich nicht erkennen, was der Boppel in der Mitte darstellen soll.
Die Logos sind auch etwas lieblos platziert und gehen im Vergleich mit den ziemlich prominenten Reifenstapeln total unter.
(Schrift sollte nach Möglichkeit nie schräg nach rechts unten laufen)


Dass das Design eines Autos geschützt ist und nicht ohne Erlaubnis des Herstellers verwendet werden darf ist Dir bewußt?
Kenn mich mit Fahrzeugdesign nicht so gut aus, aber wenn das rechts Fotos sind, wär ich vorsichtig.
__________________
The hardest part of conception is getting bright ideas past dim people.

Geändert von maybe (10-01-2012 um 14:50 Uhr)
maybe ist gerade online   Mit Zitat antworten
Alt 10-01-2012, 15:14   #11 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Erstmal danke für eure Feedbacks

Es soll so abprallen und es soll ja auch kein wahnsinns spiel sein sondern einfach nur so zum Zeitvertreib.

Ja die schrift gefällt mir persönlich auch nicht so aber logo ist nunmal logo

Des Auto-Design ist ein Bild das ist richtig. Aber alles wurde selber gemacht.

Ich bin der Meinung man kann jedes Spiel "zerstören" indem man solang rumprobiert bis das Auto aus dem Bild fährt aber nunja
Die Schrift soll auch kein Hindernis darstellen.

Grüße
DonLuzin ist offline   Mit Zitat antworten
Alt 11-01-2012, 08:14   #12 (permalink)
Neuer User
 
Benutzerbild von maybe
 
Registriert seit: Nov 2006
Beiträge: 195
Zitat:
Zitat von DonLuzin Beitrag anzeigen
Erstmal danke für eure Feedbacks

Ja die schrift gefällt mir persönlich auch nicht so aber logo ist nunmal logo

Des Auto-Design ist ein Bild das ist richtig. Aber alles wurde selber gemacht.
Ich meinte die Laufschrift.

Und auch wenn das Markenfahrzeuge sind, von denen Du ein Foto gemacht hast, hat trotzdem der Hersteller die Rechte an dem Fahrzeugdesign. Da wär ich vorsichtig.
Du darfst ja z.B. auch nicht einfach ein Hochhaus fotografieren und das Bild kommerziell verwenden (nachdem ein Zeitungslogo in Deinem Spiel auftaucht, gehe ich mal von einer kommerziellen Verwendung aus), ohne Erlaubnis des Architekten.
__________________
The hardest part of conception is getting bright ideas past dim people.
maybe ist gerade online   Mit Zitat antworten
Alt 11-01-2012, 09:07   #13 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 22
Zitat:
Zitat von maybe Beitrag anzeigen

Und auch wenn das Markenfahrzeuge sind, von denen Du ein Foto gemacht hast, hat trotzdem der Hersteller die Rechte an dem Fahrzeugdesign. Da wär ich vorsichtig.
Du darfst ja z.B. auch nicht einfach ein Hochhaus fotografieren und das Bild kommerziell verwenden (nachdem ein Zeitungslogo in Deinem Spiel auftaucht, gehe ich mal von einer kommerziellen Verwendung aus), ohne Erlaubnis des Architekten.

Es wurde als Bitmap in Flash eingefügt. Die Ursprüngliche Datei ist eine .ai
Sprich wurde von einem Kollegen von mir selber im Illustartor erstellt.

Aber trozdem danke für deinen Hinweiß.
DonLuzin ist offline   Mit Zitat antworten
Alt 11-01-2012, 09:52   #14 (permalink)
Neuer User
 
Benutzerbild von maybe
 
Registriert seit: Nov 2006
Beiträge: 195
Ja dann. Gute AI-Arbeit
__________________
The hardest part of conception is getting bright ideas past dim people.
maybe ist gerade online   Mit Zitat antworten
Alt 11-01-2012, 10:18   #15 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von maybe Beitrag anzeigen
Ja dann. Gute AI-Arbeit
In der Tat. Schade nur, dass die Verläufe total von der Kompression zerhackt werden...

Das bekommt man doch bestimmt noch besser hin, oder?!
Solche Bilder würde ich nicht mit Flash selbst komprimieren sondern z.B. mit PhotoShop »für Web Speichern«
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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
Rennspiel - Denkanstoss JackJones Flash MX 3 22-11-2007 16:59
rennspiel able Am Rande 3 15-05-2007 09:22
cacheAsBitmap bei Rennspiel McSodbrenner Spielkonzepte und Spieleprogrammierung 7 12-12-2005 13:46
Rennspiel - Tutorial Ernschd Flash 4 und Flash 5 2 16-01-2005 19:31
positionsanzeige im rennspiel nalin Spielkonzepte und Spieleprogrammierung 1 08-11-2004 12:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele