Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, 1 invisible), 1,395 guests, and 12 spiders.
Key: Admin, Global Mod, Mod
Newest Members
AemStones, LucasJoshua, Baklazhan, Hanky27, firatv
19055 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Gegner. Wie programmiert man die ? #336112
08/01/10 18:03
08/01/10 18:03
Joined: Dec 2008
Posts: 222
janerwac13 Offline OP
Member
janerwac13  Offline OP
Member

Joined: Dec 2008
Posts: 222
Hi,
Ich weiss nicht wie man Gegner Programmieren soll.
Einem welche die nur da stehen und die man abknallen kann.
dann welche die einen nach laufen oder end gegen kommen und sichg wehren mit pistole oder faust.
und end gegner bzw boss.
ich hoffe ihr könnt mit etwas helfen.
danke !

Re: Gegner. Wie programmiert man die ? [Re: janerwac13] #336115
08/01/10 18:30
08/01/10 18:30
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
hier mal ein kleiner Link für dich:
Endlicher Automat
Du brauchst Programmierkentnisse, einen Status und eine Verzweigung
irgendwie so was:
Code:
var status = STEHEN;
while(me)
{
   switch(status)
   {
      case STEHEN:
         //Rumstehen...
         break;
      case LAUFEN:
         //Laufen hier:
         break;
      case ANGRIFF:
         //Hier angreifen
         break;
      case GETROFFEN_WERDEM:
         //Hier getroffen werden
         break;
      default:
         //Wenn keine gültiger Status, dann stehen
         status = STEHEN;
         break;
   }
   wait(1);
}



aufbau sollte klar sein, irgendwie so muss deine Basis aussehen, du kannst natürlich auch einen skill für den Status nehmen, so kommst auch von außen ran.

Is aber viel arbeit! Vorallem muss sich der gegner ja realistisch verhalten.

Ich hab in meinem Shooter einen Gegner mit glaube ich momentan 9 verschiedenen Stati, werden aber noch mehr
Ein Teil davon:
-Stehen
-Herumlaufen
-Umdrehen
-Gegner suchen
-Gegner finden
-Gegner angreifen
-Gegner nach angriff suchen
-Sterben
-Tot sein
...


Visit my site: www.masterq32.de
Re: Gegner. Wie programmiert man die ? [Re: MasterQ32] #336132
08/01/10 20:04
08/01/10 20:04
Joined: Feb 2010
Posts: 482
in deinem Kopf
Otter Offline
Senior Member
Otter  Offline
Senior Member

Joined: Feb 2010
Posts: 482
in deinem Kopf
Mal schauen ob ich dir nicht helfen kann. laugh

Fang am besten mal damit an ihn auf schüsse oder wände reagieren zu lassen:

Click to reveal..
STRING* gegner;
var anim_speed;
action dummy_gegner() /////action die du deinem gegner gibst
{
gegner = me;
my.leben = 6;
while(my != NULL)
{
if(my.leben > 0) ////// sobald gegner mehr als 0 leben hat macht er das:
{
anim_speed += 8*time_step;
if(anim_speed >= 100) anim_speed = 0;
ent_animate(my, "walk", anim_speed, ANM_CYCLE);
my.tilt = 0;
c_move(my, vector(4, 0, 0), nullvector, GLIDE | IGNORE_ME | IGNORE_PASSABLE);
if(trace_hit)
{
vec_to_angle(my.pan,bounce);
my.pan += random(4)-2;
}
}
else ////// wenn er weniger leben hat das:
{
anim_speed += 10*time_step;
ent_animate(my, "death", anim_speed, ANM_CYCLE);
if(anim_speed >= 90) ent_remove(me);
}
wait(1);
}
}



STRING* player_shoot;
function hero_fire() /////function für deine geschosse
{
player_shoot = me;
my.emask |= ENABLE_ENTITY;
my.event = fire_react;
my.pan = player.pan;
my.tilt = player.tilt;
vec_set(my.x, player.x);
while (you != NULL)
{
c_move(my, vector(8, 0, 0), nullvector, IGNORE_YOU | IGNORE_ME | IGNORE_PASSABLE);
wait(1);
}
}



function fire_react() /////reaktion deiner geschosse auf gegenstände oder mauern usw...
{
if(event_type == EVENT_ENTITY)
{
if(you == gegner)
{
your.leben -= 1;
}
}
wait(1);
ent_remove(me);
}


Du musst nur noch deiner Player action einige zeilen hinzufügen, die so aussiehen:

if(key_space == 1)
{
ent_create (geschoss_mdl, my.x, hero_fire);
while(key_space == 1){wait(1);}
}

der geger müsste jetzt durch den raum laufen, von den wänden abprallen und sterben wenn du ihn 6x triffst.

du müsstest auch noch einige skills neu definieren z.B.:
#define leben skill20

dann müsste eigentlich alles funktionieren und du hast eine gute basis für deine "experimente" wink


Be my UBB-Buddy, without any reason!
Re: Gegner. Wie programmiert man die ? [Re: Otter] #336142
08/01/10 20:50
08/01/10 20:50
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
JoGa Offline
User
JoGa  Offline
User

Joined: Dec 2003
Posts: 988
Germany, Magdeburg
in AUM 27 - 31 gabs mal ne Folge von Tutorials über KI, ist schon etwas älter, aber zum mal schaun, wie man prinzipiell rangeht, bestimmt nicht schlecht.
AUM 55 - 57 ebenfalls.
Und im 3D-Gamestudio Magazine (die pdf-Dateien) in Ausgabe 3 vom März 2006 ist was über Pfadfindung drin, mir fehlt leider der Link.

Re: Gegner. Wie programmiert man die ? [Re: JoGa] #336147
08/01/10 21:27
08/01/10 21:27
Joined: Feb 2009
Posts: 2,154
Damocles_ Offline
Expert
Damocles_  Offline
Expert

Joined: Feb 2009
Posts: 2,154
Vielleicht schreib ich mal ne "Starter" KI,
als eine Art Template für Beginner.

So daß man grundlegende FPS Sachen in einem Bündel hat.
(Playerbewegung, Schiessen, simple Pickups,
und Gegner mit einfacher Folge-KI)


Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1