KI-verschiedene Bilder für Laufrichtungen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

KddC

Betreff: KI-verschiedene Bilder für Laufrichtungen

BeitragSa, Aug 11, 2007 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Aug 11, 2007 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Aug 11, 2007 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Aug 11, 2007 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Aug 11, 2007 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Aug 11, 2007 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Aug 12, 2007 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group