Cos() und Sin() Problem!
Übersicht
BlitzBasic
AllgemeinGehe 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
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
