Hintergrund Unter dem User bewegen
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm aus irgerndeinem grund klappt das jetzt mit den texten weiß auch nicht warum O.o
Aber das mit der Musik klappt immernoch nicht.... Fehlermeldungen bekomme ich keine... #Edit Die Musik gebe ich in der Repeat Schleife aus und zwar so: PlayMusic("sounds/bg_sound.mp3",1) |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: ...warum musste ich die "doppelt" in einer Variable aufrufen?
Was meinst Du damit? Deine Bilder sind in einer der 8 Variablen. Dein Schiff ist eine 9. Variable. Durch die Zuordung wird die 9.Variable immer durch die der Richtung entsprechende Variable ersetzt. Dies is superschnell und braucht wenig Speicherplatz. Es ist in Wirklichkeit gar nicht so, dass die Bilder kopiert werden. Die Variablen sind immer nur Zeiger auf den RAM, wo der Bildinhalt geladen wurde. Zitat: ....aber es Bewegt sich nicht zur map
Wie das? Du wolltest doch das das Schiff stillsteht und der Hintergrund scrollt... Scrollt er bei Dir nicht? Zitat: ...wie kann ich die map "fixieren" ? das das schiff auf der map fliegt ?
Also soll nun das Schiff auf dem Bildschirm in der Mitte bleiben oder nicht? Soll sich das Schiff bewegen oder der Hintergrund? Du darfst wirklich niemals was in der REPEAT-Schleife laden!!! Auch keine Musik. Das muss imer vorher geladen sein. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja zuerst dachte ich das die map sich nur unter ihm bewegen muss ist aber schwachsinn... da wenn z.b. ein gegner auf der map ist der sozusagen zum user hingezogen wird und falls er in die andre richtung fliegen würde würde es die map "zerreisen" und wahrscheinlich ein error geben ![]() Also dachte ich mir das das schiff schon in der mitte stehen soll aber es ganz normal über die map fliegen soll... Und das mit der Musik änder ich mal ![]() 'Edit Das mit der Musik getestet aber klappt trozdem nicht... Ist es auch besser wenn ich das mit der musik so mache wegen Performance und so ... ? Global Musik="sounds/bg_sound.mp3" PlayMusic(Musik,1) Könnte es auch sein das das Lied lange zum laden braucht ? das lied ist zwar nicht groß oder so (~2mb) aber kann ja sein.... |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
das schiff in der mitte stehen zu lasen ist sehr sinnvoll, wenn die Map später größer als der Bildschirm sein wird.
Egal, wie Du dich entscheidest. Es ändert nichts an meinem Code. Der funktioniert für beide Fälle!!! Und da wird auch nix auseinandergerissen und der Gegner fliegt auch nicht ungewollt auf den Spieler zu. Du setzt einen Gegner einfach auf eine Koordinate und malst ihn immer unter Einberechung der Kamerakoordiate: Hier ein Beispiel mit zwei Gegnern. Einer bewegt sich einer bleibt fest. Bewege Du den Spieler: BlitzBasic: [AUSKLAPPEN] Graphics 800,600 |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay gut ![]() ![]() Nur mein Problem ist immer noch der Ton ![]() |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn Du die Kamera nicht innerhalb der REPEAT änderst, sondern nur einmal davor setzt. wird aus dem Spiel ein statisches Spiel:
BlitzBasic: [AUSKLAPPEN] ..... |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay und was heist Statistisches Spiel ? Ich wollte eig. nen multiplayer machen
^^ Und wie ist das jetzt mit dem Ton kennst du ne Lösung was hab ich falsch gemacht ? Code: [AUSKLAPPEN] Probiert : Musik=LoadSound("sounds/bg_sound.mp3") PlaySound Musik Und das hab ich auch Probiert: PlayMusic("sounds/bg_sound.mp3",1) Beides ging nicht -.-' |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, mit statisch meine ich, dass der Hintergrund jetzt feststeht und der spieler bis an den Rand des Bildschirms kommen kann.
Probier den Code doch wenigstens aus! deine Endlösung wird eine Mischung aus beidem sein: A. Am Rand des Spielfeldes wird die Kamera sich nicht weiterbewegen: Es sieht so aus als wenn der Spieler an den Bildschirmrand kommt. B. In der Tiefe des Spielfeldes wird die Kamera immer mit dem Spieler mitgehen: Es sieht so aus als wenn der Hintergrund scrollt. Füge mal folgende Änderungen in meinen Code ein: BlitzBasic: [AUSKLAPPEN] .... und dann bewege den Spieler nach links, bis es nicht mehr geht! Sound A. Wichtig ist nicht wie du es machst, sondern wo. Immer vor der REPEAT!!! B. 2MB sind ganz schön viel und dauern wirklich etwas Ladezeit. Möglicherweise wartest Du nicht lange genug. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
- Zuletzt bearbeitet von Midimaster am Do, Jul 18, 2013 12:17, insgesamt einmal bearbeitet
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay ich probiers gleich aus ... ich habe 20min gewaret bei dem anderen wird das lied in ein paar sekundejn geladen -.-'
UNd vor der Repeat schleife ist es auch... #Edit Hab den Code getestet klappt auch.... danke ![]() ![]() ![]() |
||
- Zuletzt bearbeitet von Bobo2040 am Do, Jul 18, 2013 12:21, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
sende mal den Gesamtcode!
und hier nochwas Füge mal folgende Änderungen in meinen Code ein: BlitzBasic: [AUSKLAPPEN] .... und dann bewege den Spieler nach links, bis es nicht mehr geht! |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
KOmpletter Code
BlitzBasic: [AUSKLAPPEN]
|
||
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ouuhhh ich dummi ![]() ![]() danke nochmal ![]() EDIT Nur noch mal ne Frage für den Multiplayer möchte ich gerne, dass man die gegner Schiffe auch anklicken kann also wenn man Sie angegklickt hat soll ein Roter Kreis um das Schiff drum sein... wie ich einen Kreis mache weiß ich und ich bekommes bestimmt auch hin,das der Kreis immer beim gegner Schiff bleiben tut aber wie bekomme ich es hin, das der Kreis kommt, sobald ich auf das Schiff gedrückt habe ? EDIT 2 Ich habe noch ein Problem ich will gerade eine FUnktion für den Schaden schreiben Aber er sagt : Expecting Wend Aber da sind nur 2 Schleifen und auch 2 Wends Hier mal die Funktion vll.t kann mir einer helfen `? BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schritt eins: Überprüfen, ob was angeklickt worden ist:
MouseHit(1) gibt dann 1 zurück, wenn die linke Maustaste gedrückt wurde. MouseX() und MouseY() geben die X- respektive Y-Koordinate der Maus zurück. Eine passende Überprüfung wäre z.B. ob der Mauszeiger höchstens eine bestimmte Entfernung (=Größe des Objekts) vom Mittelpunkt des Objekts entfernt ist. Die Formel dazu: Abstand = Sqr((MouseX()-ObjektX)^2+(MouseY()-ObjektY)^2) Hald einfach der Pythagoras. Dann musst du nur noch überprüfen, ob der Abstand kleiner ist als die maximale erlaubte Entfernung. Diese Überprüfung lässt du jedes Frame, in dem die linke Maustaste gedrückt wurde, für jedes klickbare Objekt am Schirm durchlaufen. Dann brauchst du noch eine Variable, die auf das gedrückte Objekt zeigt. Da hast du dann z.B. eine Variable namens clickedObject, und in die speicherst du dir, welches Objekt angeklickt wurde. Noch eine Warnung hier: MouseHit() ist nur beim ersten Aufruf nach dem Mausklick auf 1, danach sofort auf 0. Brauchst du den Wert davon öfters in einem Frame, dann musst du ihn dir in eine Variable abspeichern. Schritt 2: Vor dem Zeichnen der Einheiten schaust du in die Variable clickedObject von vorhin, und malst einen Kreis an die Position des angeklickten Objekts. Viel Spaß! |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
- Zuletzt bearbeitet von DAK am Do, Jul 18, 2013 16:03, insgesamt 2-mal bearbeitet
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay cool danke ![]() Das Probier ich nachher mal aus ^^ |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu deinem Edit:
Bitte bitte bitte schreib Funktionen mit Klammern! Das sorgt für so viele Fehler. BlitzBasic: [AUSKLAPPEN] Print "Test" funktioniert zwar, aber das nur, weil es einen Parameter hat. Funktionen ohne Parameter wie z.B. Millisecs werden von Blitz nur als Funktionen erkannt, wenn du ein () danach setzt! Zur Demonstration probier mal diesen Code: BlitzBasic: [AUSKLAPPEN]
Ohne Klammer und Parameter nimmt Blitz die Funktion stattdessen als Variable! Deswegen, auf keinen Fall Funktionen ohne Klammer schreiben, das ist wichtig! Ich weiß nicht, ob das dein Problem löst, aber auf jeden Fall löst es zumindest zwei Fälle, wo du es so gemacht hast, und deswegen dein Code Mist macht. Edit: Wenn der Compiler Fehler wirft, dann schau doch, wo der Cursor ist. Der zeigt nämlich genau dort hin, wo der Fehler ist. In diesem Fall ist es in der Zeile Text 350,20,"Sie müssen noch "+(MilliSecs-(RSBTimer+300))\1000+"Sekunden Warten!",True,False Der Grund ist \ ist nicht die Division sondern ein Zeichen, was bei Types verwendet wird! Die Division ist /. Bitte tu dir selbst einen Gefallen und fang an, sauberer zu arbeiten. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja danke ![]() Text 100,10,"Schaden: "+Schaden,True,false Aber er gibt keinen Schaden aus also wenn ich Hoch oder runter klicke ^^ |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, erstens heißt der Befehl
Text(100,10,"Schaden: "+Schaden,True,false) Zweitens: Verwende den Befehl Print oder Debuglog, um herauszufinden, ob das Programm überhaupt zu der Zeile hinkommt. Noch besser, verwende den Debugger. Der Debugger von BB ist so extrem einfach zu bedienen, ich hab bis jetzt noch keinen besseren gefunden. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay also mit dem Text hat das bis jetzt super ohne geklappt ...werdes aber ändern...
Habs halt im Tutorial so gelernt ![]() Und den Debugger vergesse ich zu Benutzen ![]() Mache ich jetzt MFG |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klar, der Befehl geht auch ohne Klammern. Genauso wie Programme auch ohne Einrücken funktionieren. Man kann sogar das ganze Programm in eine einzige Zeile schreiben, wenn man die Befehle mit : trennt. Und statt While kann man auch Goto und statt Funktionen Gosub verwenden. Allerdings sind das alles extreme Fehlerquellen.
Klammern sind deine Freunde. Sie sorgen dafür, dass du weniger Fehler machst. Wenn du keine Klammern verwendest, dann muss der Compiler raten, wie du das genau gemeint hast, und winkt dir gegebenenfalls Fehler durch, die er mit Klammer gefunden hätte, wie z.B. die Sache mit den Millisecs, die ich oben geschrieben habe. Außerdem sorgen sie für Übersichtlichkeit und helfen dir eventuelle falsche Klammerung einfach und schnell zu finden. Dazu wirfst du dir noch deine Einheitlichkeit über den Haufen: Funktionen, die ohne Klammern aufgerufen werden, können keine Werte zurück liefern. BlitzBasic: [AUSKLAPPEN] Cos 10 ;funktioniert |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@bobo
das wird so nix werden mit deiner "Schadensanzeige". Du siehst Texte nur dann, wenn anschließend ein FLIP erfolgt, aber.... Grundregel I: niemals weitere WHILE/WEND Schleifen mit Bildschirmausgaben erstellen Grundregel II: nur 1 FLIP pro Spiel Wie soll man dann aber so Unterbrechungen mit Texten machen? Dazu liest Du am besten mal dieses Kapitel meines Tutorials: https://www.blitzforum.de/foru...548#364548 und https://www.blitzforum.de/foru...555#364555 Ein Ereignis sollte nie direkt zu einer Textausgabe führen, sondern setzt ein FLAG. Das heißt eine globale Variable SCHADEN_ZEIGEN wird auf Millisecs()+1000 gesetzt. In der Hauptschleife REPEAT/UNTIL steht die ganze Zeit schon ein Block, der den dazugehörenden Text anzeigen könnte. BlitzBasic: [AUSKLAPPEN] Repeat und wie werde ich den Text wieder los? Ganz einfach: Der Millisecs() sorgt dafür, dass nach 1 Sekunde der Text wieder verschwindet. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group