Objekte (z.B eine Person) auf Knopfdruck drehen
Übersicht

![]() |
Schnäggli92Betreff: Objekte (z.B eine Person) auf Knopfdruck drehen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo alle. Ich bin noch ein ziemlicher Anfänge ![]() ![]() Ich danke im Voraus für eure Hilfe |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
du musst die Images im vorraus drehen und in einem Dim-Array Speichern und dann für jeden Winkel das entsprechende Bild anzeigen.
mfg |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dazu gibts auch n Tutorial:
http://home.arcor.de/inpac/tut1.htm ... |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok danke ich schau mir das tut mal an | ||
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok das habe ich jetzt gemacht.
Code: [AUSKLAPPEN] Graphics 800,600,32,1
SetBuffer BackBuffer() Dim Auto(359) TFormFilter 0 For winkel = 0 To 359 Auto(winkel) = LoadImage("C:\auto.bmp") RotateImage Auto(winkel),winkel MaskImage Auto(winkel),255,0,255 Next Global x#,y# Global geschwindigkeit#=1 While Not KeyHit(1) Cls If KeyDown(203) Then winkel= winkel -2 If KeyDown(205) Then winkel= winkel +2 If winkel > 359 Then winkel = 0 If winkel < 0 Then winkel = 359 If KeyDown (200) Then x=x + Cos(winkel) * geschwindigkeit y = y - Sin(winkel) * geschwindigkeit EndIf DrawImage auto(winkel),x,y Flip Wend End Jetzt will ich aber dass das Auto immer voraus fährt, also immer der Motorhaube nach. Bei mir fährt dass jetzt irgendwie komisch. Es fährt nicht gerade aus sondern irgendwohin nicht einem Punkt nach. Wie kann ich das jetzt machen? Danke im Voraus |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
Code: [AUSKLAPPEN] y = y - Sin(winkel) * geschwindigkeit
muss so heißen Code: [AUSKLAPPEN] y = y + Sin(winkel) * geschwindigkeit
jetzt dürfte es richtig gehn bei mir gehts so auch... MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke es geht jetzt auch.
Kann ich auch irgendwie die Mitte des Bildes als drehpunkt nehmen? also so dass es sich nicht um die linke obere Ecke dreht sonder in der Mitte des Autos? Ich binn noch ein ziemlicher noob. ^^ ![]() ![]() ![]() |
||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probier es mal mit HandleImage() oder MidHandle(). | ||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
schau dir dazu den befehl "Automidhandle" in der Online Hilfe an!
oder die Befehle die amul gepostet hat MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok danke ich hab das jetzt ma asuprobiert.
Code: [AUSKLAPPEN] Graphics 800,600,32,1
SetBuffer BackBuffer() Dim Auto(359) TFormFilter 0 For winkel = 0 To 359 AutoMidHandle True Auto(winkel)=LoadImage ("C:\auto.bmp") MaskImage Auto(winkel),255,0,255 Next Global x#,y# Global geschwindigkeit#=1 While Not KeyHit(1) Cls If KeyDown(203) Then winkel= winkel -2 If KeyDown(205) Then winkel= winkel +2 If winkel > 359 Then winkel = 0 If winkel < 0 Then winkel = 359 If KeyDown (200) Then x=x + Cos(winkel) * geschwindigkeit y = y + Sin(winkel) * geschwindigkeit EndIf DrawImage auto(winkel),x,y Flip Wend End Jetzt dreht das Bild aber nicht mit also weis ich nicht wohin ich fahre. Kann man das auch irgendwie machen so dass das bild auch mitdreht? Danke |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
warum hast du das rotateimage rausgenommen? | ||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
och man ich bin schon blöd. ![]() ![]() ![]() ![]() |
||
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich hab da mal was probiert. Ja es ist warscheinlich der grösste müll code den ihr je gesehen habt. ![]() ![]() ![]() Code: [AUSKLAPPEN] Graphics 800,600,32,1
SetBuffer BackBuffer() Dim Auto(359) TFormFilter 0 For winkel = 0 To 359 AutoMidHandle True Auto(winkel)=LoadImage ("C:\balken.bmp") MaskImage Auto(winkel),255,0,255 Next Global x#,y# Global geschwindigkeit#=1 Global speed= 10 Global lv1 = LoadImage ("C:\mexico_shooter\Levels\Lv1.bmp") Repeat Cls playermove() DrawImage lv1,0,0 If ImagesCollide(Auto(winkel), x, y,frame1,lv1, 0, 0,frame2) Then speed = 0.6 Else speed = 10 EndIf Flip Until KeyDown(1) Function playermove() If KeyDown(203) Then winkel= winkel -2 If KeyDown(205) Then winkel= winkel +2 If winkel > 359 Then winkel = 0 If winkel < 0 Then winkel = 359 If KeyDown (200) Then x=x + Cos(winkel) * geschwindigkeit y = y + Sin(winkel) * geschwindigkeit EndIf DrawImage Auto(winkel),x,y End Function |
||
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich will eigentlich die ganze auto bewegung in eine funktion packen. Währe sehr nett wenn mir jemand helfen würde. ![]() |
||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
sry war ein totaler scheiß, hab es nur überflogen!
Einfach nicht beachten |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
- Zuletzt bearbeitet von flona am So, Nov 25, 2007 22:51, insgesamt einmal bearbeitet
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
aha ok np aber hast du eine lösung zu meine Problem?? ich wäre dir sehr dankbar. ![]() ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Ja es ist warscheinlich der grösste müll code den ihr je gesehen habt. Das stimmt nicht, hab schon einen (1!) schlimmeren hier gesehen ![]() 1. Was bezweckt deiner Meinung nach diese Schleife? Code: [AUSKLAPPEN] For winkel = 0 To 359
AutoMidHandle True Auto(winkel)=LoadImage ("C:\balken.bmp") MaskImage Auto(winkel),255,0,255 Next Automidhandle gehört mit Sicherheit nicht in die Schleife, das sollte einem auf den ersten blick klar sein. Du lädst 360 mal das gleiche Bild - 1x würde genügen. Normalerweise wird das Codestück verwendet um ein Bild zu drehen, die beiden Leerzeilen wirken, als ob du das willkürlich gelöscht hast. 2. Da wird vermutlich das "Array index of bounds" kommen, weil nach der Schleife winkel=360 ist, und der Array nur bis 359 geht: Code: [AUSKLAPPEN] DrawImage Auto(winkel),x,y Das hättest du mit dem benutzen des Debuggers auch Rückschließen können, wenigstens die genaue Zeile gibt der aus.
Rücke deinen Code ein, und zwar mit Tabs oder Leerzeichen wo du if...then, Schleifen usw. über mehrere Zeilen hast und Leerzeilen wo bestimmte Aktionen durchgeführt werden. Dann schreib dir einen Kommentar hin, was da genau passiert oder passieren soll. Das Wichtigste ist: Lern, was die Befehle die du benutzt eigentlich bewirken - nach deinem Code gibt es da große Mängel. Na denn, mach was draus. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
|
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Schnäggli92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ert ma sorry wegen dem sau code!! ![]() ![]() Code: [AUSKLAPPEN] Graphics 800,600,32,1
SetBuffer BackBuffer() Global speed= 5 Global x = 50 Global y = 450 Global boden = LoadImage ("C:\mexico_shooter\Sonstiges\boden.jpg") Global lv1 = LoadImage ("C:\mexico_shooter\Levels\Lv1.jpg") Dim player(359) TFormFilter 0 AutoMidHandle True For winkel = 0 To 359 player(winkel) = LoadImage ("C:\balken.jpg") RotateImage player(winkel),winkel MaskImage player(winkel),255,0,255 Next While Not KeyHit(1) Cls If KeyDown(203) Then winkel= winkel -speed ; wenn linker pfeil dann dreht sich der player nach links If KeyDown(205) Then winkel= winkel +speed ; wenn rechter pfeil dann dreht sich der player nach rechts If winkel > 359 Then winkel = 0 ; wenn der winkel bei 359 angekommen ist dann soll er wieder auf 0 If winkel < 0 Then winkel = 359 ; wenn der winkel bei 0 ist dann soll er wieder auf 359 If KeyDown(200) Then ; Fortbewegung x=x + Cos(winkel) * speed y = y + Sin(winkel) * speed EndIf DrawImage boden,0,0 DrawImage lv1,0,0 DrawImage player(winkel),x,y If ImagesCollide(player(winkel), x, y,frame1,lv1, 0, 0,frame2) Then ; wenn player und lv1 kollidieren dann speed = 0.6 sonst speed 10 speed = 0.6 Else speed = 10 EndIf Flip Wend End Also so weit so gut. Jetzt gibt es aber immer einen schwarzen rahmen um meinen player. der manchmal kleiner und manchmal grösser wird. Wie kann ich den transparent machen? Und wie kann ich machen das der player nicht durch die wände (also lv1 geht) ? Ich habs jetzt so gemacht dass er einfach stark abbremst wenn man in eine mauer fährt. Ich habs auch schon mal so gemacht dass wen es kollidiert der speed auf null geht, aber dann kann ich ja gar nicht mehr von der wand wegfahren. Gibt es da irgend ein befehl?? Also so dass man nicht durch die wand fahren kann? ich bin euch sehr dankbar. und D2006 so wie meinst du dass mit den 5° ? ich hab so etwas versucht aber wenn ich einfach anstatt 359 72 nehme macht er die drehung nicht fertig und er macht immer noch 1° schritte. ich hab lange probiert 5° schritte hinzubekommen hab das gta-tut 1000 mal studiert bin aber nicht auf eine lösung gekommen. Kannst du das nochma erklären?? Ich danke für euer verständniss mit mir (noob) ![]() ![]() |
||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schnäggli92 hat Folgendes geschrieben: ... und D2006 so wie meinst du dass mit den 5°?
Ich nehme an D2006 meint das so: Code: [AUSKLAPPEN] Dim player(71)
bild=LoadImage ("C:\balken.jpg") For winkel = 0 To 71 player(winkel) = CopyImage(bild) RotateImage player(winkel),winkel*5 MaskImage player(winkel),255,0,255 Next |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group