Cos() und Sin() Problem!
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok stimmt....gut....nunm uss nur noch diese kleiner zuckler beseitigt werden | ||
~ Hey Ho Let's Go ~ |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
klingt für mich als ob es daher käme dass du die winkel als integer statt float deklariert hast | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das zuckelt komischerweise auch wenn einfach geradeaus fährt (winkel=0). Da weiß ich auch nicht mehr weiter.
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() Global hoch=200,runter=208,links=203,rechts=205,x#=400,y#=400 ; x und y => Float Global speed# = 2 ; Zu Float gemacht winkel=90 Dim image(359) image(0) = LoadImage("kanone.PNG") MidHandle image(0) RotateImage image(0),270 ; Gedreht For a =1 To 359 image(a) = CopyImage(image(0)) MidHandle image(a) RotateImage(image(a),a) Next Repeat Cls DrawImage image(winkel),x,y If KeyDown(rechts) winkel = winkel + 1 EndIf If KeyDown(links) winkel = winkel - 1 EndIf ;wenn winkel < 0 winkel = 359 und umgekehrt: If winkel < 0 winkel = 359 ; ausgebessert If winkel > 359 winkel = 0 ; ausgebessert If KeyDown(hoch) x = x - Cos(Float(winkel))*speed y = y - Sin(Float(winkel))*speed EndIf If KeyDown(runter) x = x + Cos(Float(winkel))*speed y = y + Sin(Float(winkel))*speed EndIf If KeyHit(1) Exit Text 10,10,"Aktueller Winkel:"+winkel ;damit das Objekt an einer anderen Seite rauskommt: If x < - 21 ;links >> rechts x = 810 EndIf If x > 810 ;rechts >> links x = - 21 EndIf If y > 610 ;unten >> oben y = - 60 EndIf If y < -60 ;oben >> unten y = 610 EndIf Flip Forever End |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo weil der winkel wie gesagt in Integer is und damit immer wieder gerundet wird wenn er daneben is. nebenher is deine wrappingfunktion falsch für winkel > 359 bzw. < 0
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() Global hoch=200,runter=208,links=203,rechts=205,x#=400,y#=400 ; x und y => Float Global speed# = 2 ; Zu Float gemacht winkel#=90.0 Dim image(359) image(0) = LoadImage("kanone.PNG") MidHandle image(0) RotateImage image(0),270 ; Gedreht For a =1 To 359 image(a) = CopyImage(image(0)) MidHandle image(a) RotateImage(image(a),a) Next Repeat Cls DrawImage image(winkel),x,y If KeyDown(rechts) winkel = winkel + 1.0 EndIf If KeyDown(links) winkel = winkel - 1.0 EndIf ;wenn winkel < 0 winkel = 359 und umgekehrt: If winkel <= 0.0 winkel = winkel + 360 ; ausgebessert If winkel >= 360.0 winkel = winkel - 360 ; ausgebessert If KeyDown(hoch) x = x - Cos(Float(winkel))*speed y = y - Sin(Float(winkel))*speed EndIf If KeyDown(runter) x = x + Cos(Float(winkel))*speed y = y + Sin(Float(winkel))*speed EndIf If KeyHit(1) Exit Text 10,10,"Aktueller Winkel:"+winkel ;damit das Objekt an einer anderen Seite rauskommt: If x < - 21 ;links >> rechts x = 810 EndIf If x > 810 ;rechts >> links x = - 21 EndIf If y > 610 ;unten >> oben y = - 60 EndIf If y < -60 ;oben >> unten y = 610 EndIf Flip Forever End |
||
- Zuletzt bearbeitet von Dreamora am Do, Apr 08, 2004 22:20, insgesamt 3-mal bearbeitet
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach kein Quatsch ![]() ![]() Aber mal abgesehen davon, was ist daran jetzt besser? (Ich meine nicht die Float-Sache) |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
- Zuletzt bearbeitet von Hubsi am Do, Apr 08, 2004 21:41, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
muss ich dich enttäuschen.
RotateImage hat angle# 0 bis 360 |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also das ruckelt immer noch oder nicht | ||
~ Hey Ho Let's Go ~ |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist klar, aber es ist doch sinnfrei RotateImage mit 0 oder 360 Grad auszuführen? Belehrt mich eines besseren, bis jetzt halte ich das für gequirlten Bullshit ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du redest blödsinn, jo da haste recht.
Ich führe keine Rotationen mit den Winkeln durch sondern wrappe sie an den grenzen. Rotation 0 = rotation 360 sprich zurücksetzen auf ausgangrichtung. und wenn du durchgehend auf rechts drückst wirst du automatisch auf 0 bzw. 360 kommen. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau das meine ich: Das 0 Grad-Bild ist doch haarklein dasselbe wie das 360 Grad-Bild. Also stelle ich den Winkel wenn er 359 überschreitet wieder auf 0 zurück. In Deinem Code wird der Winkel aber erst bei größer 360 zurückgestellt ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bei >= ( habs editiert )
und auf 0 setzen ist falsch! zudem muss der winkel min. 360 sein sonst beginnts eben zu zuckeln wie du ja gemerkt hast. und auf 0 stellen is ebenso falsch sondern winkel - 360 naja jetzt sollte der code funzen und nimmer zuckeln |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kannst du den ganzen code nochmal posten? | ||
~ Hey Ho Let's Go ~ |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Steht doch oben. Mußt nur den kleinen Bug mit den -36.0 nach +360.0 ausbessern.
@Dreamora: Jo, jetzt hab ich das gerafft, lernt man doch nie aus ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
args sorry wegen dem fehler
hab den code nochma editiert jetzt stimmt er ![]() |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das muss aber os heißen oder.
Code: [AUSKLAPPEN] If winkel <= 0.0 winkel = winkel + 360.0 sonst: array index out of bounds |
||
~ Hey Ho Let's Go ~ |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so ein müll ![]() Ich trett glei den source ... hat man davon dass man ne fehlerhafte funktion ebenfalls fehlerhaft umschreibt ... |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Please ignore this ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
- Zuletzt bearbeitet von Hubsi am Do, Apr 08, 2004 22:21, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
habs jetzt nochma angepasst und ich hoffe dieses mal wirklich das letzte mal ...
[EDIT] wozu speichert ihr das eigentlich genau in ein Array?? das is nutzlose speicherverschwendung die es garnicht braucht. Der Rotate Imagebefehl is ja net aus Jux da |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast Du RotateImage schon mal Realtime versucht? Viel Spaß noch ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
args der blurt das bild ... kein wunder wird das so tödlich langsam.
ok nix gesagt deswegen ![]() |
||
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group