Kreiselsimulation
Übersicht

![]() |
IronstormErstklassiger Contest-VeranstalterBetreff: Kreiselsimulation |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi @ all!
Ich habe ein Prob. mit einem Versuch! Ich wollte mal einen Kreisel in 2d Simulieren! Jetzt hab ich es so gemacht das man den Kreisel dreht und per Pfeiltasten bewegen kann. Doch jetzt wollt ich mal es so machen das der Kreisel auf dauer geschwindigkeit verliert und sich langsamer dreht und am ende umfliegt. Doch wie mache ich das, das der Kreisel langsamer wird? Ich bekomme das nicht hin. Um mir bei meinem Prob. zu helfen braucht ihr keinen Code! Ihr könnt einfach x belibige Variablen nehmen.Bitte helft mir ! THX im vorraus |
||
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Einfach einen Bremsfaktor einbauen.
Heisst: ; Faktor < 1.0 RotationsSpeed = RotationsSpeed * Faktor |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du brauchst auf jeden Fall eine Variable für die Geschwindigkeit. Außerdem am besten für jeden Winkel ein Bild und das in einem Array speichern. Dann nur noch eine Variable für die Aktuelle Richtung. Das sieht dann ungefähr so aus:
Code: [AUSKLAPPEN] geschwindigkeit# = 500 repeat richtung = ( richtung + geschwindigkeit# ) mod 360 ; ab 360 gehts ja wieder von vorne los... geschwindigkeit# = geschwindigkeit# * 0.99 until keyhit(1) |
||
![]() |
IronstormErstklassiger Contest-Veranstalter |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey danke Timo! Aber wie mache ich jetzt das der Kreisel nach einiger Zeit immer langsammer wird? | ||
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie schon gesagt:
Code: [AUSKLAPPEN] geschwindigkeit# = geschwindigkeit# * 0.99
wenn es schneller gehen soll, das er langsamer wird kannst du auch schreiben: geschwindigkeit# * 0.88 oder so... eine 1 würde bedeuten, die geschwindigkeit bleibt gleich. eine Zahl über eins würde es beschleunigen. eine zahl unter 1 verlangsamt das ganze. 0 würde das ganze sofort anhalten. |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du kannst ja auch diese 0.99 immer kleiner werden lassen und dafür mit 1.2 anfangen. Ist nur so'ne Idee.
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jiriki hat Folgendes geschrieben: Du kannst ja auch diese 0.99 immer kleiner werden lassen und dafür mit 1.2 anfangen. Ist nur so'ne Idee.
Das würde den Kreisel erst beschleunigen und dann unnatürlich langsamer werden lassen Jiriki ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, beschleunigen ist doch gut, wenn man das als Start sieht. Aber wieso wird es dadurch unnatürlich langsamer? Der Kreisel wird doch umso schneller langsam, wenn er sich nur noch langsam dreht, oder etwa nicht?
Aber eigentlich hab ich keine Ahnung, war nur so dahergeredet^^ Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein nicht ganz, wenn man zum Beispiel den Faktor 0.95 hat, ist das eine negative beschleunigung oder eine bremswirkung. je nach dem, ob's näher bei 0 oder bei 1 ist, ist diese Bremsung stärker oder schwächer. Was du jetzt machst, ist quasi eine "beschleunigte beschleunigung". So könnte kein Auto bremsen. Beschleunigung gibt man in m/(s*s) an. das heißt wie viel geschwindigkeit + sekunde drauf kommt ( also 5 m/s schneller pro sekunde z.b.) bei dir würde genau das ebenfalls immer schneller werden. naja man könnte ja mal ein Programm zur veranschaulichung schreiben ![]() |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Stimmt, wenn du es mir so erklärst ist es logisch.
Sorry für die falsche Info, Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ist ja nicht schlimm ![]() hier noch mal nen code zur verdeutlichung: Code: [AUSKLAPPEN] graphics 800,600,32,2
setbuffer backbuffer() ;Fahrzeug 1 Global a1# = 1.0 ;Beschleunigung in a angegeben global x1# = 0.0 ;Position des Wagens Global y1 = 260 ;Position des Wagens Global v1# = 3.5 ;Geschwindigkeit in Pixel/Frame ;Fahrzeug 2 Global a2# = 1.0 ;Beschleunigung in a angegeben global x2# = 0.0 ;Position des Wagens Global y2 = 300 ;Position des Wagens Global v2# = 3.5 ;Geschwindigkeit in Pixel/Frame color 255,255,255 repeat cls rect 400,0,1,600 v1# = v1# * a1# x1# = x1# + v1# v2# = v2# * a2# x2# = x2# + v2# if x1 > 400 then a1# = 0.98 if x2 > 400 then a2# = a2# * 0.99 rect x1,y1,20,5 rect x2,y2,20,5 Text 500,y1-20,"normale Bremswirkung" Text 500,y2-20,"beschleunigte Bremswirkung" flip if v1# + v2# < 0.1 then v1# = 3.5 v2# = 3.5 x1# = 0.0 x2# = 0.0 a1# = 1.0 a2# = 1.0 endif until keyhit(1) end |
||
![]() |
IronstormErstklassiger Contest-Veranstalter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leuts! Ich hab des jetzt hinbekommen! Aber jetzt wollte ich das man ein kleines Duell machen kann. Also folgendes Problem. Wie mache ich des mit der KI? Ich weiß net wie ich die Bewegungen hinbekomme. Ich meine ich kann ihn ja nicht die ganze zeit nach Links oder recht wandern lassen. Der gegner muss ja mit den Spieler seine Bewegungen interagieren! Aber wie? | ||
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium |
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mach einfach erstmal eine KI, die sich immer in Richtung Spieler bewegt, das reicht meistens schon bei sowas.
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mach vielleicht noch eine Zufallsabweichung rein:
Code: [AUSKLAPPEN] kiX = kiX + Rand(0,1)
kiY = kiY + Rand(0,1) |
||
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If (AItime <> 0) Then ;oder auf spieler reagieren (!)
AItime = AItime - 1 Else Select Rand(0, 3) Case 0 AIstate = asPattern AItime = 1000 Case 1 AIstate = asRandom AItime = Rand(200, 600) Case 2 AIstate = asFlee AItime = Rand(100, 800) Case 3 AIstate = asAttack AItime = Rand(300, 500) End Select End If Rest selber coden! :S |
||
Norweger...
Spreche aber verdammt gut 8086 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group