SchussWinkel
Übersicht

![]() |
LunatixBetreff: SchussWinkel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute!
Also ich habe folgendes problem : ich habe eine figur, die schiesst schüsse halt. aber z.Z. nur geradeaus. so meine überlegung ist : sie kann ca 90 grad nach oben und 90 nach unten ballern. Dazu brauche ich eine Winkel berechnung die da soweit ich herasusgefunden habe, Kathetensatz heisst. -> *=freier Platz # und | = linie ***** C*<- dort ist Y2 ***#**|**# **#***|***# *#****|****# A------D-------B <- hier Beta "Im Dreieck BCD gilt : Y2 + ß = 90" Heisst also : Y2 = 90 / ß So, damit hätte ich den schusswinkel zwischen dem player und der maus berechnet. Theoretisch aber auch nur. Denn praktisch fehlt mir der winkel Beta! woher krieg ich den? würdet ihr es anders machen? |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lies dir ein Winkel oder Mathematik-Tutorial. Auf die Schnelle fällt mir nichts ein. ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jacky du bist der beste! hier guck mal den link
http://www.mathepower.com/rechtw.php Für rechtwinklige Dreiecke mit rechtem Winkel bei C gilt: Flächeninhalt = (a * b) / 2 a² + b² = c² (Satz des Pythagoras) a² = c * p, b² = c * q (Kathetensatz des Euklid) h² = p * q (Höhensatz des Euklid) sin Alpha = a / c heisst also ich hab A ubd B muss ich jetz für Alpha= A / C und dann sinus aus dem ergebniss machen, dann hab ich meinen Winkel? |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Junkprogger hat Folgendes geschrieben: Jacky du bist der beste!
War das jetzt ironisch gemeint ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das war ein freudenausruf. nix mit schwul oder du bist ab jetz er könig des forums zutun hat. | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
Clonker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht hilft das hier dir weiter:
Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() Repeat HidePointer() ;C ; * ; * * ; * * ; * * ; ******** ;A B Cls Rect 319,448,2,4 Color 100,100,100 Rect 0,450,640,1 Rect 320,0,1,450 Oval 0,130,640,640,0 Color 255,255,255 If MouseY() <= 450 Then Line 320,450,MouseX(),MouseY() Line MouseX(),450,MouseX(),MouseY() Line 320,450,MouseX(),450 Text MouseX(),MouseY()-15,"C" Text 315,455,"B" Text MouseX()-5,455,"A" b# = 450-MouseY() c# = 320-MouseX() a# = Sqr(b^2+c^2) alpha# = 90 ;a/sin(alpha) = b/sin(beta) beta# = (Sin(alpha)*b)/a beta = ASin(beta) gamma# = 180-beta-alpha Text 100,10,"Alpha " +alpha Text 100,22,"Beta " + beta Text 100,34,"Gamma " + gamma Text 10,10,"a="+a Text 10,22,"b="+b Text 10,34,"c="+c Color 255,0,0 Text 250,10,"320*sin(gamma)*-1|320*cos(gamma)*-1" Text 250,22,"("+(320+320*sin(gamma)*-1)+"|"+(450+320*cos(gamma)*-1)+")" If c < 0 Then gamma = gamma *-1 Rect 320+(320*sin(gamma)*-1)-2,450+(320*cos(gamma)*-1)-2,4,4 Color 255,255,255 EndIf Flip Until KeyHit(1) |
||
Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz.
Athlon XP 2800|Radeon 9600 Pro|512MB DDR RAM|240GB Festplatte |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ql:ATan2
Falls Benutzung des Befehls unklar: ![]() MfG D2006 |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, atan2 auch vorhin entdeckt. Aber ginge auch so :
a²+B²=c² Sin Alpha= a / c so mein problem dort ist - ich kann keine Wurzel ziehen. Nehm ich lieber Atan2 aber gibts auch Wurzel zieh function in BB3D? |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: ich kann keine Wurzel ziehen
mit SQR() geht das ganz gut |
||
[BB2D | BB3D | BB+]
|
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh. Nocj n Befehl übersehen. THX Leute! | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
Egon Dragon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Also wenn ich das jetzt richtig verstanden habe dann willst du nur in 90° grad winkeln schießen oder nicht? naja wenn das so ist braucht man doch keine winkelfunctionon und sonstwas sondern einfach nur eine variable und ein typ für die kugel. wenn die kugel geschoßen wird, bekommt der typ der kugel einen wert von null bis drei. dann mußt du einfach in immer diese variable abfragen, am besten mit select case also so: BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geht nicht. Weil ich ein Fadenkreuz habe, dort dran ist eine linie bis zum lauf der waffe. Also mit befel->BlitzBasic: [AUSKLAPPEN] Line(PlayerX,PlayerY,MouseX(),MouseY()) somit muss der schuss auf der X und Y achse immer von Wert 0.0 bis wert 1.0 eingestellt werden -> 45° = X=X+0.45 Y=Y+0.45 Damit der schuss nie schneller als 1 ist. |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
erm, line ist dreckigst lahm.
mit atan2 kriegst du doch den winkel. dann schreibst du dir einfah eine "rund" routine die es auf die nächsten 45 oder 90 grad rundet. winkel = atan2(y2-y1,x2-x1) ratio=(x2-x1)/(y2-y1) i=(x2-x1) lockbuffer frontbuffer() for blubb = 0 to i writepixelfast x2+i,y2+i*ratio,farbe next und so weiter |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn du den Buffer lockst, ist Line auch sehr schnell.
MfG D2006 |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
also bei mir keine probleme. was ist eigendlich schneller - ein plot oder ein rect 1*1 groß??
kann lockbuffer zu irgendwelchen problemen führen? hätte mein game gerne ohne jedes prob gemacht |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
rect ist amüsanterweise schneller als plot genauso wie rect für eine gerade linie schneller ist als line.
lockbuffer kann zu problemen führen wenn du beschissenen code hast ![]() ernsthaft, so lange du im code aufpasst, dass du nicht über den bildschirmrand rauswritepixelst und deinen buffer wieder unlockest wenn du fertig bist gibst da absolut keine probleme. |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, mal sehen, aber rect kann man nich t als schräge line nehem ausse man macht es sehr aufwändig mit types und so, aber glaube dann ist line wider schneller | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
deswegen writepixelfast. laut aussagen von leuten gut 20x so schnell wie line | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group