Du bist nicht angemeldet.

game.producers

unregistriert

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 729

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Experte

Aktuelles Projekt: Geheimprojekt mit Soul Reaver

Danksagungen: 25

  • Private Nachricht senden

2

Sonntag, 31. Januar 2010, 16:57

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

© 2008 by Teamgrill Productions

SpeedFreaK

Marshmellow-Mann

Beiträge: 291

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: GM Pause

  • Private Nachricht senden

3

Sonntag, 31. Januar 2010, 18:27

GML

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

game.producers

unregistriert

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 ! ! !

game.producers

unregistriert

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: 81

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: verschiedene kleinere sachen

  • Private Nachricht senden

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. ^^

game.producers

unregistriert

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?

game.producers

unregistriert

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

Black-Mask

Kleiner Cäsar

Beiträge: 68

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

  • Private Nachricht senden

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 !!!
Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.

game.producers

unregistriert

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 ^^

Black-Mask

Kleiner Cäsar

Beiträge: 68

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

  • Private Nachricht senden

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 - 41 mal heruntergeladen - zuletzt: 15. Mai 2012, 18:00)
Es gibt viel zu tun, packen wir´s an !!!
Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.

game.producers

unregistriert

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)


Black-Mask

Kleiner Cäsar

Beiträge: 68

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

  • Private Nachricht senden

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 !!!
Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.

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


game.producers

unregistriert

14

Samstag, 13. Februar 2010, 14:18

Hat irgendjemand eine Lösung?

BITTE ;(

Black-Mask

Kleiner Cäsar

Beiträge: 68

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Nano TD - Genre: Maze Tower Defense

  • Private Nachricht senden

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 !!!
Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.

game.producers

unregistriert

16

Samstag, 13. Februar 2010, 15:33

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

VIELEN DANK!

MfG
GameProducers

game.producers

unregistriert

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