Logik Problem (abstände) 2D
Übersicht

![]() |
DottakopfBetreff: Logik Problem (abstände) 2D |
![]() Antworten mit Zitat ![]() |
---|---|---|
HI Blitzer !
Ich steh grad total auf der Leitung und bekomme mein Problem einfach ned gebacken ![]() Also ich erstelle vor spielstart/Hauptschleife 40 Schilder welche ich per zufallsprinzip auf verschiedene x Koordinaten und "Etagen" lege. 1. Stock, 2 Stock ... Das Problem ist nur, dass diese sich überlappen oder zu dicht aneinandergereiht sind. Hmm eine überprüfung muss her --> Ich speichere die alte x koordinate und versuche dan duch abziehen mit der neuen Koordinate die Distanz zu ermitteln. Dabei kann eine positive oder auch negative zahl rauskommen z.B. : (100 - 50 = 50 /\ 50 -100 = -50 ). So und nun wenn die zahl kleiner als das schild selber ist soll das neu erstellte Schild gelöscht werden. Doch das funtz ned wirklich... (Schild erstellung / und prüfung) Code: [AUSKLAPPEN] Type schild Field schild_x Field schild_y Field schild_etage Field schild_hp Field schild_saver End Type For x = 0 To 40 info.schild = New schild etage = Rnd (1,4) If etage = 1 Then etage = 83 ;etagen in y koordinaten umwandeln If etage = 2 Then etage = 243 If etage = 3 Then etage = 423 If etage = 4 Then etage = 556 info\schild_x = Rnd(0,800) info\schild_y = etage info\schild_hp = 100 old = info\schild_x ;alte posi speichern Next ;die überprüfung For info.schild = Each schild If info\schild_x - old <10 Or info\schild_x - old <-10 Then Delete info.schild Next Lieber wäre mir, dass anstatt das schild zu löschen es in eine andere Richtung verschoben wird. Nochwas: Prüft ma die distanz zweier Objekte in 2D irgendwie anders, bzw leichter (wie in 3D mit: "entitydistanz" ) mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If wert < 10 or wert < -10
Siehst du den fehler? ![]() Übrigens gibt es eine tolle ABS-Funktion bei bb |
||
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 |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
nö sry ich will damit die distanz prüfen ...
ein <10 z.B wenn die alte posi(old) = 50 --> 100( x_neu_posi) - old < 10 dan verschiebe das bild ein < -10 z.B wenn die alte posi(old) = 100 --> 90(x_neu_posi) - old < -10 dan verschiebe das bild ABS Functionen ?? Hat sowas nicht ein auto ![]() sry wie gesagt ich stehe auf der leitung ^^ ![]() mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Abs entfernt das Vorzeichen. ![]() |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja aber dan müsste meine überprüfung doch auch funtzen. ich machs halt auf 2 mal. Aber ich seh immer noch ned meinen Fehler. Gott ich komm mir so doof vor ^^ Bin etz auch erstmal weg. Also ned wunderen wenn keine Antwort kommt.
mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast zweimal "kleiner als". Aber beim einen Mal brauchst du ein "größer als" ![]() |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das problem ist das < -10 dummerweise kein radius check gegen die Distanz 10 ist.
Denn das entsprechende dazu wär x > 10 für den positiven bereich ... < -10 zeigt nicht auf 0 sondern auf - unendlich ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
habe gerade ein weiteres problem festgestellt. Ich prüfe immer nur die letzten 2 ereignisse, was dann aber nicht verhindert, dass sich die Schilder überlappen können. Da ich immer von der letzt erstellten postion ausgehe und nicht prüfe ob sich dort an dieser Stelle allgemein bereits ein Schild befindet. Blos wie frage ich ab ob sich dort ein Schild befindet ?? und wenn ja, wie bekomme ich herraus wohin es bewegt werden soll, nicht dass es dan in ein anderes Schild hineingesteckt wird...
mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Krümel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du erstellst dir am Besten ein Type, z.B.
Type Schild Field PositionX Field PositionY end type und testest, bevor du ein neues Schild setzt alle Schilder-Types ob sich eins von ihnen bereits an dieser Position befindet. das könntest du z.B. so machen neuX = rand(0,800) neuY = rand(0,600) neuesSchildSetzen = true for s.Schild = each Schild if RectsOverlap ( s\PositionX , s\PositionY , SchildHoehe , SchildBreite , neuX , neuY , SchildHoehe , SchildBreite) then neuesSchildSetzen = false exit endif next if neuesSchildSetzen = true s.Schild = new Schild s\PositionX = neuX s\PositionY = neuY endif ( Ich habs nicht getestet, aber im Prinzip sollte es funktionieren) |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich kann eine collisionsüberprüfung machen obwohl das objekt noch nicht erstellt wurde, folglich auch nicht existiert ?
Code: [AUSKLAPPEN] if RectsOverlap ( s\PositionX , s\PositionY , SchildHoehe , SchildBreite , neuX , neuY , SchildHoehe , SchildBreite) then neuesSchildSetzen = false ich tüftle mal etz mal rum und es schaut auch so aus als ob das so klappen könnte. Danke ! |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
habs hinbekommen !
Danke an alle die mir geholfen haben mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group