Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-04-2011, 19:56   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2011
Beiträge: 2
Bewegung auf einem unebenen Boden

Hallo Leute!

Ich hab mir mal ein Tutorial zu scrollenden Landschaften angesehn und das für meine Zwecke adaptiert. Im Endeffekt ist nun eine einfache links-rechts Fahr-Animation daraus geworden, die ich nun gern zu einem richtigen Spiel aufmotzen möchte.

So siehts momentan aus:
File-Upload.net - Landschaft.swf (swf)
File-Upload.net - Landschaft.fla (fla CS5)

Kurzbeschreibung:
Es gibt mehrere leere Movieclips (ground, cliffs, mountains,...) in denen per Skript zufällig verschiedene Movieclips aneinander gereiht werden, um so die Illusion einer unendlich langen Landschaft zu bekommen.
Per Pfeiltasten kann man das Auto, das sich immer in der Mitte des Bildschirms befindet, beschleunigen, wodurch sich die verschiedenen Hintergrundebenen zu bewegen beginnen. (übrigens: das Geholpere wird per random im wheel und carbody mc erzeugt )

Das sieht zwar ganz schön aus, wird mit der Zeit aber langweilig.
Meine Idee wär nun, die Ground-Ebene etwas hügeliger zu gestalten und dem Auto zu sagen es soll auf dieser auf und ab fahren. Fährt man ganz schnell, kann man auch über einige Hügel drüberspringen (also eine Art Gravitation müsste man auch einbauen).

Meine Frage nun: Wie kann man sowas umsetzen? Kenn mich etwas mit programmieren aus, hab aber keinen Plan wie ich an sowas rangehe.

Ich hoffe ihr könnt mir da etwas helfen.

--HD--

Geändert von HD_92 (07-04-2011 um 22:36 Uhr)
HD_92 ist offline   Mit Zitat antworten
Alt 08-04-2011, 09:40   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
willkommen im flashforum!

es geht auf jeden fall um kollisionen/ schnittpunkte:
- am einfachsten, die ebene ist waagrecht gerade
- nächste stufe, die ebene ist schräg gerade
- dann mehrere geraden mit unterschiedlichen schlägen
- dann z.b. bezierkurven

dazu musst/solltest du dir einiges an grundwissen aneignen.
hilfe z.b. (fla's teilweisse veralter, aber immer noch gültig):
H.G.Seib
-> ballaballa (ZIP laden - und Bälle auf schrägen Flächen +abprallen_linie ansehen)
-> Zeichnen (ZIP laden - bezier - dazu gibts auch 10000 infos im internet)
-> berührungen (parabeln sind grundwissen für jump & run bzw. für deine geplanten sprünge)
-> http://www.seibsprogrammladen.de/fra...allistik/flash

p.s.
tipp: wechsle zu AS3
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (08-04-2011 um 09:51 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 08-04-2011, 15:50   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2011
Beiträge: 2
Danke für die nützlichen Hinweise. Hat mich schon um einiges schlauer gemacht

Das größte Problem vor dem ich stehe ist die Collision Detection und v.a. die damit verbundene Berechnung des Austrittswinkels. Auf einfachen geraden Linien ist mir schon klar wie man das errechnet (@hgseib: danke deiner bsp ), aber bei komplexeren frei gezeichneten Formen bin ich ratlos. Ich hab hier ein tolles Skript gefunden:
gskinner.com: gBlog: Flash 8: Shape Based Collision Detection

Damit kann man pixelgenau die Kollision der Reifen mit dem sichtbaren Ground-Objekt prüfen. Aber kann man das auch so umsetzen, dass sich damit die Bewegung des Autos steuern lässt?

Aja hier noch eine Paint-Grafik, die mein Ziel veranschaulicht:

der hat natürlich schon etwas speed drauf, damit er so über den Graben springen kann

mfg
--HD--

Geändert von HD_92 (08-04-2011 um 15:55 Uhr)
HD_92 ist offline   Mit Zitat antworten
Alt 08-04-2011, 16:22   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
die landschaft nicht mit einer einzigen komplexen kurve erstellen, sondern einzelne kurvenstücke (beziers) zusammenfügen. das kann man ganz gut berechnen.

die kurvenformel differenzieren, dann kannst du den jeweiligen tangentenwinkel berechnen ;-)
einfacher:
von deinem auto sieht man 2 reifen. und nur damit berührst du den untergrund.
also berechne den schnittpunkt einer senkrechten durch die radachse mit der kurve.
die tangente geht durch diese beiden schnittpunkte.

sowas kann AS3 sogar von hause aus. siehe:
H.G.Seib
-> AS3_BezierSegment flash8: die Methoden von BezierSegment

geht auch ganz gut mit sinuskurven. mehrere sinuswellen mit unterschiedlicher amplitute zusammen rechnen gibt immer neue landschaften und y an einer x-position ist dennoch sehr einfach zu berechnen.

wenn dir das alles immer noch zu komplex ist, dann setz die landschaft halt mit geradenstücke zusammen.
dann reduziert sich das auf schnittpunkt gerade/gerade
http://www.seibsprogrammladen.de/fra.../Schnittpunkte
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (08-04-2011 um 16:43 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 08-04-2011, 16:41   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Code:
const sinA:Number = .0031;
const sinB:Number = .07;
const sinC:Number = 2;
const landschaftH:Number = 200;
const landschaftW:Number = 400;
const scale:Number = 5;
const step:Number = 3;

function fY(x): Number {
	return landschaftH-scale*(Math.sin(x*sinA)+Math.sin(x*sinB)+Math.sin(x*sinC));
}

var offsetX:Number = 20; // z.b. ab hier beginnt die landschaft
graphics.lineStyle(0);
var fX:Number = offsetX;
graphics.moveTo(fX,fY(fX));
for (var i=0; i<landschaftW; i+=step, fX+=step) {
  graphics.lineTo(fX,fY(fX));
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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
Bewegung in einem festgelegten Bereich moreloga Flash MX 2 04-01-2005 15:28
Gleichmäßige Bewegung an einem Pfad slenk Flash MX 2 17-10-2004 11:20
Bewegung an einem anderen MC ausrichten Oberchef ActionScript 1 3 08-01-2003 08:53
Bewegung mit AS von einem Button gesteuert Flasher17 ActionScript 1 4 20-02-2002 18:51
zufällige bewegung in einem bestimmten bereich Pankstelle ActionScript 1 6 03-12-2001 09:10


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

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


Copyright ©1999 – 2012 Marc Thiele