Seite 1 von 2
Mit Winkeln arbeiten
Verfasst: 31.05.2006 18:37
von Rockmaster
Hi Leute ich wollte mal versuchen zur Übung eine Art imitation von GTA1 zu erstellen...
Mein problem ist, dass wenn man nach links/rechts drückt soll sich die figur langsam drehen (also den winkel ändern).
Das geht ja indem ich den Sprite einfach um X grad drehe aber wie mach ichs nun dass die figur nun in genau diese richtung geht in die sie grade schaut?
Verfasst: 31.05.2006 18:47
von Macros
Code: Alles auswählen
x=x+cos(winkel)*Geschwindigkeit
y=y+sin(winkel)*Geschwindigkeit
Hoffe das stimmt ^^
Verfasst: 31.05.2006 19:06
von Alves
1. Kannst dir auch das Beispiel von Stargate in den Codes anschauen unter 2D Ego irgenwad glaubi ch.
2. Zur Übung??!!
Das mach mal bitte zur Übung!
Verfasst: 31.05.2006 19:45
von Rockmaster
Ich bin ein neues problem gestoßen...
es gibt keine funktion mit der man 2D sprites rotieren kann!
Ich bin noch anänger in grafischer programmierung...
Verfasst: 31.05.2006 19:46
von Jilocasin
Sieh ma im benachbarten Thread nach...
Verfasst: 31.05.2006 21:21
von Rockmaster
Ok das mit dem drehen ist nun kein Problem, aber das mit der bewegungsrichtung check ich einfach nicht!
ich kriegs einfach nicht auf die reihe das die figur in die richtung geht in die sie zugewandt ist...
bitte helft mir
Verfasst: 31.05.2006 21:24
von Alves
Den Link den ich vorhin schon hatte:
Link
Verfasst: 31.05.2006 21:32
von winduff
wenns jeder schaffen würde.... wieviele GTA's hätten wir denn nun... GTA 49? :
das Braucht Zeit.... seeeehr viel Zeit, gutes Konzept usw...
Fang lieber klein an (Tetris, Snake o.Ä)
Verfasst: 31.05.2006 21:36
von Rockmaster
Ja ok ich sagte ja es is nur übung...
ich will einfach nur rausfinden diese winkel engine geht...
ich hab es zwar übernommen, aber es geht trotztdem überhaupt nicht
Die figur schlägt bei mir alle möglichen unlogischen richtungen ein
Mein Codeteil ist folgender:
Code: Alles auswählen
x=300
y=300
w=0
b=3.1415/180
Repeat
ClearScreen($ffffff)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
If KeyboardPushed(#PB_Key_Right)
w=w+2
Start3D()
RotateSprite3D(0,2,1)
Stop3D()
EndIf
If KeyboardPushed(#PB_Key_Left)
Start3D()
RotateSprite3D(0,-2,1)
Stop3D()
EndIf
If KeyboardPushed(#PB_Key_Up)
x=x - Cos(w*b)*5
EndIf
Start3D()
DisplaySprite3D(0,x,y,255)
Stop3D()
Den Y-Teil hab ich noch nicht weil ich erst den X zum laufen kriegen will
Verfasst: 31.05.2006 23:35
von Kaeru Gaman
im code-archiv (zum runterladen auf der PureArea) findest du etliche snippets zu den rotierenden 3D sprites...