Dim Kollision [gelöst]
Übersicht

![]() |
relentless92Betreff: Dim Kollision [gelöst] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Huhu,
ich programmier mich grad so ein bisschen in Arrays ein. Dazu hab ich vor einen Breakout Clon zu schreiben. Hat soweit alles geklappt, komme ich nun zur Kollision: Wie frage ich die ab? So: Code: [AUSKLAPPEN] Function Colli_Pruefen()
For level1_y=0 To 12 For level1_x=0 To 15 If ImagesCollide(bred,level1_x,level1_y,0,balli,ballx,bally,0) Then Return 1 EndIf ... Next Next End Function Funktioniert es nicht; Die Funktion ist dauerhaft auf 0. Kollidieren soll der Ball: Code: [AUSKLAPPEN] ballx=ballx+Cos(wBall)*ballspeed
bally=bally-Sin(wBall)*ballspeed DrawImage balli,ballx,bally mit einem der Blöcke, dann dreht sich der ball (*-1) und das entsprechende Feld wird auf 0 gesetzt, so das kein Bild mehr gezeichnet wird. Meine Ansätze bis jetzt aber schlugen fehl. Tipps? MfG |
||
~
Fussball spielen viele, Kart fahren nur die Besten. ~ |
- Zuletzt bearbeitet von relentless92 am Fr, Okt 23, 2009 1:04, insgesamt 2-mal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, wo ist denn der Array den du benutzt ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
relentless92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich rausgelassen. Hier isser:
Code: [AUSKLAPPEN] Dim dimLevel1(16,13)
Restore level1 For level1_y=0 To 12 For level1_x=0 To 15 Read dimLevel1(level1_x,level1_y) Next Next Code: [AUSKLAPPEN] Function Level1_Malen()
For level1_y=0 To 12 For level1_x=0 To 15 If dimLevel1(level1_x,level1_y)=1 Then DrawImage bred,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=2 Then DrawImage borange,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=3 Then DrawImage byellow,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=4 Then DrawImage bgreen,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=5 Then DrawImage bmagenta,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=6 Then DrawImage bblue,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=7 Then DrawImage bpink,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=8 Then DrawImage bgray,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=9 Then DrawImage b2hit,level1_x*50,level1_y*20 EndIf If dimLevel1(level1_x,level1_y)=10 Then DrawImage FlashBrick$,level1_x*50,level1_y*20 EndIf Next Next End Function Level ist über Data aufgebaut. /Edit: Das das auch per Select;Case funktioniert, ist mir bekannt ![]() MfG |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oben hast du bei ImagesCollide nur level1_x /y angegeben - zeichnen tust du sie bei level1_x*50 / y*20 ![]() Und wenn du alle Steine in ein Bild packst, kannst du den Parameter Frame benutzen und auf unzählige Abfragen verzichten... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bilder sind normalerweise keine Strings...
Code: [AUSKLAPPEN] FlashBrick$
Kollision am besten mit ImageRectCollide ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
relentless92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch Nicdel, das stimmt schon.
Die Funktion liefert den Pfad zurück. Das ist ein String. ^^ Und danke Xeres, das mit den Frames erleichtert die Abfrage natürlich ![]() |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
"LoadImage" liefert keinen String zurück.
"Handles" sind Integer. Und falls du doch mal unterschiedliche Steinbilder hast, solltest du "Select" zum Unterscheiden benutzen; das ist dann übersichtlicher. mfG mpmxyz Edit: @Nicdel Ah, daran lag es... Ich habe nur eine eckige Klammer darum gesetzt gehabt... Das hatte nicht funktioniert. |
||
- Zuletzt bearbeitet von mpmxyz am Fr, Okt 23, 2009 14:10, insgesamt einmal bearbeitet
![]() |
relentless92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso, na gut.
Die Funktion funktioniert trotzdem, von daher. Aber danke für den Hinweis. Zu dem Select hatte ich schon meinen Senf dazugegeben ![]() MfG |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
@mpmxyz: Um die Befehle so![]() also: Code: [AUSKLAPPEN] [[Befehl]]
|
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group