Donnerstag, 9. September 2010, 06:31 UTC+2

Du bist nicht angemeldet.

  • Anmelden
  • Registrieren

Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

1

Sonntag, 31. Januar 2010, 16:01

Gegner Programmieren in GML

Wir habe folgendes Problem:

wir haben einen gegner der automatisch auf unseren held schießen sollte, er sollte zuerst prüfen wo unser held steht und je nach dem in die richtige richtung schießen.

BITTE UM HILFE! :)


MasterXY

***Gold***

Beiträge: 1 225

Danksagungen: 4

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Experte

Aktuelles Projekt: Geheimprojekt mit Soul Reaver, Hard Recoil

Wohnort: Steiermark

Beruf: Zivi

1 Auszeichnung

2

Sonntag, 31. Januar 2010, 16:57

Verwende mal die Suche. Dieses Thema gabs schon unzählige Male.

© 2008 by Teamgrill Productions


SpeedFreaK

Yen-Schein

Beiträge: 303

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: GM Pause

Wohnort: Nähe Hamburg

Beruf: Berufsschule (Bereich Elektrotechnik)

3

Sonntag, 31. Januar 2010, 18:27

GML

1
2
schussrichtung=point_direction(x,y,gegner.x,gegner.y);
image_angle=schussrichtung;

Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

4

Donnerstag, 4. Februar 2010, 18:13

GML

1
2
3
4
5
6
7
8
9
10
11
12
13
if distance_to_object(WeiserMagier) < 60
{
if x>WeiserMagier.x then x-=3
else
if x<WeiserMagier.x then x+=3
}

if distance_to_object(WeiserMagier) < 60
{
if y>WeiserMagier.y then y-=3
else
if y<WeiserMagier.y then y+=3
}


So mit dem Code hab ich das jetzt mal probiert -

aber da sind noch paar andere Probleme

1.) Der Weise Magier wackelt extrem wenn er sich bewegt
2.) Er kann schief gehen (wie macht man das er nur Waagrecht und Senkrecht gehen kann?)
----
3.) Wie kann man die sprites zu denn verschiedenen Richtungen definieren mit sprite_index funktioniert das bei mir nicht
4.) Bei einem Abstand von 30 soll er eine Kugel schießen_> hab paar sachen außprobiert aber immer schießt er in alles vier richtungen unendlich kugeln

für Hilfe wäre ich sehr Dankbar ! ! ! sehr, sehr Dankbar ! ! !


Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

5

Freitag, 5. Februar 2010, 15:32

Weis jemand wenigstens eine Lösung zu einem der 4. Punkte ^^ würde mir sehr weiterhelfen

MfG


peyj

Konfetti

Beiträge: 84

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: verschiedene kleinere sachen

Beruf: Schüler

1 Auszeichnung

6

Freitag, 5. Februar 2010, 16:52

aber da sind noch paar andere Probleme

1.) Der Weise Magier wackelt extrem wenn er sich bewegt
2.) Er kann schief gehen (wie macht man das er nur Waagrecht und Senkrecht gehen kann?)
----
3.) Wie kann man die sprites zu denn verschiedenen Richtungen definieren mit sprite_index funktioniert das bei mir nicht
4.) Bei einem Abstand von 30 soll er eine Kugel schießen_> hab paar sachen außprobiert aber immer schießt er in alles vier richtungen unendlich kugeln
zu 1. du könntest z.B. anstatt die Bewegung direkt auszuführen eine Variable machen (oder speed und direction verwenden) und nur jede Sekunde oder so die Richtung wechseln.
zu 2. einfach in Zeile 7 ein else einsetzen, dann wird der untere Teil nicht ausgeführt, wenn der obere schon ausgeführt wurde.
zu 3. was genau funktioniert nicht??
zu 4. wenn er schießt, ein Kugelobject erstellen, und im create event des Objects direction und speed definieren. Dafür solltest du am besten point_direction(self.x,self.y,obj_player.x,obj_player.y) verwenden.

Sag wenn noch was unklar ist. ^^

Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

7

Samstag, 6. Februar 2010, 14:52

GML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if distance_to_object(WeiserMagier) < 130
{
{
if x>WeiserMagier.x then {speed = 2.5; direction = 180;}
else
if x<WeiserMagier.x then {speed = 2.5; direction = 0;} 
}
{
if y>WeiserMagier.y then {speed = 2.5; direction = 90;}
else
if y<WeiserMagier.y then {speed = 2.5; direction = 270;}
}
}

if distance_to_object(WeiserMagier) > 130
{speed=0}


Ok soweit funkt es aber - es kommt aber vor wenn er auf gleicher y höhe wie der magier steht, das er stecken bleibt ^^ also er wechsel jede milisekunde das sprite (oben u. unten)
und er kann nicht mehr nach links oder rechts gehen, außer man bewegt sich rauf oder runter - hat vielleicht wer eine Idee wie man das lösen könnte?


Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

8

Montag, 8. Februar 2010, 14:34

Tut mir leid hab es unverständlich ausgedrückt - Der Gegener verfolgt den Magier korrekt, aber es kommt häufig vor das der Gegner wenn er auf gleicher Höhe wie der Magier ist, ständig zwischen rauf und runter wechsel und dabei einfriert (der Gegner kann sich nicht mehr Bewegen) außer wenn der Held rauf oder Runter geht -

Please Help ^^

MfG


Beiträge: 38

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

Wohnort: Deutschland

Beruf: -

9

Montag, 8. Februar 2010, 16:21

Hi,

ich hab das mal getestet. Das "gezappel" kommt daher, das du nur abfragst, wenn x bzw. y größer oder kleiner sind, aber du fragst nicht ab was passiert wenn x = magier.x oder y = magier.y.

Zu deinem diagonalen laufen Problem, wenn du eh nur 4 richtungen hast und der Gegner ebenso nur so laufen sollen, warum richtest du nicht alles am Grid aus? Für den Gegner erstellst du jedesmal nen Pfad wenn der magier in der Nähe ist. Zudem kann dein Gegner dann auch Objekten ausweichen.

Sorry ... ich muss erstmal los ...

Gruß BM
Es gibt viel zu tun, packen wir´s an !!!

Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

10

Montag, 8. Februar 2010, 17:20

Beispiel

Kannst mal Bitte ein Beispiel zum abfragen von x.Magier, y.Magier - dem jetzt läuft der Gegner weg ^^


Beiträge: 38

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

Wohnort: Deutschland

Beruf: -

11

Montag, 8. Februar 2010, 20:36

Hi,

ich habs damit gelöst:

GML

1
position_meeting(x,y,obj)


Im Anhang noch das Sample. Ich hoffe es hilft dir.

Gruß BM
»Black-Mask« hat folgende Datei angehängt:
  • gegner_test.zip (2,05 kB - 24 mal heruntergeladen - zuletzt: 14. August 2010, 19:02)
Es gibt viel zu tun, packen wir´s an !!!

Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

12

Mittwoch, 10. Februar 2010, 14:59

Getestet

Wir haben position_meeting getestet, aber hat nicht so funktioniert wie bei deinem beispiel.

Deshalb haben wir jetzt unser problem im anhang UPGELOADED.
!Bitte um Hilfe!
»game.producers« hat folgende Datei angehängt:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »game.producers« (10. Februar 2010, 15:09)


Beiträge: 38

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

Wohnort: Deutschland

Beruf: -

13

Mittwoch, 10. Februar 2010, 16:18

Hi erstmal.

Ehrlich gesagt, ist da so viel sinnloser Quatsch drin (...sorry wenn ich das so schreib), da muss ich erstmal ne menge löschen.

Warum x verändern wenn Speed und Direction das für dich tun(auf tastenduck)? Warum Stop und zusätzliche spritechange befehle auf tasten release?
Wofür image_speed? ?(
Die Y- Ackse ist eine Vertikale Linie, quasi von oben nach unten. Wenn dein Magier hoch oder runter geht wird x erhöht? Für mich nich begreiflich!!!

Masken für die depth sind ok, aber machen in deinem fall so keinen sinn dann brauchste keine. Wenn du eine Maske erstellst, sollte diese nur den Fuß Bereich abdecken!

Warum dein grid 4 x 9 ist versteh ich leider auch nicht so recht, aber jeder wie er mag.
Ggf. liegt hier dein eigentliches Problem, teste ich gleich mal mit.

Nachdem ich erstmal den ganze "Unrat" bei Seite gepackt habt, zu deinem eigentlichen Problem ... Mist ... muss erstmal los.

Soweit aber schon mal dein File ... bissi gefixed ... denke durch die verschiedenen Masken ensteht das gezucke... ich schaus mir ggf heute abend noch mal an.

Gruß BM


EDIT: Ich hab entdeckt, dass deine Sprites(denke lag am weißen magier strip) irgendwo nen fehler hatten, ich hab alle seperat rausgespeichert und nen komplett neues File erstellt. Du müsstest nun nur wieder deine Room + View Settings ändern, dann kannste weiter ackern(In diesem File!!! um weitere Fehler zu vermeiden!!!).

Zudem haben irgendwie alle Sprites ne andere Höhe bzw. Breite. Wenn du Sprites im Gamemaker erstellst, bastel erstmal alle Ansichten in einem Sprite(siehe File) dann ist es später leichter zu coden(find ich) und zu checken ob Fehler sind.

Gutes gelingen

Gruß BM
»Black-Mask« hat folgende Datei angehängt:
Es gibt viel zu tun, packen wir´s an !!!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Black-Mask« (11. Februar 2010, 19:24)


Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

14

Samstag, 13. Februar 2010, 14:18

Hat irgendjemand eine Lösung?

BITTE ;(


Beiträge: 38

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

Wohnort: Deutschland

Beruf: -

15

Samstag, 13. Februar 2010, 14:31

Hey,

haste mein Edit gar nich gelesen? Bzw. das neue File runtergeladen? Ich glaube Edits machen wohl doch nich wirklich Sinn wenn die eh keiner liest. Anyway, anyhow ...

Gruß BM
Es gibt viel zu tun, packen wir´s an !!!

Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

16

Samstag, 13. Februar 2010, 15:33

Sorry, haben nicht gesehen das du die Datei erneuert hast.

VIELEN DANK!

MfG
GameProducers


Beiträge: 164

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Conbeon

17

Donnerstag, 11. März 2010, 17:16

Hallo an alle !

Ich diesen Thread aufgemacht weil ich ein problem mit meinem Gegner hatte, dies wurde freundlicherweise Black-Mask gefixed!

Nun hab ich aber wieder ein ähnliches Problem und nach drei Stunden Bug suchen gib ich auf :(

deshalb wollte ich euch fragen ob ihr vielleich einen fehler endecken könnt - es geht um folgendes:

Der Gegner verfolgt mich nach x, y und -y perfekt aber nach -x geht er nicht da er den Sprite Vorne und Hinten dauern wechselt und dabei hängt :(

Könnt ihr mir Helfen den fehler zu finden?

Das wäre :thumbsup:
»game.producers« hat folgende Datei angehängt:


Ähnliche Themen