Type an Funktion weitergeben
Übersicht

snörklBetreff: Type an Funktion weitergeben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin moin, nach langer Programmierpause melde ich mich mal wieder mit einer Frage, auf die ich trotz google-und sufurecherche keine antwort finden konnte. Und zwar habe ich folgendes Problem; ich möchte eine funktion schreiben, die z.B. Beim Treffen eines gegners automatisch eine frei wählbare Anzahl von Schaden zufügt, dieser verteilt sich wiederum auf shield und armor. Das Problem besteht darin, dass die Funktion aus einer tlist eachin schleife heraus aufgerufen wird und ich, um die funktion für alle gegner einsetzen zu können, nicht in die funktion schreiben kann, welchem typ die variable, die zur durchführung nötig ist angehört.
Um etwas klarheit zu schaffen hier die relevanten ausschnitte aus dem code (schreibe nicht vom computer aus, man möge mir die formatierung verzeihen) Code: [AUSKLAPPEN] for local e:Tenemy = EachIn Tenemylist For local s:Tplayer = eachIn Tplayerlist If imagescollide... s.exist = 0 EnemyHealth(e, -1) 'hier das problem, e ist typ tenemy, das ist aber nicht auf andere gegner übertragbar! Next next . . . Function enemyHealth(enemy:?typ?, health:int =0, optArmor:int = 0, optShield:int = 0) Local temphealth:int = 0 If enemy.shield >= 0 enemy.shield:+health Else temphealth = enemy.shield + health enemy.shield = 0 enemy.armor:+temphealth End If 'hier noch die anderen funktionen, irrelevant für das Beispiel End Function vielen dank. |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
?typ? = TEnemy schon probiert? | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, aber ich möchte die funktion allgemeingültig halten, d.h., dass sie sowohl mit TEnemy als auch beispielsweise mit TEnemy2 funktioniert, welches bei einem festlegen auf TEnemy dann nicht mehr der Fall wäre. | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann Leite Tenemy und Tenemy2 von einem Type TEnemy_Base (o.ä.) ab.
TEnemy_Base enthält dann die Fields, die jeder Enemy braucht, und schön ist's. |
||
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) |
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank für eure so schnellen Antworten!
Ich werde mich dann morgen damit nochmal genauer auseinandersetzen, wie sähe so ein type-type denn dann aus? Sind TEnemy1 und 2 dann noch eigenständige types (was für meinen code wichtig wäre) oder werden sie zu elementen des types Tenemy_base? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Reicht dir dieses Beispiel?
BlitzMax: [AUSKLAPPEN] SuperStrict |
||
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) |
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank, das genügt mir vollends ![]() somit ist meine Frage dann eigentlich auch schon geklärt, an alternativen lösungsvorschlägen bin ich natürlich trotzdem immer interessiert! Lg, snoerkl |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group