| |||||||
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: 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) |
| | |
| | #2 (permalink) |
| Techniker 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) |
| | |
| | #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) |
| | |
| | #4 (permalink) |
| Techniker 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) |
| | |
| | #5 (permalink) |
| Techniker 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 |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ä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 |