• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Entwicklung eines Pacman-Arcade-Game

Ich möchte jetzt die Goldmümzen und die Gegner programmieren. Gibt es denn eine andere Möglichkeit als jede Münze durch einen Prim darzustellen. Selbst wenn ich nur wenige Münzen auf der Spielfläche verteilen würde, wären es ja immernoch mindestens 5 Prims für die Münzen und 2 weitere für die beiden Gegner.

Fällt jemandem dazu etwas sinnvolleres ein?
 
eine idee für die münzen wär doch partikel! Wenn das geht!

Einfach so ein roten punkt dort hinpartikeln und fertig!



(man ist das ne blöde idee aber vielleicht geht das ja)
 
Ich werf jetzt mal eine neue Idee für dich in den Ring.

Nach dem Motto, warum neu erfinden, wenn es schon eine nette Idee gibt:

Was hälst du von der Idee, wenn dein Spiel statt mit Prims mit nem Schwung unterschiedlicher Texturen arbeiten würde?

Es gibt eine Möglichkeit, ein Prim so zu manipulieren, um 5 Seiten des Prims in eine Richtung zeigen zu lassen, wenn du mit einem so geformten Prim die Spielfläche bildest, kannst du sowohl die Spielfigur, als auch Wände, Gegner und Münzen über Texturen darstellen lassen, und brauchst für ein 10 x 10 Felder großes Spielfeld insgesamt 20 Prims, plus ein Hintergrund-Prim also insgesamt 21 Prims.
Die Zahl wäre konstant, egal welche Anzahl von Gegnern, Wänden und Münzen du darstellen willst.

Ein Script mit dem du ein Prim entsprechend manipulieren kannst ohne das manuell auszuprobieren, findest du u.a. hier: XYText.
Du müßtest dann halt entpsprechend eine Textur für jeden Feldzustand erzeugen, die da wären Spielfigur, Gegner, Wand, Münze und leeres Feld.
Statt Prims zu bewegen müßtest du dann entsprechend die Textur von einem Feld aufs andere verschieben, bzw. eine Textur austauschen.

Ist nicht unbedingt die Primsparenste Version vielleicht, aber vielleicht ein Ansatz.

MfG
Hannibal
 
ah, Hannibal hats verraten, ich wollte dich noch bis morgen schwitzen lassen, aber das wäre auch mein Ansatz gewesen um prims zu sparen.

Wenn es mit wenig Prims auskommt und schnell ist findet sich bestimmt auch einer mit einem Spieleladen bei dem du das verkaufen kannst.
 
Um ehrlich zu sein verfolge ich gerade einen anderen Ansatz habe aber Probleme.
Ich möchte in einer for-Schleife mehrere Objekte Rezzen und mit dem root Prim verlinken. Wenn ich das für genau einen Schleifendurchgang mache klappt das auch, aber sobald ich mehere schleifendurchläufe (>=2) machen lasse, geht es schief. Dann werden einfach keine objekte gerezzt. Wieso ist das so?

Und wie wenn nicht so kann ich mehrere gleiche Objekte aufeinmal Rezzen?
 
ich bastel nebenbei auch grad an nem spiel, dort rezze ich auch mehrere objekte(nacheinander) mit:

Code:
for(; i<total_number; ++i)
            {
                // anderes zeug...

                llRezObject(tower_choosen, board_pos - tower_pos, <0,0,0>, llEuler2Rot(<0.0, 90.0, 0.0> * DEG_TO_RAD) , 0);
                
                // ...anderes zeug
        }

Das funktioniert einwandfrei, jedoch verlinke ich die Objekte nicht, hast du darafu geachtet ob dein Rootprim auch nach dem 1. verlinken weiterhin Rootprim bleibt?
 
Sobald ich die Permission_Chane_Links bekomme führe ich folgende Schleife aus:
Code:
for(i=0; i < 2; i++){
                newObjectsPosition = getFreeRndPosition();
                coinPosition = (string)newObjectsPosition;
                llRezObject("Coin", (llGetLocalPos() + <1.8,1.8,0.1>)-<newObjectsPosition.x*0.4,newObjectsPosition.y*0.4,0>, ZERO_VECTOR, localRot, 111);
                //llRezAtRoot("Coin", llGetLocalPos() + <1,1,0.5>, ZERO_VECTOR, localRot, i);
                //llMessageLinked(-3, 1, coinPosition, (string)i);
          }

Ich fange außerdem das rez-Object Event ab und zwar wie folgt:

Code:
object_rez(key id) {
        llCreateLink(id, TRUE);
        llMessageLinked(-3, 1, coinPosition, (string)id);
    }
Aber es wird immer nur eins der beiden Objekte mit dem Root Prim verlinkt, beim anderen kommt die Fehlermeldung die Permission sei nicht gesetzt, was nicht sein kann, des es funktionniert ja für das Erste.
 
Moin, long time no hear.
Mittlerweile habe ich ein häßliges aber funktionstüchtiges Pacman Spiel.
Es gibt Münzen zu sammeln und Gegner, die einen fangen wollen (und es meistens sogar schaffen).

Im Moment wird Pacman noch über die Cursor Tasten gesteuert. Icj würde aber gerne folgendes tun:

Ich möchte ein Joystick Prim, den der Avatar in die Hand nimmt. Wenn der Cursor bspw. nach links gedrückt wird, soll der Avatar den Joystik nach links bewegen, drück man den Cursor nach oben, soll der Joystick nach vorne bewegt werden, usw.

Ist das überhaupt möglich und wenn ja, wie hoch schätzt ihr den Aufwand dafür ein???

Danke und Grüße, Flo.
 
Wenn das zu bewegende Teil ein Prim ist, ist das mit Hilfe von llSetPrimitiveParams eigentlich kein großes Problem. Die Sterungsbefehle musst Du dann eben per llListen an das eigentlich Spiel übertragen.
 
Oh, Du willst also, dass der Avatar selbst sich bewegt? Dann brauchst Du entsprechende Animationen. Am besten solche, bei denen dann auch nur die Arme bewegt werden.
 
Naja, ich stelle mir vor, dass der Avatar einen oldschool-Joystick in der Hand Hält, der auf einem Tisch steht (also der Joystick nicht der Avatar :)) und einige Meter davon entfernt steht meine Leinwand auf dem das Pacman Spiel gespielt wird. Und in dem Moment wo die linke Cursortaste gedrückt wird, bewegt der Avatar den joystick nach links und pacman läuft nach links auf dem Spielfeld.

Wie könnte das gehen?
 
Wenn du selbst die Animationen erstellen willst nutze einfach den kostenlosen: http://www.qavimator.org/

Mein Vorschlag, vereinfache das ganze etwas.

Bau einen Joystick, in diesem sollte ein AO drin sein.
Der Avatar sollte eine GrundPosition haben.

Da wir das ganze eh meist aus der etwas weiteren 3rd-Person-Sicht anschauen, würde es reichen wenn du vier weitere Animationen hast. Diese sollten dann den Oberkörper entsprechend zur aktuellen
Richtung des Packmans bewegen.

Ein bewegen des Joystick selbst noch mit einzubauen ist sicherlich zu viel Aufwand.

Wenn du das mit den Animationen versuchst, nutze das Beta oder Open Grid, sonst zahlst du unnötig viel uploadgeld;)
 
Vielen Dank für die Antwort.
Ich habe ein wenig mit dem Qavimator herum gespielt und dein Vorschlag bezüglich der Oberkörperbewgungen ließe sich relativ einfach umsetzen und erscheint mir auch sehr sinnvoll. Darauf hin habe ich vor allem auch nach einem frei verfügbarem Script gesucht, dass einen Animtion Overrider implementiert. Zwar gibt es anscheinend das "Franimation Overrider v1.7" Script unter der GNU Lizenz, konnte ich aber leider nicht finden :-(
Hat jemand zufällig dieses Script oder etwas ähnliches? Bzw. wie auffändig ist es ein entsprechendes zu implementieren?
 
Na ja, ein kompletter AO muss es doch gar nicht sein. Es reicht völlig, eine Animation hoher Priorität vom Attachment starten zu lassen. Ist nicht ein Zehntel so kompliziert, als da mit einem AO herumzuhampeln.
 
Hm, eigentlich ist da nicht viel zu erklären...

Attachments kriegen beim Anlegen zwar eigentlich vele Rechte schon so, aber whatever:

Das Attachment muss zunächst einmal die Rechte dazu anfordern:

llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);

Ist das einmal erfolgt, kannst Du in der Tastatur-Abfrage ganz einfach die jeweilige Animation starten, wenn eine Taste gedrückt wurde und sie stoppen und eine neue starten, wenn die Taste losgelassen, bzw. eine andere gedrückt wurde.

llStartAnimation("handvor");
lastanim="handvor";

oder


if (lastanim !="") { llStopAnimation("lastanim"); lastanim="";}
 
Takeshi Newman schrieb:
bei wie vielen Prims bist du angekommen?

Spielfläche = 1 Prim
Pacman = 1 Prim
x Gegner = x Prims
y Goldmünzen = y Prims
-------------------------------------
2+x+y Prims, wobei ich normalerweise 10 Goldmünzen und 2 Gegner setze
also 14 Prims insgesamt.

Bei einer 10x10 Matrix reicht das auch vollkommen.
War ja auch nur ein Versuch. Würde ich es nocheinmal machen, würde ich es vermutlich anders regeln, dann würde ich euren Vorschlag aufgreifen pro Prim 5 Texturen darzustellen. Ist aber jetzt zu spät, denn ich bin fast fertig :)

Bei Gelegenheit werde ich den Code auch posten. Da das aber Teil meiner Bachelorarbeit ist, möchte ich die lieber erstmal abgeben bevor sich mein Code über das Netz verteilt (falls das überhaupt passiert ;-) )

Danke euch allen auf jeden Fall für eure Hilfe!!!!!
 

Users who are viewing this thread

Zurück
Oben Unten