Alle tutorials über winkelberechnung
Übersicht

![]() |
mas93Betreff: Alle tutorials über winkelberechnung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Leute,
Ich brauche unbedingt einige tutorials zur Winkelberechnung. Das mit sin() + Cos() bewegung(GTA steuerrung) kann ich schon. Aber ich hab noch keine ahnung wie man z.b ein Bild an ein anderes ausrichtet usw. das geht glaube ich mit atan2 oder so. Also wäre nett wenn ihr mir einfach mal paar sachen reinposten würdet. Weil ohne winkel komm ich in meinen Spielen einfach nichmehr weiter. Und jetzt kommt mir bitte nicht mit Suche anwerfen oder so.(Auf diesen Satz bekommt bestimmt noch was zurrück^^) hab ich schon gemacht. Hab aber nich so viel gefunden bis auf die GTA steuerrung. mfg Marius |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. Keine Anfragen in FAQ und Tuts, danke. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ATAN
ATAN2 BLITZBASE ![]() ![]() sonst Code: [AUSKLAPPEN] /C / | / y / | / | A--x--B bei der 2. Variante ist die gefahr x=0 (dann ist y/0 -> Fehler) deshalb ist die erste zu empfehlen x und y sind abstände also: x=xB-xA;da xB=xC => x=xC-yA y=yC-yB;da yB=yA => y=yC-yA winkel=ATan2(x,y) wie das mit dem winkel aussieht imuss man jetz von der image aus sehen |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm ok.
Danke das du dir die mühe gemacht hast, aber kannst du mir das so erklären das es auch ein 8 klässler checkt??? Und was genau bringt mir das?? Könntest du mir da n beispiel nennen? mfg marius |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
gib mal andere variablennamen an zb: Code: [AUSKLAPPEN] /bild2 / | / y / | / | bild1--x--B x=xBild2-xBild1
y=yBild2-yBild1 winkel=ATan2(x,y) |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, danke, das sah schon besser aus^^
Mal schauen ob ich das richtig verstanden habe. x=x koordinate des 2.bilds - x koordinate des 1.bilds y=y koordinate des 2.bilds - x koordinate des 1.bilds das unten is dann klar. Is das so richtig??? und was bringt mir der winkel dann? muss ich das bild soviel drehen damit es auf das eine bild ausgerichtet ist?? mfg marius P.S.: Sry wenn ich so blöde fragen stelle, aber ich blicks halt noch nich so. |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
nicht nur die Blitzsuche liefert dir Ergebnisse, auch bei Wikipedia sollte man sein Glück versuchen
http://de.wikipedia.org/wiki/Winkel |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
so, habs jetzt selbeer herausgefunden.
Ich habs so gemacht: Code: [AUSKLAPPEN] Graphics 640,480,16,2 SetBuffer BackBuffer() pic1=LoadImage("gegner.png") pic2=LoadImage("kanone.png") gy=400 gx=400 MidHandle pic2 winkel=0 Repeat Cls x=300-gx y=300-gy Winkel=ATan2(x,y) RotateImage pic2,180-winkel DrawImage pic1,gx,gy DrawImage pic2,300,300 Text 20,20,winkel Flip Until KeyHit(1) End so, jetzt will ich aber das sich das bild in jedem schleifendurschlauf an das andere anpasst. Wenn ich das jetzt so lasse wie es gerade ist dreht sich das bild ja immer weiter im kreis, weil als winkel ja immer noch der errechnete grad ist. Wie mache ich das ambesten(Ich hoffe ihr wisst was ich meine) mfg marius |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
das problem ist dass du immer von vorne drehst: nachdem du es um 1° gedreht hast ist das das neue um 0° grdrehte bild....
die 1. idee wäre ein original zu machen das zu kopieren und die kopie zu drehen. danach schmeiß ich die kopie weg und kopiere von neuem.... die 2. idee wäre ein original 360 mal zu kopieren, diese kopien entsprechend zu drehen und dann die gebrauchte kopie z zeichnen die 3. idee wäre dass es keinem schwein auffällt wenn das bild um 5° falsch gedreht ist.... und schon bräuchte man nurnoch 72 bilder was den speicher schont... der entsprechende befehl den du immer braichst ist kopie=CopyImage(original) |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielen dank, Ich hab die 2. verwendet.
Code: [AUSKLAPPEN] Graphics 640,480,16,2 SetBuffer BackBuffer() pic1=LoadImage("gegner.png") pic2=LoadImage("kanone.png") MidHandle pic2 Dim picc2(360) For i = 0 To 360 picc2(i) = CopyImage(pic2) RotateImage picc2(i),i Next gy=400 gx=400 winkel=0 Repeat Cls gy=MouseY() gx=MouseX() x=300-gx y=300-gy Winkel=ATan2(x,y) DrawImage pic1,gx,gy DrawImage picc2(180-Winkel),300,300 Text 20,20,winkel Flip Until KeyHit(1) End Vielen dank nochmal! DU hast das echt gut erklärt. mfg marius |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 1024,768,16,1 SetBuffer BackBuffer() Type player Field x Field y Field mx Field my Field typ Field life Field winkel End Type Dim orange(359) Dim rot(359) Global orangep=LoadImage("gfx\orange.png") MidHandle orangep Global rotp=LoadImage("gfx\rot.png") MidHandle rotp TFormFilter 0 For i = 0 To 359 rot(i) = CopyImage(rotp) RotateImage rot(i),i orange(i) = CopyImage(orangep) RotateImage orange(i),i Next team=Input("2= orange 1=rot: ") p.player=New player p\typ=team Repeat For p.player=Each player p\my=MouseY() p\mx=MouseX() p\x=300-p\mx p\y=300-p\my p\winkel=ATan2(p\x,p\y) If p\typ=1 Then DrawImage rot(180-p\winkel),p\x,p\y If p\typ=2 Then DrawImage orange(180-p\winkel),p\x,p\y Next Until KeyHit(1) warum wird hier nichts angezeigt? |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du bist im Vollbildmode mit DoubleBuffering... Du malst also alles in den Backbuffer und Windows steckt seine Nase nur in Fensteranwendungen... Insofern musst du Flip verwenden. | ||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, das mit dem flip war n blöder fehler^^
Danke. aber ich hab n n neues problem: Code: [AUSKLAPPEN] ;Pfeile abfragen For s.schuss=Each schuss wx=s\x-mx wy=s\y-my s\Winkel=ATan2(wx,wy) s\x = s\x + Sin(-s\winkel)*s\speed s\y = s\y + Cos(-s\winkel)*s\speed DrawImage pfeil(1),s\x,s\y Text 200,200,s\winkel Next Warum bewegt sich der schuss nicht?? mfg Marius |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group