warum keine collision?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: warum keine collision?

BeitragFr, Jul 21, 2006 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
If ImagesCollide(spieler, x, y, 0, person1,22, 88, 0) Then Print"hallo"

Hi,was stimmt hier nicht???
nach langem versuchen gibt es immer noch keine Kollision?!
 

Dreamora

BeitragFr, Jul 21, 2006 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
gibt es 2 bildreferenzen mit den namen spieler und person1?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

mas93

BeitragFr, Jul 21, 2006 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
WAS MEINST DU DAMIT?
 

Dreamora

BeitragFr, Jul 21, 2006 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das spieler und person1 jeweils ein Bild darstellen, dass du zeichnest etc.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Christoph

BeitragFr, Jul 21, 2006 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Er meint ob du die Bilder geladen hast:
ql:loadimage

mas93

BeitragFr, Jul 21, 2006 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab die Bilder geladen und es sind 2 einzelne bilder

Christoph

BeitragFr, Jul 21, 2006 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Kommt eine Fehlermeldung, wenn ja welche?

mas93

BeitragFr, Jul 21, 2006 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
es kommt keine Fehlermeldung.
Das Erste Bild geht einfach unter das 2.
Hir der code:

AppTitle "Imperial Quests I Nakobiin"
SetBuffer BackBuffer()

Graphics 1280, 1024,16,1

x=615
y=970
;laden
karte=LoadImage("Bilder/s.bmp")
spieler=LoadImage("Bilder/Mann Süd Drachen .bmp")
strich=LoadImage("Bilder/strich.bmp")
cover=LoadImage("Bilder/Cover.bmp")
laufen = LoadSound("Sounds/laufen.wav")
rennen=LoadSound("Sounds/rennen.wav")
button1=LoadImage("Bilder/button1.bmp")
menü=LoadImage("Bilder/amenü.bmp")
button2=LoadImage("Bilder/button2.bmp")
button3=LoadImage("Bilder/button3.bmp")
maus=LoadImage("Bilder/maus.bmp")
person1=LoadImage("Bilder/Mann Süd Stahl.bmp")
PlayMusic ("Sounds/start.wav")
Color 80, 100, 200

Print"Dieses Spiel ist hergestellt und erfunden von"
Print" Lu-Pa-Jama06"
Print"Tastatur besetzung"
Print"Bewegen ------> Pfeiltasten"
Print"Schlagen ------> E"
Print"Sprinen ------> F"
Print"Beutel öffnen -> Tab"
Print"Weiter mit Enter"
WaitKey
Cls

MaskImage maus,0,0,255

Repeat

DrawImage menü,0,0
DrawImage button1,204,306
DrawImage button2,207,352
DrawImage button3,207,404
DrawImage maus,MouseX(),MouseY()
Flip
Cls
If ImagesCollide(maus, x, y, 0, button1, 204, 306, 0) Then End
If ImagesCollide(maus, x, y, 0, button2, 207, 352, 0) Then End
If ImagesCollide(maus, x, y, 0, button3, 207, 404, 0) Then End
Until MouseHit(1)

;MASK
MaskImage spieler,0,0,255
MaskImage person1,0,0,255

;laufen
Repeat

If KeyDown(200) Then y=y-1 ;Oben
If KeyDown(208) Then y=y+1 ;Unten
If KeyDown(203) Then x=x-1 ;Links
If KeyDown(205) Then x=x+1 ;Rechts

If KeyDown(72)Then y=y-5 ;Oben
If KeyDown(76) Then y=y+5;Unten
If KeyDown(75) Then x=x-5 ;Links
If KeyDown(77) Then x=x+5 ;Rechts



Cls
;collisionen
If ImagesCollide(spieler, x, y, 0, strich, 84, 90, 0) Then End
If ImagesCollide(spieler, x, y, 0, strich, 287, 89, 0) Then End
If ImagesCollide(spieler, x, y, 0, strich, 489, 89, 0) Then End
If ImagesCollide(spieler, x, y, 0, person1,22, 88, 0) Then



DrawImage karte, 0, 0
DrawImage strich,84,90
DrawImage spieler, x, y
DrawImage strich,287,89
DrawImage strich,489,89
DrawImage person1,22,88
Flip


Repeat
If KeyDown(72) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(rennen)
EndIf
Until Not KeyHit(72)

Repeat
If KeyDown(75) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(rennen)
EndIf
Until Not KeyHit(75)

Repeat
If KeyDown(76) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(rennen)
EndIf
Until Not KeyHit(76)

Repeat
If KeyDown(77) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(rennen)
EndIf
Until Not KeyHit(77)



Repeat
If KeyDown(205) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(laufen)
EndIf
Until Not KeyHit(205)

Repeat
If KeyDown(203) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(laufen)
EndIf
Until Not KeyHit(203)

Repeat
If KeyDown(208) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(laufen)
EndIf
Until Not KeyHit(208)

Repeat
If KeyDown(200) Then
If ChannelPlaying(channel) = 0 Then channel = PlaySound(laufen)
EndIf
Until Not KeyHit(200)

;Bis ESC gedrückt

Until KeyHit(1)
End

Christoph

BeitragFr, Jul 21, 2006 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir klappt der Code nicht:

Code: [AUSKLAPPEN]
If ImagesCollide(spieler, x, y, 0, person1,22, 88, 0) Then

Hier öffnest du etwas dass nicht mehr geschlossen wird


Benutze Code-Tags für dein Code.
  • Zuletzt bearbeitet von Christoph am Fr, Jul 21, 2006 21:05, insgesamt einmal bearbeitet
 

Dreamora

BeitragFr, Jul 21, 2006 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Da Fallen mir 2 Dinge auf:

1. Wo endet das IF, welches hier das Problem ist? So wie ich das sehe nirgends ...

2. Die Repeat - until innerhalb der Hauptschleife sind so eigentlich falsch. Was du dort bräuchtest sind "state variablen" die du setzt wenn du den sound startest und die sagen welcher sound gerade läuft. so wie das dort aktuell ist, führt das über kurz oder lang garantiert zu problemen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

mas93

BeitragFr, Jul 21, 2006 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
If ImagesCollide(spieler, x, y, 0, person1,22, 88, 0) Then Print "hallo"
so sollte das heißen.Geht aber trotzdem nicht!!
 

Dreamora

BeitragFr, Jul 21, 2006 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist spieler überhaupt je an der Position, so das es kollidieren könnte?
Ach ja, du hast net eventuell ne Geforce mit älterem treiber oder?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Rone

BeitragSa, Jul 22, 2006 0:39
Antworten mit Zitat
Benutzer-Profile anzeigen
aaaargh...
Dein Code ist ja der ober Horrer! Shocked Lies dir mal nen paar sachen aus dem Codearchiv oder so durch, damit du siehst wie du deinen Codes besser strukturierst...

Das sollte eigendlich alle Fragen diesbezüglich beantworten Rolling Eyes :
Code: [AUSKLAPPEN]
Graphics 640,480,16
SetBuffer BackBuffer()

;#####################################################
;Grafiken erstellen
Global gfxBox=CreateImage(50,50)
Global gfxCircle=CreateImage(50,50)
SetBuffer ImageBuffer(gfxBox)
Color 0,0,255
Rect 10,10,30,30,1
SetBuffer ImageBuffer(gfxCircle)
Color 255,0,0
Oval 10,10,30,30,1
SetBuffer BackBuffer()
;#####################################################

Global boxX=Rnd(50,610)
Global boxY=Rnd(50,430)
Global x=100,y=100

Repeat
   Cls
   Steuerung()
   checkColli()
   DrawScreen()
   Flip
Until KeyHit(1)

EndGraphics
End

;#####################################################

Function Steuerung()
   Local move=0
   If KeyDown(200) Then
      y=y-5 
      move=1
   ElseIf KeyDown(208) Then
       y=y+5 
   EndIf
   If KeyDown(203) Then
      x=x-5 
   ElseIf KeyDown(205) Then
      x=x+5
   EndIf 
   If move Then
      ;If ChannelPlaying(channel) = 0 Then channel = PlaySound(rennen)
   Else
      ;If ChannelPlaying(channel)  Then StopChannel(channel)
   EndIf
End Function

;#####################################################

Function checkColli()
   If ImagesCollide(gfxCircle,x,y,0,gfxBox,boxX,boxY,0) Then
      Text 10,10,"Collision"
   EndIf
End Function

;#####################################################

Function DrawScreen()
   DrawImage gfxBox,boxX,boxY
   DrawImage gfxCircle,x,y
End Function

;#####################################################


Und zum zweiten mal:
Guck mal in die Onlinehilfe !!! Dann würde ein solches Code-Chaos garnicht erst entstehen...


mfg
Rone

Christoph

BeitragSa, Jul 22, 2006 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Ist spieler überhaupt je an der Position, so das es kollidieren könnte?

Ja.

Schau:
Code: [AUSKLAPPEN]
If ImagesCollide(spieler, x, y, 0, person1,22, 88, 0) Then Print"hallo"
DrawImage spieler, x, y
DrawImage person1,22,88


Es müsste an etwas anderem liegen... Confused

Hubsi

BeitragSa, Jul 22, 2006 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Thema liegt inzwischen ja schon 3? mal vor: https://www.blitzforum.de/foru...hp?t=18969 Very Happy

Sein problem ist das viele geflippe und gelösche Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group