KI-verschiedene Bilder für Laufrichtungen
Übersicht

![]() |
KddCBetreff: KI-verschiedene Bilder für Laufrichtungen |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi....ich probiere grade n bisschen mit 2D rum und mache grade sonne kleine KI...
funktioniert auch alles wunderbar nur es ist eben so, dass egal wohin sich die figur bewegt das bild ja immer nur in eine richtung zeigt. deshalb habe ich dann verschiedene Bilder gemalt...jeweils für die richtungen links, rechts,oben und unten. und nun möcht ich ebenhalt, dass dann automatisch das bild für die richtige richtung gemalt wird und das alte gelöscht wird, eben je nachdem in welche richtung sich das vieh bewegt. hier ist kurz n codeschnipsel Code: [AUSKLAPPEN] If ki2x < ki2gotox Then ki2x = ki2x + 1 If ki2x > ki2gotox Then ki2x = ki2x - 1 If ki2y < ki2gotoy Then ki2y = ki2y - 1 If ki2y > ki2gotoy Then kI2y = ki2y + 1 Könntihr ma sagen wie man das macht? wenn ihr noch mehr code oder ander informationen benötigt sagt einfach besceid Danke |
||
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hay. Also ich weiß zwar nicht genau was du bezwecken wilst aber ich würde es warscheinlich so machen.
Code: [AUSKLAPPEN] Dim RichtImg(3) RichtImg(0)=Loadimage("Links.Bmp") RichtImg(1)=Loadimage("Rechts.Bmp") RichtImg(2)=Loadimage("Oben.Bmp") RichtImg(3)=Loadimage("Unten.Bmp") RiX=0:RiY=0 If ki2x < ki2gotox Then ki2x = ki2x + 1:Richt=1 If ki2x > ki2gotox Then ki2x = ki2x - 1:Richt=0 If ki2y < ki2gotoy Then ki2y = ki2y - 1:Richt=2 If ki2y > ki2gotoy Then kI2y = ki2y + 1:Richt=3 DrawImage RichtImg(Richt),X,Y |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If ki2x < ki2gotox Then ki2x = ki2x + 1: bild = bild_rechts
If ki2x > ki2gotox Then ki2x = ki2x - 1: bild = bild_links If ki2y < ki2gotoy Then ki2y = ki2y - 1: bild = bild_oben If ki2y > ki2gotoy Then kI2y = ki2y + 1: bild = bild_unten bild ist dann das Bild, was gemalt wird. bild_oben, bild_unten usw. sind die 4 Richtungsbilder. edit: wieder zu langsam. Aber das Dim-Feld müsste mit 4 initialisiert werden, oder? |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
KddC |
![]() Antworten mit Zitat ![]() |
---|---|---|
also erst einmal danke...aber wenn ich das mache so wie von matthias dann hängt sich das nach ner minute auf und sagt memory acces violation...und es wird die ganze zeit nur da bild gezeigt von der richtung in die sich das vieh zuerst bewegt hat...und zum zweiten: Muss ich das da auch mit nem Dim Feld machen?
mfg |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nee musst du nicht.
Du musst aber noch die Bilder erstellen Code: [AUSKLAPPEN] bild_rechts = loadImage("rechts.bmp")
bild_links = loadImage("links.bmp") . . |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achso du willst eine Dynamiche bewegung machen. Dann habe ich dich wol falsch verstanden.
Dann würde ich das mit ATan2 machen also so am besten. Code: [AUSKLAPPEN] Dim Fahrzeug(16) Fahrzeug(0)=Loadimage("Auto000C.Bmp") Fahrzeug(1)=Loadimage("Auto022C.Bmp") ... Fahrzeug(15)=Loadimage("Auto337C.Bmp") Winkel=Atan2(ki2gotox-Ki2x,ki2gotoy-ki2y)+180 Frame=Winkel/Float(22.5): If ki2x < ki2gotox Then ki2x = ki2x + 1 If ki2x > ki2gotox Then ki2x = ki2x - 1 If ki2y < ki2gotoy Then ki2y = ki2y - 1 If ki2y > ki2otoy Then kI2y = ki2y + 1 DrawImage Fahrzeug(Frame),ki2x,ki2y Wäre jetzt zb für ein Fahrzeug gedacht das du in 16Richtungen drehen wilst. Bei dem ATan2 mußt du ein bissen abstimmen bis der Winkel mit den Frames übereinstimmt. Oder du schaust einfach mal da rein. https://www.blitzforum.de/foru...hp?t=23931 Gruß Matthias |
||
![]() |
KddC |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool...danke jetzt gehts........is genau das was ich gesucht hab.......tut mirleid wenn ich meine frage n bisschen missverständlich erklärt habe.
mfg |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group