Debeschleunigung der Beschleunigung^^

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Kaisky007
Beiträge: 83
Registriert: 25.05.2008 20:58

Debeschleunigung der Beschleunigung^^

Beitrag von Kaisky007 »

Das ist viel schwieriger als es sich anhört, habe 10 Stunden gebraucht!!!!

Code: Alles auswählen

If KeyboardPushed(#PB_Key_Left)
  BeschleunigungX - BBX
  BBX - 0.3
Else
  BBX = 1
EndIf

If KeyboardPushed(#PB_Key_Right)
  BeschleunigungX + BBX
  BBX - 0.3
Else
  BBX = 1
EndIf

If KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Left)
  BBX = 1
EndIf

If KeyboardPushed(#PB_Key_Up)
  BeschleunigungY - BBY
  BBY - 0.3
Else
  BBY = 1
EndIf

If KeyboardPushed(#PB_Key_Down)
  BeschleunigungY + BBY
  BBY - 0.3
Else
  BBY = 1
EndIf

If KeyboardPushed(#PB_Key_Down) And KeyboardPushed(#PB_Key_Up)
  BBY = 1
EndIf

IchX + (BeschleunigungX / 4)
IchY + (BeschleunigungY / 4)

If BeschleunigungX > 0 
  If KeyboardPushed(#PB_Key_Right)
  Else
    BeschleunigungX - 2
    If KeyboardPushed(#PB_Key_Left)
      BeschleunigungX - 1
    EndIf
  EndIf
EndIf

If BeschleunigungX < 0 
  If KeyboardPushed(#PB_Key_Left)
  Else
    BeschleunigungX + 2
    If KeyboardPushed(#PB_Key_Right)
      BeschleunigungX + 1
    EndIf
  EndIf
EndIf

If BeschleunigungY > 0 
  If KeyboardPushed(#PB_Key_Down)
  Else
    BeschleunigungY - 2
    If KeyboardPushed(#PB_Key_Up)
      BeschleunigungY - 1
    EndIf
  EndIf
EndIf
If BeschleunigungY < 0 
  If KeyboardPushed(#PB_Key_Up)
  Else
    BeschleunigungY + 2
    If KeyboardPushed(#PB_Key_Down)
      BeschleunigungY + 1
    EndIf
  EndIf
EndIf

If KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Left)
  If BeschleunigungX > 0
    BeschleunigungX - 1
  EndIf
EndIf

If KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Left)
  If BeschleunigungX < 0
    BeschleunigungX + 1
  EndIf
EndIf

If KeyboardPushed(#PB_Key_Down) And KeyboardPushed(#PB_Key_Up)
  If BeschleunigungY > 0
    BeschleunigungY - 1
  EndIf
EndIf

If KeyboardPushed(#PB_Key_Down) And KeyboardPushed(#PB_Key_Up)
  If BeschleunigungY < 0
    BeschleunigungY + 1
  EndIf
EndIf

If BeschleunigungX = 0
  BBX = 1
EndIf

If BeschleunigungY = 0
  BBY = 1
EndIf

If IchX < 0
  BeschleunigungX = 0
  IchX = 0
  BBX = 1
EndIf

If IchX > 566
  BeschleunigungX = 0
  IchX = 566
  BBX = 1
EndIf

If IchY < 0
  BeschleunigungY = 0
  IchY = 0
  BBY = 1
EndIf

If IchY > 568
  BeschleunigungY = 0
  IchY = 568
  BBY = 1
EndIf

If BBX < 0.0001
  BBX = 0.0001
EndIf

If BBY < 0.0001
  BBY = 0.0001
EndIf
Da passiert das: IchX/IchY wird beschleunigt durch die Beschleunigung die aber immer langsamer beschleunigt durch die debeschleunigung des BBX/BBY !
Verstanden?
Nochmal Langsam.
Es wird beschleunigt.
aber es beschleunigt immer langsammer weil mehr reibung entsteht.
Auto = IchX/IchY
Geschwindigkeit = BeschleunigungX/BeschleunigungY
Reibung = BBX/BBY (abkürzung für "BeschleunigungBeschleunigung"
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Also eine beschleunigkeit Beschleunigung nenn man in der Physik "Ruck"
Der Ruck ist also die drei-fache Ableitung des Ortes oder die einfache ableitung der Beschleunigung.

Nun zu meiner Frage: Hast du auch n Anwendungs Beispiel für dein Code ?

Denn derzeit ist er zimlich speziell für dich gehalten oder ?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Kaisky007
Beiträge: 83
Registriert: 25.05.2008 20:58

Beitrag von Kaisky007 »

Also mein Spiel(unten unterm strich)
oder hier:

Code: Alles auswählen


InitSprite
InitKeyboard

OpenScreen(800,600,16,"Öhöhöö")

Repeat

ClearScreen(RGB(0,0,0))
 
StartDrawing(ScreenOutput())

FrontColor(RGB(0,0,0))

Box(IchX,IchY,32,32)

StopDrawing()

ExamineKeyboard()

If KeyboardPushed(#PB_Key_Left) 
  BeschleunigungX - BBX 
  BBX - 0.3 
Else 
  BBX = 1 
EndIf 

If KeyboardPushed(#PB_Key_Right) 
  BeschleunigungX + BBX 
  BBX - 0.3 
Else 
  BBX = 1 
EndIf 

If KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Left) 
  BBX = 1 
EndIf 

If KeyboardPushed(#PB_Key_Up) 
  BeschleunigungY - BBY 
  BBY - 0.3 
Else 
  BBY = 1 
EndIf 

If KeyboardPushed(#PB_Key_Down) 
  BeschleunigungY + BBY 
  BBY - 0.3 
Else 
  BBY = 1 
EndIf 

If KeyboardPushed(#PB_Key_Down) And KeyboardPushed(#PB_Key_Up) 
  BBY = 1 
EndIf 

IchX + (BeschleunigungX / 4) 
IchY + (BeschleunigungY / 4) 

If BeschleunigungX > 0 
  If KeyboardPushed(#PB_Key_Right) 
  Else 
    BeschleunigungX - 2 
    If KeyboardPushed(#PB_Key_Left) 
      BeschleunigungX - 1 
    EndIf 
  EndIf 
EndIf 

If BeschleunigungX < 0 
  If KeyboardPushed(#PB_Key_Left) 
  Else 
    BeschleunigungX + 2 
    If KeyboardPushed(#PB_Key_Right) 
      BeschleunigungX + 1 
    EndIf 
  EndIf 
EndIf 

If BeschleunigungY > 0 
  If KeyboardPushed(#PB_Key_Down) 
  Else 
    BeschleunigungY - 2 
    If KeyboardPushed(#PB_Key_Up) 
      BeschleunigungY - 1 
    EndIf 
  EndIf 
EndIf 
If BeschleunigungY < 0 
  If KeyboardPushed(#PB_Key_Up) 
  Else 
    BeschleunigungY + 2 
    If KeyboardPushed(#PB_Key_Down) 
      BeschleunigungY + 1 
    EndIf 
  EndIf 
EndIf 

If KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Left) 
  If BeschleunigungX > 0 
    BeschleunigungX - 1 
  EndIf 
EndIf 

If KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Left) 
  If BeschleunigungX < 0 
    BeschleunigungX + 1 
  EndIf 
EndIf 

If KeyboardPushed(#PB_Key_Down) And KeyboardPushed(#PB_Key_Up) 
  If BeschleunigungY > 0 
    BeschleunigungY - 1 
  EndIf 
EndIf 

If KeyboardPushed(#PB_Key_Down) And KeyboardPushed(#PB_Key_Up) 
  If BeschleunigungY < 0 
    BeschleunigungY + 1 
  EndIf 
EndIf 

If BeschleunigungX = 0 
  BBX = 1 
EndIf 

If BeschleunigungY = 0 
  BBY = 1 
EndIf 

If IchX < 0 
  BeschleunigungX = 0 
  IchX = 0 
  BBX = 1 
EndIf 

If IchX > 566 
  BeschleunigungX = 0 
  IchX = 566 
  BBX = 1 
EndIf 

If IchY < 0 
  BeschleunigungY = 0 
  IchY = 0 
  BBY = 1 
EndIf 

If IchY > 568 
  BeschleunigungY = 0 
  IchY = 568 
  BBY = 1 
EndIf 

If BBX < 0.0001 
  BBX = 0.0001 
EndIf 

If BBY < 0.0001 
  BBY = 0.0001 
EndIf
FlipBuffers()

Until KeyboardPushed(1)

Code: Alles auswählen


Kann aber sein (eigentlich sogar wahrscheinlich)
dass ich etwas vergessen habe oder ein tippfehler gemacht habe, bin nicht an meinen computer, d. h. ich habe kein pure basic und habe das jetzt so getippt. Ich konnte es nicht testen und habe alles aus dem gedächnis gemacht. (ich bin ja noch anfänger)
Benutzeravatar
Kaisky007
Beiträge: 83
Registriert: 25.05.2008 20:58

Beitrag von Kaisky007 »

Hoppla, das am schluss von der programmierung ist normal in der text am schluss ist im code.
Leider fehlt irgendwie das edit dingsda an diesem computer
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

...ich dachte, man nennt das "Impuls"...

so sachen gehen unter Zuhilfenahme der Physikformelsammlung leichter,
aber da du ja wohl noch Sek1 bist, ist das bestimmt ein fettes Stück arbeit gewesen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Impuls ist mv also Masse mal Geschwindigkeit.
Damit kannst du zum Beispiel berechen, was passiert,
wenn du einen Stein hinten aus dem Boot wirfst
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Macros hat geschrieben:Damit kannst du zum Beispiel berechen, was passiert,
wenn du einen Stein hinten aus dem Boot wirfst
lass mich raten: Der Stein geht unter?

Grüße ... Kiffi :mrgreen:
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

achja.. das is schon so lang her... man kann sich echt nich alles merken... *achselzuck*
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Daher auch "Impulsantrieb"

das ist halt nix anderes als das man hinten Masse mit einer Geschwindigkeit aus dem Raumschiff schießt, sodass sich das Raumschiff in die gegen Richtung bewegt, also nach vorn.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Und insofern hat auch eine Rakete einen Impulsantrieb ;)

Allerdings gibts es schon wirkliche Impulsantriebe, die nur Materie ausstoßen, ohne Verbrennungsprozess. Hält lang, hab aber bei weitem nicht soviel Kraft wie in den Sci-fi Serien
Bild
Antworten