Figur bild Drehen
Übersicht

Roma3htBetreff: Figur bild Drehen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo... Ich hab mich gestern an die Robsite tuts rangemacht....Erste erfolge... nun hab ich meine Map gemacht und mein spieler.... (bewegbar) jetz hab ich folgendes problem ich möchte das wenn ich auf die rechte pfeil taste gehe der spieler nach rechts kuckt...die Grafik dafür hab ich schon aber ich weis nich so richtig wie ich das machen kann.... | ||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
LoadAnimImage![]() hf! |
||
Roma3ht |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Soll ich das in etwa so machen ?
Code: [AUSKLAPPEN] If Keydown(205) Then
Player = LoadAnimImage = ("PlayerRechts.png") Endif [\code] und am anfang wurde so mein player geladen player = Loadimage ("palyer.png") Hab ich ads richtig verstanden `? |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bilder lädt man nur einmal, und zwar vor der Hauptschleife. Wenn du in der Hilfe ganz nach unten scrollst, wirst du ein Beispiel finden. ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein er meint das so:
du hast also 4 bilder von deinem player(4 blickrichtungen) und die packst du aneinander gereiht in ein bild rein und lädtst das über das LoadAnimImage (ieh bei seinem link nach das ist die funktion erklärt) und anschließend frägst du die tastendrücke ab und stellst den frame des bildes so ein das wenn du hoch drückst der frame aktiv ist in dem der spieler nach oben sieht(für den frame am besten eine variable verwenden heir mal nen codee(ungetestet) Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() spieler=LoadAnimImage("spieler.png",40,60,1,4) frame=1 While Not KeyHit(1) Cls If KeyHit(200) Then frame =1 ;spieler schaut nach oben ElseIf KeyHit(203) frame =2 ;spieler schaut nach links ElseIf KeyHit(208) frame =3 ;spieler schaut nach unten ElseIf KeyHit(205) frame =4 ;spieler schaut nach rechts EndIf DrawImage spieler,spieler_x,spieler_y,frame Flip Wend so in etwa müste das aussehen aber versuch den code zu verstehen nciht nur zu kopieren!!!!! |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich persönlich würde hier eigentlich mit Rotateimage![]() cu, Smily0412 |
||
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 |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kommt auf den anwendungsfall an... bei einem labyrintspiel bietet sich meine variante besser an in 95% der fälle aber wirklich rotateimage.. wobei mir aufgefallen ist das das die funktion seh langsam ist fals es mehrere bilder werden die vorgerendert werden müsen... | ||
CaeSarBetreff: hi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, er meint sicher, er will wie in CS2D die Person so drehen das sie zur maus zeigt, is das in 2D möglich würde mich auch mal interressieren.
mfg |
||
da_pollerBetreff: Re: hi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
CaeSar hat Folgendes geschrieben: Hi, er meint sicher, er will wie in CS2D die Person so drehen das sie zur maus zeigt, is das in 2D möglich würde mich auch mal interressieren.
mfg mal so n fetzen meinerseits: Code: [AUSKLAPPEN] For winkel = 0 To 359
player(winkel)=LoadImage("gfx\player.png") MidHandle player(winkel) MaskImage player(winkel),0,0,255 RotateImage player(winkel),winkel Next und tada shcon hat man 360 player die da hin sehen wo man will :) |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde das bild nur einmal laden und dann mit copy-image kopien erzeugen. Das schont die Festplatte.
Ausserdem muss nicht um 0 grad gedreht werden. Code: [AUSKLAPPEN] player(0)=LoadImage("gfx\player.png") MidHandle player(0) MaskImage player(0),0,0,255 For winkel = 1 To 359 player(winkel) = copyImage(player(0)) RotateImage player(winkel),winkel Next und wer mit maskfarben arbeitet, sollte auch den tformfilter ![]() |
||
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 |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
stimmt die copysache hab ich gar nciht bedacht... mus ich selber mal testen was überhaupt dann schneller ist :) | ||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nichts für ungut, Smily, aber wenn du das schon so optimierst, kannst du auch ruhig erwähnen, dass es absolut unsinnig ist 360 Einzelbilder zu erstellen. 72 Bilder mit jeweils 5 Grad Drehung reichen immernoch völlig. Das schont den Arbeitsspeicher enorm, verkürzt die Ladezeiten und vermindert die Grafikqualität nicht bedeutend (da mti RotateImage gedrehte Bilder so und so nicht sooo toll aussehen.) | ||
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 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Topic :
Oder du hast 4 unterschiedliche Bilder, PlayerOben.PNG,PlayerRechts.PNG etc... Dann lädst du die : Dim PlayerImage(3) PlayerImage(0) = LoadImage("PlayerOben.PNG") PlayerImage(1) = LoadImage("PlayerRechts.PNG") etc. Und dann hasst du ja die Richtung bei der Abrfage der Tasten... Mal dann nur noch das entsprechende Bild ![]() (Übrigens : Das ist fast das gleiche wie LoadAnimImage, mein Beispiel) mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Roma3ht |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok^^ habs auf einer bissel anderen art gelöst...kaum hab ich das rpoblem gelöst kommt ein neues...
Wie bei dem spiel (BoxHead) möchte ich peer taste ich nem jetz mal w eine Tonne Plazieren (auf character position) ich hab das so gemacht If Keydown(17) Then Drawimage Barrel, Playerx,Playery Endif Klappt auch ganz gut aber wenn ich los lasse ist sie weg. und wenn ich meine position ändere ist sie nicht da sie leuchtet nur kurz auf... kann mir jemand helfen ? |
||
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit DrawImage zeichnest Du die Tonne zwar, speicherst ihre Position aber nicht. Einfacher ist es, sich ein zweidimensionales Feld (mit Dim) anzulegen, da kannst Du dann für jede Position speichern, ob sich dort eine Tonne befindet. Also z.B. so:
Code: [AUSKLAPPEN] If KeyDown(17) Then
tonne(spieler_x,spieler_y) = 1 EndIf Das Feld hab ich, wie Du siehst, tonne genannt, die Spielerposition steckt in spieler_x und spieler_y. Ich hab das im Feld so gemacht, dass eine 1 bedeutet, dass dort eine Tonne steht. In der Hauptschleife gehst Du das Feld jetzt durch und zeichnest eine Tonne, wenn das für die aktuelle Position so gespeichert ist: Code: [AUSKLAPPEN] For x=0 To mapsizex
For y=0 To mapsizey If tonne(x,y) = 1 Then DrawImage barrel,x*skalierung,y*skalierung Next Next mapsizex und mapsizey geben die Abmessungen der Karte an, barrel ist das geladene Bild Deiner Tonne, skalierung die Größe Deiner maptiles. |
||
Roma3ht |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja jetz klappts vielen dank^^ | ||
HeiligerBlitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tritium..ich hab das nicht so richtig verstanden kannst du mir pls einen code schicken ? ![]() ![]() ![]() ![]() |
||
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Den Code hab ich in meine Antwort geschrieben. Was genau verstehst Du nicht? | ||
HeiligerBlitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
na soll ich den code einfach so wie er steht einfügen ? und wo ? ich bin noch ein änfänger sry . . . | ||
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dafür, dass man Anfänger ist, braucht man sich nicht zu entschuldigen ![]() Den Code kannst Du so übernehmen, nachdem Du die Namen der Variablen angepasst hast. Das erste Stück Code schreibst Du dahin, wo Deine Tasten abgefragt werden. Das zweite dorthin, wo Deine Map gezeichnet wird. Wenn noch Fragen auftauchen, sag mir bitte, an welcher Stelle genau. Zähl von mir aus zehn oder zwanzig auf, für mich ist es nur viel einfacher, auf eine spezifische Stelle im Code einzugehen als den ganzen pauschal zu erklären. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group