Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Game Maker Domäne. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

ghost

Lobbyist

  • »ghost« ist der Autor dieses Themas

Beiträge: 1 023

Aktuelles Projekt: Pyped

  • Private Nachricht senden

1

Sonntag, 23. Dezember 2007, 19:05

Laserstrahl soll an Wand enden

Hiho,
ich habe ein Problem, und zwar...

will ich einen Laserstrahl zeichnen (also simpler mal eine Linie) und will,dass der Strahl an der nächsten Wand endet, wenn das Fadenkreuz hinter dieser Wand ist (ich denke das ist einfach zu verstehen).
Das ganze ist Topdown mit dem Spieler als Anfangspunkt und dem Fadenkreuz/der nächsten Wand als Endpunkt. Leider fällt mir dazu keine Lösung ein, ich kenne nur

GML

1
collision_line
, mit der ich aber nur prüfen kann OB eine Wand dazwischen liegt, und nicht wo der Strahl dann enden soll. Ich habe hierzu auch leider keinen Code Ansatz.

Wie gesagt, einen Anfangs, einen Endpunkt und eine Mauer dazwischen.

Falls es nicht verständlich genug ist, sagt dies bitte und ich werde es weiter erläutern.

Danke schonmal im Voraus, ghost

"Nee, ich trinke keinen Tee, ich bin Atheist." - Helge Schneider

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ghostrider« (23. Dezember 2007, 19:06)


Windapple

Rußverdichter

Beiträge: 3 027

Danksagungen: 17

  • Private Nachricht senden

2

Sonntag, 23. Dezember 2007, 19:07

collision_line gibt die ID der Instanz zurück, mit der die Linie kollidiert. Und die Instanz hat einen x und einen y Wert, mit dem du arbeiten kannst.
"Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
- Joseph Weizenbaum

ghost

Lobbyist

  • »ghost« ist der Autor dieses Themas

Beiträge: 1 023

Aktuelles Projekt: Pyped

  • Private Nachricht senden

3

Sonntag, 23. Dezember 2007, 19:08

Schon klar, aber wenn ich dann die Linie zu dieser Instanz zeichne, ist es auch nicht "an" der Wand, außerdem wird es dann zwangszweise nur an einer Stelle der Wand gezeichnet und nicht so dynamisch wie erwünscht.

"Nee, ich trinke keinen Tee, ich bin Atheist." - Helge Schneider

Windapple

Rußverdichter

Beiträge: 3 027

Danksagungen: 17

  • Private Nachricht senden

4

Sonntag, 23. Dezember 2007, 19:11

Du musst "an" der Wand eben definieren. Wie weit ist das origin der Wand von den äußeren Flächen entfernt? Links, rechts, unten, oben.
Da gibts keine fertige Funktion, das erfordert mathematisches Feingefühl sowas perfekt zu berechnen.
"Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
- Joseph Weizenbaum

ghost

Lobbyist

  • »ghost« ist der Autor dieses Themas

Beiträge: 1 023

Aktuelles Projekt: Pyped

  • Private Nachricht senden

5

Sonntag, 23. Dezember 2007, 19:12

Liegt genau bei 0|0. Ich weiß aber garnicht wie ich das berechnen soll ?(

"Nee, ich trinke keinen Tee, ich bin Atheist." - Helge Schneider

Windapple

Rußverdichter

Beiträge: 3 027

Danksagungen: 17

  • Private Nachricht senden

6

Sonntag, 23. Dezember 2007, 19:13

Wie breit ist die Wand, und wie hoch?
"Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
- Joseph Weizenbaum

ghost

Lobbyist

  • »ghost« ist der Autor dieses Themas

Beiträge: 1 023

Aktuelles Projekt: Pyped

  • Private Nachricht senden

7

Sonntag, 23. Dezember 2007, 19:14

70*70 / 256*256

Ich würde es ja auch selbst probieren wenn du mir die Formel nennen würdest ;)

"Nee, ich trinke keinen Tee, ich bin Atheist." - Helge Schneider

Moolt

Mag Mädchen mit Unterhosen aufm Kopf

Beiträge: 556

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Fortgeschrittener

Danksagungen: 22

  • Private Nachricht senden

8

Sonntag, 23. Dezember 2007, 19:21

Ich hoffe das ist was du möchtest.
Es geht wieder weiter - Aurora ~ [Letzter Eintrag: Samstag, 11.08.2011]

Boddlnagg

Flaschenhals

Beiträge: 378

Selbsteinschätzung: GML Experte

Aktuelles Projekt: MOSA (C#)

  • Private Nachricht senden

9

Sonntag, 23. Dezember 2007, 19:28

Ich hab mir das Beispiel mal angeschaut, dort wird auf der linie von player zu maus einfach alle 5 pixel auf eine kollision mit der wand geprüft. Ich hätte da noch nen anderen lösungsansatz (den poste ich nur, weil ich ihn schon hatte vor Moolt's post):
die wand ist also vertikal, du kannst dann sogar mit dem strahlensatz (eventuell aber auch mit trigonometrie) die koordinaten des schnittpunktes der wand mit der "gedachten" linie berechnen. Ich hab das mal in ner Skizze dargestellt:

Du musst nun nur das Verhältnis von differenz[player.x-maus.x] und differenz[player.x-wand.x] nehmen, und auf die y-Koordinaten anwenden. (Du müsstest den Strahlensatz eigentlich kennen, ansonsten http://de.wikipedia.org/wiki/Strahlensatz (ich rede vom ersten strahlensatz)
“Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

Ich schreibe mit Neo.

ghost

Lobbyist

  • »ghost« ist der Autor dieses Themas

Beiträge: 1 023

Aktuelles Projekt: Pyped

  • Private Nachricht senden

10

Sonntag, 23. Dezember 2007, 19:29

Ok, danke an euch alle, hab das Problem gelöst. :)

"Nee, ich trinke keinen Tee, ich bin Atheist." - Helge Schneider