Kollosions Abfrage

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

ssj-goku

Betreff: Kollosions Abfrage

BeitragSo, Aug 15, 2004 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Aug 15, 2004 23:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würd das ganze anders machen, aber naja...
Nimm halt Rectsoverlap oder so.
~ Hey Ho Let's Go ~

ssj-goku

BeitragSo, Aug 15, 2004 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Sad

Hummelpups

BeitragMo, Aug 16, 2004 0:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du Gras mit einem s schreibst und davor mit v anstatt mit f helfe ich dir gerne.

BiZaR

ssj-goku

BeitragMo, Aug 16, 2004 0:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ich beeile mich immer beim schreiben wenn es um solche sachen geht sorry aber du wusstest ja was ich damit gemeint hatte oder?? Embarassed

DivineDominion

BeitragMo, Aug 16, 2004 0:52
Antworten mit Zitat
Benutzer-Profile anzeigen
If posy > 750 Then posy = 650
If posx > 650 Then posx = 750

Das ist kompletter unsinn, tut mir leid Smile
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 Smile

Korrigiert gehts aber Wink

Hilfreich wäre auch, wenn du
If KeyHit(1) Then ende = 1
oder =true schrieben würdest, damit man ausmachen kann Smile

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! Smile
Oder weißt du gar nicht wie das gehen soll? Hast du mit den Rändern doch schon gemacht Smile
christian.tietze@gmail.com - https://christiantietze.de
macOS

Lord_Vader

BeitragMo, Aug 16, 2004 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 16, 2004 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

Kabelbinder

Sieger des WM-Contest 2006

BeitragMo, Aug 16, 2004 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 16, 2004 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
@lord_vader: erstma sorry an dich wegen der überschrift Sad
@all: danke das ihr mir ein bischen weiter geholfen habt Razz


cu

ssj-goku

ssj-goku

BeitragMo, Aug 16, 2004 23:40
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Crying or Very sad

hoffe ihr könnt mir helfen


thx schon mal im voraus

ssj-goku

Hubsi

BeitragDi, Aug 17, 2004 8:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ä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 Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Blitzkrieg Bop

BeitragDi, Aug 17, 2004 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Willst du dich nciht festlegen?
Erst machst du so ein Spiel mit dem Kreuz (siehe oben) und nun auf einmal ne Dim Engine? Shocked
~ Hey Ho Let's Go ~

ssj-goku

BeitragDi, Aug 17, 2004 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
@hubsi : danke für deine hilfe
@blitzkrieg_bop : Das andere habe ich vollendet und mich diesem schwierigerem projekt getraut ^^
 

Blitzkrieg Bop

BeitragDi, Aug 17, 2004 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja... mach doch nen Spaceshooter Very Happy
~ Hey Ho Let's Go ~

ssj-goku

BeitragDi, Aug 17, 2004 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
lol ^^ dazu bin ich noch lange nicht bereit

ssj-goku

BeitragDi, Aug 17, 2004 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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) Confused


thx schon mal im voraus
 

Blitzkrieg Bop

BeitragDi, Aug 17, 2004 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Aug 17, 2004 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo aber meine tiles sind nicht geordnet zb 1ist rasen und 2 wasser und 3 ist wiese und 4 graben Confused dann kann ich das nicht mehr so machen :

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

BeitragDi, Aug 17, 2004 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Theoretisch schon, doch eigentlich sortiert man die Tiles(,oder?)
Ja, müsste so sein.
~ Hey Ho Let's Go ~

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group