Kollison von Planeten(kreise)
Übersicht

![]() |
SephkaBetreff: Kollison von Planeten(kreise) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß das die frage schon x-mal angesproche wurde,aber irgendwie komm ich nicht auf die Lösung.
Ich möchte das der Planet wenn er mit einem anderem kollidiert neu bestimmt wird(seine variablen). Mein code Code: [AUSKLAPPEN] ;##################################################################################
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ;################################################################################## ;INSTALLATION Graphics 1024,768,16,2 SetBuffer BackBuffer() SeedRnd MilliSecs() ;GLOBALE VARIABLEN Global SternX = 1024/2+Rnd(-20,20) Global SternY = 768/2+Rnd(-20,20) Global SternR = Rnd(50,100) Global px,py,pr,ab# ;TYPES Type TPlanet Field x Field y Field parent Field name$ Field typ Field ID Field gr Field radius Field alpha Field speed End Type ;BILDER ;MUSIK ;FONTS Global font = LoadFont("Arial",12) ;TIMER Global timer = CreateTimer(60) ;################## For x=1 To 2 .s planet.tplanet = New tplanet planet\x = Rnd(1,1024) planet\y = Rnd(1,768) planet\typ = x planet\name = GenerateName(3,8) planet\ID = x planet\gr = Rnd(5,50) planet\radius = Rnd(SternR+20,400) planet\speed = Rnd(0.51,1) px = planet\x py = planet\y pr = planet\gr For planet.TPlanet = Each Tplanet If Then Goto s Next Next Repeat Drawplanets() UpdatePlanets() WaitTimer timer Flip 0 Cls Until KeyHit(1) End Function DRAWPLANETS() For planet.tplanet = Each Tplanet Select planet\typ Case 1 Color 255,0,0 Case 2 Color 255,255,0 End Select Oval planet\x,planet\y,planet\gr,planet\gr,1 Color 255,255,255 SetFont font Text planet\x,planet\y-12,planet\name Next Color 255,215,0 Oval sternX,sternY,SternR,SternR,1 End Function Function UPDATEPLANETS() For planet.Tplanet = Each Tplanet Planet\x=Sternx+Cos(Planet\alpha)*Planet\radius Planet\y=Sterny-Sin(Planet\alpha)*Planet\radius Planet\alpha=Planet\alpha+planet\speed Next End Function Function GenerateName$(min, max) Local name$, char, vowel, length vowel = Rand(0, 1) length = Rand(min, max) For x = 1 To length vowel = Not vowel If vowel Repeat char = Rand(95, 122) Until (char <> Asc("a")) And (char <> Asc("e")) And (char <> Asc("i")) And (char <> Asc("o")) And (char <> Asc("u")) Else Select Rand(1, 5) Case 1 char = 97 Case 2 char = 101 Case 3 char = 105 Case 4 char = 111 Case 5 char = 117 End Select EndIf name = name + Chr(char) Next name= Replace(name, "q", "qu") name= Replace(name, Chr(96), "sch") name= Replace(name, Chr(95), "ch") name = Upper(Mid(name, 1,1)) + Mid(name,2) Return name End Function MFG SEPHKA |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na ganz einfach: Wenn Distanz Planet 1 + Planet 2 kleiner ist als Radius von Planet 1 + Radius von Planet 2 dann Kollision = true.
Oder was willst du wissen? Du hast dich doch sehr vage ausgedrückt. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group