Ein Rect aus Type und ein rect auf Collision prüfen?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Schranz0r

Betreff: Ein Rect aus Type und ein rect auf Collision prüfen?

BeitragSa, Sep 02, 2006 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Folgendes hab ich grad versucht:

Code: [AUSKLAPPEN]

Graphics 800,600,0,2
AppTitle "Dimversuch"


Global tile = LoadImage("teil.bmp")
Global tilesize = 20

Type teil
  Field X
   Field Y
End type


Repeat
   Cls
   
Mx = MouseX()
My = MouseY()

For X = 0 To 9
For Y = 0 To 9
teil.teil = New teil
    Rect X*tilesize, Y*tilesize, 20, 20, 0
Next   
Next   

Rect Mx, My, 1, 1, 1
   
FOR teil.teil = EACH teil
      IF RECTSOVERLAP (X, Y,20,20, Mx, My, 1, 1) THEN
      TEXT 0,0, teil\X
    END IF
Next

Flip
   
Until KeyHit(1)


Also er soll mir die Teil\X ausgeben wenn das kleine 1x1 rect im feld ist
geht aber irgendwie net Confused
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Smily

BeitragSa, Sep 02, 2006 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Code: [AUSKLAPPEN]
For X = 0 To 9
For Y = 0 To 9
teil.teil = New teil
    Rect X*tilesize, Y*tilesize, 20, 20, 0
Next   
Next   

Rect Mx, My, 1, 1, 1
   
FOR teil.teil = EACH teil
      IF RECTSOVERLAP (X, Y,20,20, Mx, My, 1, 1) THEN
      TEXT 0,0, teil\X
    END IF
Next


Die Abfrage würde ich mit in die schleife machen.
Ausserdem gibt es keine Abstände zwichen den Quadraten, soweit ich das hier sehe (20*20 Groß und einen Abstand von 20). ist das so beabsichtigt?
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Schranz0r

BeitragSa, Sep 02, 2006 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ja schau dir doch mal das ding an Very Happy
Das gibt so ne art Gitternetz


Ist will doch nur Prüfen ob das kleine Rect im Type Rect drin ist, wenn ja dann soll der mir als wert einfach den X wert wiedergeben!

Weil wenn der das Type Rect zeichnet, muss er sich ja auch die X und Y position von dem Teil merken oder etwar nicht ??
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • Zuletzt bearbeitet von Schranz0r am Sa, Sep 02, 2006 22:11, insgesamt 2-mal bearbeitet
 

Florian

BeitragSa, Sep 02, 2006 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Code: [AUSKLAPPEN]

Type teil
  Field X
   Field Y
  Field X2
   Field Y2
End type


Müste der Type Teil nicht so aussehen?

MfG

Florian



[/code]

Schranz0r

BeitragSa, Sep 02, 2006 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Florian hat Folgendes geschrieben:
Hallo

Code: [AUSKLAPPEN]

Type teil
  Field X
   Field Y
  Field X2
   Field Y2
End type


Müste der Type Teil nicht so aussehen?

MfG

Florian



[/code]



Wieso den?

Was bring mir den X2 und Y2 ???
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Smily

BeitragSa, Sep 02, 2006 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wird nur X und Y benötigt, da Schranz0r die Zweiten Koordinaten mit Tilesize festlegt.

ich schau mir das Teil mal an hab zur Zeit sowiso nichts zu tun.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Smily

BeitragSa, Sep 02, 2006 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Teil ist irgendwie eine Totale Katstrophe *sry*

Versuch es am besten nochmal ganz von vorne und mach dir erstmal notizen, was dein Programm genau soll.

- Grafikmodus Festlegen, Types Definieren etc
- 10*10 Tiles anlegen. und Koordinaten zuordnen (Ausserhalb der Schleife machen, da du die ganzen Tiles ja nur einmal anlegen willst. Und dann die Variablen zuordnen. Sonst bringts dir ja nichts)
- dann erst beginnt die Schleife
- Jedes Tile Zeichnen und die Kollisionsabfrage.
- schleife zuende

Solltest du allerdings das nur als Raster verwenden wollen, dann Nimm lieber gar keine Types.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Blood Brother

Betreff: Re: Ein Rect aus Type und ein rect auf Collision prüfen?

BeitragSa, Sep 02, 2006 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Schranz0r hat Folgendes geschrieben:
Folgendes hab ich grad versucht:

Code: [AUSKLAPPEN]

Graphics 800,600,0,2
AppTitle "Dimversuch"


Global tile = LoadImage("teil.bmp")
Global tilesize = 20

Type teil
  Field X
   Field Y
End type


Repeat
   Cls
   
Mx = MouseX()
My = MouseY()

For X = 0 To 9
For Y = 0 To 9
teil.teil = New teil
    Rect X*tilesize, Y*tilesize, 20, 20, 0
Next   
Next   


Also er soll mir die Teil\X ausgeben wenn das kleine 1x1 rect im feld ist
geht aber irgendwie net Confused

Lass mich raten: Er gibt statt dem richtigen Wert immer 0 zurück?
Liegt ganz einfach daran, dass du teil\x nie einen Wert zuweist.
Du erstellst in der For Schleife zwar die Type-Einträge weist den Type-Fields aber keinerlei Werte zu.
Probiers mal so in etwa:
Code: [AUSKLAPPEN]

For x=...
For y=...
 teil.teil = New teil
 teil\x=x
 teil\y=y
 rect...
next
next


Gruß

Blood Brother

Schranz0r

BeitragSa, Sep 02, 2006 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
jo hab jetzt mit DIM gemacht, aber ist halt nur gefaket die anzeige der mausposition

Code: [AUSKLAPPEN]

Graphics 800, 600, 0, 2
SetBuffer BackBuffer()

Dim Feld(39,29)

Restore Spielfeld
For y = 0 To 29
  For x = 0 To 39
     Read Feld(x,y)
   Next
Next

Repeat
Cls
Color 255,255,255
For y=0 To 29
    For x=0 To 39
      map = Feld(x,y)
      If map = 0 Then Rect x*20, y*20, 20, 20, 0
         If map = 1 Then Rect x*20, y*20, 20, 20, 1
    Next
Next

Mx = MouseX()/20
My = MouseY()/20

If Feld(Mx,My) = 0 Then
    Rect Mx*20, My*20, 20, 20, 1
EndIf   

Color 255,0,0
  Text 5,5,"Feld X: "+Mx
  Text 5,25,"Feld Y: "+My

Flip
Until KeyHit(1)

.Spielfeld
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

   
   
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group