ImagesCollide erkennt Kolli nicht!
Übersicht

![]() |
ChesterBetreff: ImagesCollide erkennt Kolli nicht! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Titel sagt alles...
Laden und erstellen der Bilder: Global map = CreateImage(500*32, 25*32) Global coll_map = CreateImage(500*32,25*32) Global t1 = LoadImage("GFX\Map\sand.jpg") Global t2 = LoadImage("GFX\Map\himmel.bmp") Global lauf_rechts = LoadAnimImage("GFX\Player\lauf1.bmp",60,150, 0, 3) Global lauf_links = LoadAnimImage("GFX\Player\lauf2.bmp",60,150, 0, 3) MaskImage lauf_rechts, 255, 0, 255 MaskImage lauf_links, 255, 0, 255 SetBuffer ImageBuffer(map) For x = 0 To 500 For y = 0 To 20 DrawImage t2, x*32,y*32 Next Next SetBuffer ImageBuffer(coll_map) For x = 0 To 500 For y = 20 To 25 DrawImage t1, x*32, y*32 Next Next For x = 5 To 10 For y = 15 To 20 DrawImage t3, x*32, y*32 Next Next Hier der Kolli check: For frame = 0 To 2 boden_kolli1 = ImagesCollide(coll_map, 0+viewx, 0+viewy, 0, lauf_rechts, player\x_pos, player\y_pos,frame) If boden_kolli2 = 1 Then speed = 0 Next For frames = 0 To 2 boden_kolli2 = ImagesCollide(coll_map, 0+viewx, 0+viewy, 0, lauf_links, player\x_pos, player\y_pos,frames) If boden_kolli1 = 1 Then speed = 0 Next Kann mir mal jemand sagen was ich falsch mache??? Ich überprüfe die Colli indem ich die colli_Variablen mit text ausgebe, aber die ziegen die ganze Zeit 0 an obewohl er mitten durch den Boden fällt !?! |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
CreateImage(500*32, 25*32) Meine Graka kann solche Bilder nicht mal anzeigen, vielleicht steigt auch die Hardware aus. Ist aber nur eine Vermutung. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir macht das nicht Probleme was das angeht....
PS: wie kann man das sonst noch machen? ABer nachdem diese Frage beendet ist^^ bitte zum thema zurückkejren. |
||
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuch es mal mit:
Code: [AUSKLAPPEN] If ImagesCollide(coll_map, 0+viewx, 0+viewy, 0, lauf_rechts, player\x_pos, player\y_pos,frame) = 1 then
boden_kolli1 = 1 EndIf Der Grund: Am Ende der For-Schleife wird der Wert boden_kolli1 nur auf 1 gestellt, wenn das 2. Frame an die map kommt. Er überprüft damit nur das letzte Frame. |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
das verändert auch nichts daran. | ||
zocker2150 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
HI,
ich würde die Kollision nicht in einer For-Schleife packen. Mach do die Frame-änderung in einer extra Schleife; ungefähr so... Code: [AUSKLAPPEN] If (frame_time + 100) < MilliSecs() Then frame = (frame + 1) Mod 7 frame_time = MilliSecs() End If Anmerkung: Mod 7 wegen meinen 7 Frames die dieses Animationsbild hat. Jetzt kannst du ja die Kollision in der Hauptschleife stehen lassen. Am besten so... Code: [AUSKLAPPEN] If ImagesCollide(coll_map, 0+viewx,0+viewy,0, lauf_links, player\x_pos,player\y_pos,frame) Then
boden_kolli2 = 1 speed = 0 End If Bei den anderen "Lauf-Richtungen" genauso... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group