Gegner bewegen, immer neuen Type?
Übersicht

![]() |
MegamagBetreff: Gegner bewegen, immer neuen Type? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, es geht wieder um meinen 3D/2D Weltraumshooter.
Die Gegner sollen ja nicht immer nur gerdeaus fliegen, sondern auch mal, wenn sie in der Mitte des Bildschirms sind, umdrehen oder dass vom Hintergrund Gegner kommen, und über die Z-Achse eine Kurve fliegen. Oder drei Gegner, der in der Mitte fliegt nach vorne, die Anderen schräg, zur Mitte hin, nach hinten. Ich habe das ganze mit neuen Types gelöst (T_enemy1,T_enemy1_back_bend_z, T_enemy1_back_turn,T_enemy1_round,usw.). Gibt es da nicht eine einfachere Lösung? |
||
![]() |
Angelo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also wenn deine Gegner mit einem Type Generiert werden kannst du sie nur mit
For g.objects = Each objects ;befehle einfügen next steuern. Außer du sprichst jeden einzeln an, aber dann musst du jedem eine ID geben. Aber das stelle ich mir dann wieder noch aufwendiger vor. |
||
Alles was ich sagen kann, können auch andere ^^ |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit der ID ist gut!
Das werde ich mal ausprobieren. |
||
![]() |
Willi die Rübe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Angelo hat Folgendes geschrieben: Also wenn deine Gegner mit einem Type Generiert werden kannst du sie nur mit
For g.objects = Each objects ;befehle einfügen next steuern. Außer du sprichst jeden einzeln an, aber dann musst du jedem eine ID geben. Aber das stelle ich mir dann wieder noch aufwendiger vor. Naja normal hat jeder erstellte Type schon sein eigene ID. Die kriegt man mit ID = Handle(Type) und das Typehandle selbst kriegt man dann wieder mit Type=Object(ID). Lies dir dazu am besten mal das Tutorial in der Onlinehilfe durch, das ist sehr empfehlenswert ![]() |
||
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX At the Farewell Party visit: MySpace | Homepage |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube, ich löse das mit
Code: [AUSKLAPPEN] Function create_enemy(x,y,z,ent,ID)
und dann Code: [AUSKLAPPEN] for e.Enemy1 = Each Enemy1
If e\ID = 1 ;und so weiter Danke an euch! |
||
![]() |
Willi die Rübe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja und das ist ansich unnötig, da ja jedes Type automatisch schon seine ID kriegt(übrigens durchnummeriert, beginnend ab 1).
Beispiel: Code: [AUSKLAPPEN] Function CreateEnemy() Local enemy.TEnemy = New TEnemy Return Handle(enemy.TEnemy) End Function Function MoveEnemy(ID, x,y,z) Local enemy.TEnemy = Object.TEnemy (ID); enemy\x=x ;usw. end function Somit erhält man dann ganz einfach zu kontrollierende Funktionen, die auch noch übersichtlich aussehen ![]() Code: [AUSKLAPPEN] Testgegner=CreateEnemy()
MoveEnemy(Testgegner, 5,0,5) |
||
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX At the Farewell Party visit: MySpace | Homepage |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da komm' ich nicht ganz hinterher ![]() Ich werde das mal so machen, wie ich oben beschrieben habe. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Sache ist die: Wenn du deine Types selbst durchnummerierst, musst du auch dafür sorge tragen das keine ID 2x vergeben wird. Das kann man auch schaffen, aber handle zu verwenden ist weit einfacher und sicherer. Sobald du viele Types erstellst und wieder löschst gehen dir dann bald die Zahlen aus, da sind Fehler über längere/lange Programmlaufzeiten wahrscheinlich.
Mach wie du denkst, egal was rauskommt, man lernt was dabei... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es geht mir nicht darum, jeden Type eine ID zu geben, sondern
jedem Gegner Type. Ich definiere also in der Erstellungsfunktion eine Id und in der Update Funktion wird gefragt, welche ID es hat, und wenn die 1 ist, fliegt der normal, wenn sie 2 ist scgräg usw. Da hätte ich aber auch früher drauf kommen können ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wenn Du es übersichtlich halten willst leg die Gegnertypen als Konstanten an
Const ENEMY_GERADE = 1 Const ENEMY_ZICZAK = 2 ... das macht den Code deutlich lesbarer ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group