Kollosions Abfrage
Übersicht

![]() |
ssj-gokuBetreff: Kollosions Abfrage |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ich weis ich frag zu viel aber ich muss lernen ^^
also mein problem ist ich will das das kreuz die schwarzen rechtecke nicht berührt also nicht dadurch geht und den schwarzen bildrand hier ist der code:(der code ist von der Online hilfe auser die rechtecke ^^) Code: [AUSKLAPPEN] Global posX,posY Global ende ;;;;;;;;;;;;;;;;;;;;;; Graphics 800,600,32,2 SetBuffer BackBuffer() ;;;;;;;;;;;;;;;;;;;;;; While ende = 0 Cls Color 0,0,255 Rect 25,25,750,550,1 ;;;;;;;;;;;;;;;;;;;;;; Color 0,0,0 Rect 100,100,50,50,1 Rect 650,100,50,50,1 Rect 100,450,50,50,1 Rect 650,450,50,50,1 ;;;;;;;;;;;;;;;;;;;;;; If KeyHit(1) Then ende = 0 If KeyDown(200) Then posy = posy -4 If KeyDown(208) Then posy = posy +4 If KeyDown(203) Then posx = posx -4 If KeyDown(205) Then posx = posx +4 ;;;;;;;;;;;;;;;;;;;;;; If posy > 750 Then posy = 650 If posy < 35 Then posy = 35 If posx > 650 Then posx = 750 If posx < 35 Then posx = 35 ;;;;;;;;;;;;;;;;;;;;;; Line posx -10,posy,posx +10,posy Line posx,posy -10,posx,posy +10 Flip Wend thx im voraus |
||
- Zuletzt bearbeitet von ssj-goku am Mo, Aug 16, 2004 14:04, insgesamt einmal bearbeitet
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich würd das ganze anders machen, aber naja...
Nimm halt Rectsoverlap oder so. |
||
~ Hey Ho Let's Go ~ |
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hilft mir nicht ganz weiter wäre net wie du das meinst also ob du es mir zeigen könntest ich bin noch ein real noob und hatte dafor nichts mit programmiersprachen am hut das tutorial brachte mich nicht weiter ![]() |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du Gras mit einem s schreibst und davor mit v anstatt mit f helfe ich dir gerne.
BiZaR |
||
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich beeile mich immer beim schreiben wenn es um solche sachen geht sorry aber du wusstest ja was ich damit gemeint hatte oder?? ![]() |
||
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
If posy > 750 Then posy = 650
If posx > 650 Then posx = 750 Das ist kompletter unsinn, tut mir leid ![]() Erstmal gibt es bei 800x600 Aufläsung keine sichtbare y-Position von 750, dann hängt man logischerweise wenn du bei x>650 immer x=750 setzt ![]() Korrigiert gehts aber ![]() Hilfreich wäre auch, wenn du If KeyHit(1) Then ende = 1 oder =true schrieben würdest, damit man ausmachen kann ![]() Außerdem sind Satzzeichen SEHR WICHTIG in deinen Posts. Lass dir also die Zeit um uns zu schonen. Und dann erklär mir mal, wie das Kreuz die Rectecke NICHT berühren sollte, wenn du dafür keine Abfragen hast! ![]() Oder weißt du gar nicht wie das gehen soll? Hast du mit den Rändern doch schon gemacht ![]() |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
TUt mir leid das ichs bei dir sagen muss aber: SCHREIBT DOCH MAL TOPICS WORAUS MAN WAS LESEN KANN WENNS KEINE NOOB FRAGE WÄRE DANN BRÄUCHTEST DU JA AUCH NET FRAGEN DAS IS DOCH NETMEHR GANZ NORMALLLL!!!!!!
Kann das irgent jemand denen mal sagen oder bleibt das an mir hängen, an einem der denen das net vorschreiben kann? MfG Lord_Vader |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habs aufgegeben, ich versuche schon lange die Admins dazu zu bewegen, eine boardregel einzuführen, die in solchen Fällen zu kommentarlosen Löschen des Schwachsinns führt!
Threads die später nimmer verwendet werden können wegen dem Titel haben keine Antwort verdient und werden somit auch net gebraucht. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich würde hier die Koordinaten in einem Dim-Feld speichern und nachher in einer for-schleife überprüfen, ob das kreuz an die Unterseite eines Quadrates stößt, oder an die Oberseite eines Quadrates stößt, oder an die rechte Seite eines Quadrates stößt, oder an die linke Seite eines Quadrates stößt. und entsprechend den Koordinaten-veränderungs-Befehl unterlassen oder durchführen. | ||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
@lord_vader: erstma sorry an dich wegen der überschrift ![]() @all: danke das ihr mir ein bischen weiter geholfen habt ![]() cu ssj-goku |
||
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi zusammen hab da ma wieder ein problem hab mich an etwas schwierigeres gewagt und weis net wie ich die kollision machen soll also hier ist der code:
Code: [AUSKLAPPEN] ;;;;;;;;;;;;;;;RPG Übung Graphics 1024,768,32,2 ;;;;;;;;;;;;;;;GRAFIK LADEN hero = LoadImage("char.bmp") tileset = LoadAnimImage("tile.bmp",31,31,0,5) px = 6 py = 6 move = 1 ;;;;;;;;;;;;;;;MAP Dim map(20,20) ;LEGENDE ;0=rasen(betretbar) + ;1=wasser(unbetretbar) - ;2=stein(unbetretbar) - ;3=erde(betretbar) + ;4=baum(unbetretbar) - Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 Data 4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,1,4 Data 4,1,1,1,1,1,1,1,1,1,2,0,0,0,0,0,0,0,1,4 Data 4,1,1,1,1,1,1,1,1,1,2,0,0,0,0,0,0,0,1,4 Data 4,1,1,1,1,1,1,1,1,1,2,0,0,0,0,0,0,0,1,4 Data 4,1,1,1,1,1,1,1,1,1,2,0,0,0,0,0,0,0,1,4 Data 4,1,1,1,1,1,1,1,1,1,2,0,0,0,0,0,0,0,1,4 Data 4,1,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4 Data 4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4 Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 ;;;;;;;;;;;;;EINLESEN DER MAP For y = 1 To 20 For x = 1 To 20 Read map(y,x) Next Next ;;;;;;;;;;;;;HAUPTSCHLEIFE Repeat SetBuffer BackBuffer() Cls If KeyDown(1) Then End For y = 1 To 20 For x = 1 To 20 DrawBlock tileset,x*31,y*31,map(y,x) Next Next ;;;;;;;;;;;;;;;;;STEUERUNG + KOLLISION If KeyDown(208) Then If map(px,py +1) = 0 And 3 Then py = py +1 move = 1 EndIf EndIf If KeyDown(200) Then If map(px,py -1) = 0 And 3 Then py = py -1 move = 1 EndIf EndIf If KeyDown(203) Then If map(px,py -1) = 0 And 3 Then px = px -1 move = 1 EndIf EndIf If KeyDown(205) Then If map(px,py +1) = 0 And 3 Then px = px +1 move = 1 EndIf EndIf If move = 1 Then x = px * 31: y = py * 31:DrawImage hero,x,y Flip Forever mein problem ist es soll nur der rasen und die erde betretbar sein doch das funktioniert irgendwie nicht ![]() hoffe ihr könnt mir helfen thx schon mal im voraus ssj-goku |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ändere das hier:Code: [AUSKLAPPEN] If map(px,py +1) = 0 And 3 Then inCode: [AUSKLAPPEN] If map(px,py +1) = 0 Or map(px,py +1) = 3 Then Und das bei allen derartigen Abfragen. Wie bist Du eigentlich auf den Mist gekommen? (Ich meine And). In map(x,y) kann ja nie 0 und 3 gleichzeitig gespeichert sein ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Willst du dich nciht festlegen?
Erst machst du so ein Spiel mit dem Kreuz (siehe oben) und nun auf einmal ne Dim Engine? ![]() |
||
~ Hey Ho Let's Go ~ |
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
@hubsi : danke für deine hilfe
@blitzkrieg_bop : Das andere habe ich vollendet und mich diesem schwierigerem projekt getraut ^^ |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja... mach doch nen Spaceshooter ![]() |
||
~ Hey Ho Let's Go ~ |
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
lol ^^ dazu bin ich noch lange nicht bereit | ||
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab da noch ne Frage auf meiner map sollen ja nur zwei dinge betretbar sein und die anderen nicht aber was muss ich machen wenn ich die nun auf mehere tiles erweiter zb: feuer ,graben ... usw wie soll ich dann die kollision machen (me big noob) ![]() thx schon mal im voraus |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Prinzip ist oben erklärt.
Beispiel: Tile 0 bis Tile 10 sind durchgänglich. Tile 11 bis Tile 20 sind undurchgänglich. Das brauchst du dann nur noch mit ner If Abfrage zu schalten und fertig.(siehe oben). - Naja, aber nicht das du mir nun mit RPG, oder Jump'n'Run anfängst. Auch ne Dim Engine wäre schwere als nen Shooter!! |
||
~ Hey Ho Let's Go ~ |
![]() |
ssj-goku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo aber meine tiles sind nicht geordnet zb 1ist rasen und 2 wasser und 3 ist wiese und 4 graben ![]() Code: [AUSKLAPPEN] if keydown(208) then if map(px,py-1) < 2 then;; <<--dann ist nur rassen betret bar und die anderen sachen nicht :? py = py -1 move = 1 oder geht es doch irgendwie?? thx im voraus |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Theoretisch schon, doch eigentlich sortiert man die Tiles(,oder?)
Ja, müsste so sein. |
||
~ Hey Ho Let's Go ~ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group