fragen zu einem Moorhuhn-Klon

Ein muss für jedes gute Forum
Post Reply
What³zUp?!
PaC-DK Newby
Posts: 24
Joined: 24 Jan 2009, 15:26
Contact:

fragen zu einem Moorhuhn-Klon

Post: # 72810Post What³zUp?!
04 Feb 2009, 16:45

Hi, ich will eine Art Moorhuhn-Klon machen und habe dazu ein paar Fragen:

1. Ich hab hier irgendwo im Forum mal einen thread gelesen, der darum ging, die transparenten Hintergründe der Objekte im Spiel nicht anklickbar zu machen...bin mir aber nicht mehr sicher, ob das ging oder nicht und ich find den Thread auch nicht wieder... :lol:

2. Kann man Objekte durch zufall erscheinen lassen (dass sie nicht immer am selben Ort wieder auftauchen)?

3. Fällt mir bestimmt noch später ein...
I was like 'OMG' n she was like 'WTF' and we were like 'OMG WTF'!

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Re: fragen zu einem Moorhuhn-Klon

Post: # 72811Post Schiman
04 Feb 2009, 17:17

What³zUp?! wrote:1. Ich hab hier irgendwo im Forum mal einen thread gelesen, der darum ging, die transparenten Hintergründe der Objekte im Spiel nicht anklickbar zu machen...bin mir aber nicht mehr sicher, ob das ging oder nicht und ich find den Thread auch nicht wieder... :lol:
Wüsste nicht, wie das gehen soll.
What³zUp?! wrote:2. Kann man Objekte durch zufall erscheinen lassen (dass sie nicht immer am selben Ort wieder auftauchen)?
Klar. Mit randomnum kannst du Zufallsvariablen erstellen. Näheres steht im Manual. Die kannst du dann als Koordinaten für deine Hühner verwenden.

What³zUp?!
PaC-DK Newby
Posts: 24
Joined: 24 Jan 2009, 15:26
Contact:

Post: # 72817Post What³zUp?!
04 Feb 2009, 20:26

Vielen Dank! Das war nämlich mein größtes Bedenken mit der Zufallskoordinate... :banana: Falls das Andere doch irgendwie gehen sollte antwortet bitte...ansonsten ist das auch nicht soooo wild...
Ich glaub ich sollte die Manual mal richtig lesen, statt nur die Tuts zu machen und die Manual zu überfliegen :lol: :oops: :mrgreen:

PS: Wie benutz ich denn das randomnum richtig?
I was like 'OMG' n she was like 'WTF' and we were like 'OMG WTF'!

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 72819Post Baelavay
04 Feb 2009, 21:28

In der Skriptreferenz des Handbuchs steht:
PaCDK Manual wrote:randomnum (name ; obergrenze)
Setzt einen Zahlenwert mit einem zufälligen Wert der von 1 bis zur Obergrenze gehen kann.
Dann passt noch folgendes:
PaCDK Manual wrote:moveobj (instanz ; x ; y ; speed or time ; wait)
Bewegt ein Objekt. X und Y ist das Ziel in der absoluten Pixelzahl im Raum. Speed ist eine Zahl wobei 9 die Langsamste ist und 0 das Objekt ohne Bewegung sofort versetzt. Statt dessen läßt sich auch eine Millisekundenangabe machen z.B 1000ms, die Zeit die das Objekt dann braucht um sein Ziel zu erreichen. X und Y kann eine Zahl sein oder eine Variable definiert durch eckige Klammern.
Wird "wait" als letztes angegeben wird in einer Cutscene gewartet bis das Objekt sein Ziel erreicht hat.
Mal angenommen, du hast eine Auflösung von 800x600, dann ist der Code, den du brauchst, folgender:

Code: Select all

randomnum(xobj;800)
randomnum(yobj;600)
moveobj(Federvieh;[xobj];[yobj];0)

What³zUp?!
PaC-DK Newby
Posts: 24
Joined: 24 Jan 2009, 15:26
Contact:

Post: # 72830Post What³zUp?!
05 Feb 2009, 19:55

Danke, habs jetzt soweit, dass wenn die viecher abgeschossen werden erst nach unten abstürzen und dann zurück an die seite teleportiert werden...dazu hab ich jetzt aber auch noch ne frage...kann man einen Teil des Raumes (bei mir ganz rechts und links) für den Spieler nicht sichtbar machen, so dass an den Seiten die Objekte neu auftauchen? So in etwa:
Image
I was like 'OMG' n she was like 'WTF' and we were like 'OMG WTF'!

Lachi
An Adventure Creator
Posts: 316
Joined: 07 Aug 2008, 22:32

Post: # 72833Post Lachi
05 Feb 2009, 20:53

Wenn du mit "nicht sichtbar" schwarze Balken meinst, dann könntest du einfach je ein Opjekt erstellen, dieses mit nem schwarzen Bild füllen und es nach vorne setzen. Sicherheitshalber sollten die Morhühner dann in der mittleren Ebene dargestellt werden, daß sie die Balken nicht plötzlich überdecken.
[img]http://img269.imageshack.us/img269/4060/enjoylachibalken.png[/img]

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 72834Post Baelavay
05 Feb 2009, 20:58

Ich glaube eher, er meinte, dass die grüne Fläche den ganzen Bildschirm darstellt und dass die Objekte aus dem weißen, d.h. von der Seite ins Bild kommen. Du musst dazu im Raumfenster die Breite über deine Spielauflösung hinaus erhöhen. Geht möglicherweise nur, wenn auch der Hintergrund über die Spielauflösung hinausgeht. Jetzt hast du rechts vom sichtbaren Ausschnitt im Spiel noch Raum. Damit aber sowohl links als auch rechts noch Spielraum ist, musst du nach dem Raumladen noch den "setpos()"-Befehl anwenden, die Kameraposition sozusagen in der gesamten Breite des Raums zentrieren.

Du willst die Objekte über den Bildschirm hinaus rein- und rausschieben, richtig? Versuch mal, bei den "moveobj()"-Befehlen Werte jenseits der Spielauflösung einzusetzen. Ich müsste es auch erst nochmal testen, aber ich bin mir sicher, dass z.B. bei einer Auflösung von 800x600 ein "moveobj(Masthenne;850;10;5)" das Objekt aus dem Bildschirm herausschieben würde. Wenns nicht tut, dann auch mal +800 und -800 probieren...

What³zUp?!
PaC-DK Newby
Posts: 24
Joined: 24 Jan 2009, 15:26
Contact:

Post: # 72837Post What³zUp?!
05 Feb 2009, 21:34

Baelavay hat recht, wie ich das vor hab...
Allerdings bewgen sich meine Hühner nicht richtig...ich weiß ja auch was flasch ist, weiß aber nicht, wie ichs beheben soll...Meine Cutscene Runhuhn:

Code: Select all

randomnum (yobj; 460)

moveobj (Huhn; 0; [yobj]; 0)

wait(0.5)

moveobj (Ball; 620; [yobj]; 8)

Cutscene(runhuhn)
Im Moment geht das Huhn nur auf eine beliebige y-Position, will dann los, aber da startet die Cutscene schon wieder von neu...wait und break sind nicht die besten Lösungen dafür...gibt es nicht einen Befehl, dass wenn das Huhn eine bestimmte Position erreicht hat, ein anderer Befehl ausgeführt wird? if_pos gibts nicht
I was like 'OMG' n she was like 'WTF' and we were like 'OMG WTF'!

Lachi
An Adventure Creator
Posts: 316
Joined: 07 Aug 2008, 22:32

Post: # 72838Post Lachi
05 Feb 2009, 21:48

schau doch mal ins Handbuch unter Script Referenz/If-Befehle:

mit if_xobj (instanz ; x) kannst du die X Position abfragen
[img]http://img269.imageshack.us/img269/4060/enjoylachibalken.png[/img]

What³zUp?!
PaC-DK Newby
Posts: 24
Joined: 24 Jan 2009, 15:26
Contact:

Post: # 72839Post What³zUp?!
05 Feb 2009, 22:20

Ich habe jetzt folgenden

Code: Select all

randomnum (yobj; 460)

moveobj(Huhn; 0; [yobj]; 0)

wait(0.5)

moveobj (Huhn; 620; [yobj]; 8)

if_xobj(Huhn; 621)
{
Cutscene(runhuhn)
}
Und jetzt fliegt das Huhn auch bi zur 620, aber dann startet er nicht wieder neu :?
I was like 'OMG' n she was like 'WTF' and we were like 'OMG WTF'!

Lachi
An Adventure Creator
Posts: 316
Joined: 07 Aug 2008, 22:32

Post: # 72841Post Lachi
05 Feb 2009, 22:50

Das hier gezeigte Script läßt jetzt nur Vermutungen zu, da die Befehle in der Cutscene uns ja unbekannt sind. Aber sollte es sich nur um das Raumscript handeln, dann wird dir on(loop1) sicher weiterhelfen.
Also:

Code: Select all

on(loop1) 
 {
  *dein code*
  }
zu genauerer Erläuterung siehe ebenfalls das Manual unter Script-Referenz / ON-Befehle
[img]http://img269.imageshack.us/img269/4060/enjoylachibalken.png[/img]

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 72874Post Baelavay
06 Feb 2009, 19:03

An What³zUp?!s letzten Skript stimmt schon mal nicht, dass der y-Wert des Objekts zufällig verändert wird, dann in der letzten Zeile aber der x-Wert abgefragt wird. Du setzt den x-Wert in Zeile 4 auf 620, daher kann dieser nie 621 werden.
What³zUp?! wrote:gibt es nicht einen Befehl, dass wenn das Huhn eine bestimmte Position erreicht hat, ein anderer Befehl ausgeführt wird?
moveobj (instanz ; x ; y ; speed or time ; wait)
Wenn du "wait" hintendran setzt, wird erst zur nächsten Skriptzeile gesprungen, wenn das Objekt sein Ziel erreicht hat. Functions könnten hierbei eine Ausnahme darstellen, das sei einfach auszutesten.

Außerdem eignen sich Functions hervorragend für Skripts, die wiederholt werden sollen. Dazu erstellst du eine ganz normale Cutscene, die du dann aber mit "function(runhuhn;Anzahl Wiederholungen oder "infinite")" startest.

-------
Folgender Text ist nur dafür gedacht, eine Alternative zu bieten, falls meine Befürchtung, dass das "wait" beim "moveobj()" in Functions übergangen wird, wahr wird. Und zwar brauchst du dann zwei Functions, beide mit "infinite" gestartet.

In Function 1 kommt:

Code: Select all

setnum(count;+1)
if_num(count;25)
  {
  moveobj(Huhn;620;+1;0)
  setnum(count;0)
  }
Hierbei wird das Objekt um 2 Pixel pro Sekunde nach unten verschoben. Für eine schnellere Bewegung ist ein kleinerer Wert statt 25 nötig.

Damit jetzt das Objekt nicht ewig verschoben wird, brauchst du eine Function 2 mit:

Code: Select all

if_yobj(Huhn;>300)
  moveobj(Huhn;620;100;0)
Das heißt: Wenn das Objekt den y-Wert 300 überschreitet, wird es wieder auf 100 zurückgesetzt. Das setzt voraus, das das Objekt zu Beginn auf (620/100) positioniert war. Falls nicht, musst du die Werte entsprechend anpassen.

What³zUp?!
PaC-DK Newby
Posts: 24
Joined: 24 Jan 2009, 15:26
Contact:

Post: # 72965Post What³zUp?!
14 Feb 2009, 16:57

Ist es irgendwie möglich sone "scrollfunktion" wie bei Moorhuhn mit dem PaC-DK zu erstellen? Also mit: Maus an beispielsweise rechten bildschirmrand bewegen und dann scrollt der bildschirm nach rechts, bis die maus wieder weg vom rand is...?
I was like 'OMG' n she was like 'WTF' and we were like 'OMG WTF'!

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 72966Post Baelavay
14 Feb 2009, 17:13

Ja, das ist möglich.

Entweder erstellst du im Hintergrund berührungssensitive Dummy-Objekte (d.h. mit "on(mouse)"), die bei Mausüberflug den in Objekten dargestellten Hintergrund verschieben lassen.
Nachzulesen ist das hier: http://board.adventure-creator.com/viewtopic.php?t=9938
Ich habe dazu auch mal eine Funktionsdemo erstellt: http://files.filefront.com/Fluent_Turni ... einfo.html

Eine andere Herangehensweise, die mir spontan einfällt, wäre, dass du "setfocus()" auf einen unsichtbaren Charakter im Raum gesetzt hast (ohne Walksound und ohne Grafiken), den du der Mausposition folgen lässt. Damit schwenkt die Kamera immer dorthin, wo du die Maus hinbewegst.

Wuji
Adventure Enthusiast
Posts: 223
Joined: 07 Dec 2008, 17:25
Contact:

Post: # 73073Post Wuji
28 Feb 2009, 19:12

What³zUp?! wrote:Ist es irgendwie möglich sone "scrollfunktion" wie bei Moorhuhn mit dem PaC-DK zu erstellen? Also mit: Maus an beispielsweise rechten bildschirmrand bewegen und dann scrollt der bildschirm nach rechts, bis die maus wieder weg vom rand is...?
Icharbeite gerade am gleichen Problem habs auch teilweise Hingekriegt und Zimond über arbeitet es wenn fertig ist meld ich mich wieder

Das von Baelavay is ja mit moveobj ich glaub dir hilft eher setpos so wie ichs gemacht hab

ich meld mich sobald Zimond fertig ist :mrgreen:

Post Reply