Spiel: Schütz den Bunker
Übersicht BlitzBasic Beginners-CornerGehe zu Seite Zurück 1, 2, 3 Weiter
Raiden93 |
So, Sep 19, 2010 8:42 Antworten mit Zitat |
|
---|---|---|
Der herr Midimaster hat die Types ganz am Anfang gesetzt kann man das nicht nach dem:
Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer BackBuffer() AppTitle "EndCore" Global TimerFrame=CreateTimer(200) HidePointer machen? |
||
BladeRunnerModerator |
So, Sep 19, 2010 8:49 Antworten mit Zitat |
|
---|---|---|
Ich wiederhole mich: probier es bitte selbst. Wenn Du nicht zuhause am Rechner bist, kannst Du das probieren ja nachholen wenn du es bist. Es geht hier ja um Stilfragen, also nichts was dich zurückwirft, und es ist unnötig das Portal damit zu belämmern. | ||
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 |
Raiden93 |
So, Sep 19, 2010 9:13 Antworten mit Zitat |
|
---|---|---|
Hallo ich will doch nur Fragen 0o ich möchte nichts falsches lernen deswegen Frage ich Lieber es kann ja sein das Midimaster es einfach so gemacht hat weil es ihm gefällt aber vielleicht beeinträchtigt es auch mein Spiel und wenn ich dann etwas Falsches lerne mache ich es immer wieder Falsch und durch Fragen beuge ich solche Fehler vor.Und ich bin ja auch hier im Forum um Fragen zu können und aus euren Erfahrungen zu lernen.Deswegen finde ich es immer wieder ein wenig gemein das ich solche Nachrichten lese ist jetzt nichts gegen dich aber ich Lerne wirklich viel weil ich diese Materie wirklich Cool finde.Und da ist es wohl nicht zu viel einfach mal ein wenig Leute zu helfen die es noch nicht so viel können.
Ich habe jetzt ein wenig rum Experimentiert und habe mein Code von Dim´s in Types geändert nur jetzt will es nicht mehr so wirklich würde mich freuen wenn jemand mal mein Code Anschauen kann und mir sagt was ich Falsch gemacht habe.Z.b kann ich den OVAL nicht mehr mit meiner Maus steuern? Mein Code: Code: [AUSKLAPPEN] ;Project EndCore
;Anfang: 17.09.2010 Graphics 800,600,32,2 SetBuffer BackBuffer() AppTitle "EndCore" Global TimerFrame=CreateTimer(200) HidePointer ;Laden von Daten Global Spiel_Hintergrund_IMG = LoadImage ("GFX/SpielFeld.bmp") Global Spiel_Mauer_IMG = LoadImage ("GFX/Mauer.bmp") Global Spiel_Gegner1_IMG = LoadImage ("GFX/Gegner1.bmp") ;Variablen Type GegnerTyp Field X#, Y#, Speed# ;Bewegung Field Schaden# ;Waffen Field Leben# ;Eigenschaften End Type Type SpielerTyp Field X#, Y#, Speed# Field Schaden# Field Leben# Field Breite#,Hohe# End Type Global Spieler.SpielerTyp Global Gegner.GegnerTyp Global Spiel_Modus = 2 Global Punkte = 0 Global Level = 1 Global Leben = 3 ;Hauptschleife Repeat Cls Spieler= New SpielerTyp Spieler\Breite = 3 Spieler\Hohe = 3 Spieler\X = MouseX() Spieler\Y = MouseY() If Spiel_Modus = 0 Spiel_Spieler_Maus() ElseIf Spiel_Modus = 1 Spiel_Spieler_Maus() ElseIf Spiel_Modus = 2 DrawImage Spiel_Hintergrund_IMG,0,0 DrawImage Spiel_Mauer_IMG,600,0 Spiel_Gegner_Erstellen() Spiel_Spieler_Maus() Spiel_Status() Spiel_Lose() Spiel_Win() End If WaitTimer (TimerFrame) Flip 0 Until KeyHit (1) ;Funktionen Function Spiel_Gegner_Erstellen() Select Level Case 1;Level 1 Spieler=New SpielerTyp End Select End Function Function Spiel_Spieler_Maus() Color 255,0,0 Oval Spieler\X,Spieler\Y,Spieler\Breite,Spieler\Hohe End Function Function Spiel_Status() Color 0,0,255 Text 10,585,"Punkte: "+Punkte Text 150,585,"Leben: "+Leben End Function Function Spiel_Lose() If Leben =< 0 Level = 0 Text 400,585,"Verloren" End If End Function Function Spiel_Win() End Function |
||
BladeRunnerModerator |
So, Sep 19, 2010 9:41 Antworten mit Zitat |
|
---|---|---|
Es ist ja auch nicht so dass wir dir nicht helfen wollen, aber mal ganz im Ernst: Du fragst "Geht das" und postest den kompletten Code. Die Antwort würdest Du einfach dadurch erhalten dass Du diesen kompletten Code einmal ausführst. Wenn es läuft, geht es. Wenn nicht, wird was nicht stimmen, und DANN kann man ja gucken wo der Fehler liegt.
Ich helfe gern, wenn wirklich Hilfe nötig ist, aber ich sehe es nicht ein meine Zeit damit zu verbringen dir Fragen zu beantworten die du dir ohne weiteres selbst beantworten kannst. Zu deinem aktuell geposteten Code: Erstelle vor der Hauptschleife einmal einen Spieler, nicht laufend einen neuen. Dieser eine bleibt dann erhalten. Die Mouseposition musst Du dann in der Hauptschleife immer neu setzen. In deinen Funktionen musst Du die Spielerinstanz als Parameter übergeben (Wenn es mehrere Spieler geben kann muss die Funktion ja wissen für welchen Spieler sie aufgerufen wird). |
||
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 |
hazumu-kun |
So, Sep 19, 2010 12:31 Antworten mit Zitat |
|
---|---|---|
Pac-Man hat Folgendes geschrieben: hazumu-kun hat Folgendes geschrieben:
P.s.: Man verzeihe mir mein goto in der for-each Schleife, mir fiel grade keine schönere Lösung ein, und ein goto für sinnvolle Zwecke schadet ja nicht. Wieso? Geht das nicht mit Else? Ja, klar *facepalm* @hubsi: Tut mir Leid, ich war grade in Java als ich das schrieb, wird korrigiert. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
Raiden93 |
So, Sep 19, 2010 13:00 Antworten mit Zitat |
|
---|---|---|
Also ich hab es jetzt soweit alles geschafft nur warum wird der Gegner nur 1 mal gezeigt?
Code: [AUSKLAPPEN] Type GegnerTyp
Field X#, Y#, Speed# ;Bewegung Field Schaden# ;Waffen Field Leben# ;Eigenschaften End Type Type SpielerTyp Field X#, Y#, Speed# Field Schaden# Field Leben# Field Breite#,Hohe# End Type Global Spieler.SpielerTyp Global Gegner.GegnerTyp Spieler=New SpielerTyp Global Level = 1 For i=1 To 3 Gegner=New GegnerTyp Gegner\X = Rand(-50,-550) Gegner\Y = Rand(50,550) Next ;Hauptschleife Select Level Case 1;Level 1 DrawImage Spiel_Gegner1_IMG,Gegner\X,Gegner\Y Gegner\X = Gegner\X +Rnd (0.5,3) End Select Ich hab so ein leichten schimmer das die Gegner übereinander gezeichnet werden aber das müsste doch mit Rand weg gehen oder irre ich mich? |
||
XeresModerator |
So, Sep 19, 2010 13:25 Antworten mit Zitat |
|
---|---|---|
Gehst du denn dabei alle GegnerTyp-Types mit for...each durch? | ||
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) |
Raiden93 |
So, Sep 19, 2010 13:35 Antworten mit Zitat |
|
---|---|---|
nein muss ich also über all mit for each machen? | ||
XeresModerator |
So, Sep 19, 2010 13:37 Antworten mit Zitat |
|
---|---|---|
Du solltest ein Tutorial durcharbeiten damit du selbst verstehst, was du machst. Im Forum gibt es außerdem 1 Mio. Beispiele - mindestens. | ||
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) |
Raiden93 |
So, Sep 19, 2010 13:41 Antworten mit Zitat |
|
---|---|---|
Hey Leute ich habe es geschafft freu danke für eure Hilfreichen Tipps und Verbesserungen und ich dachte ich verstehe das nie habe es schon 100mal durch gekaut ^^
Ich werde es jetzt noch üben das ich auch nichts mehr falsch mache. |
||
PacMani |
So, Sep 19, 2010 14:22 Antworten mit Zitat |
|
---|---|---|
Irgendwie glaube ich ihm das jetzt nicht. | ||
BladeRunnerModerator |
So, Sep 19, 2010 18:42 Antworten mit Zitat |
|
---|---|---|
Das soll hier nicht das Thema sein, Pac-Man. | ||
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 |
Raiden93 |
Mo, Sep 20, 2010 14:54 Antworten mit Zitat |
|
---|---|---|
Ich habe jetzt ein wenig am Spiel gebastelt und habe jetzt ein Problem mit der For schleife weil ich sie in meine Hauptschleife gepackt habe aber anders kann ich das For ja nicht als variable nutzen?
Jemand eine Idee? Die Gegner Spawnen ins unendliche ist ja auch klar aber wenn ich es aus der Hauptschleife nehme ist GS nicht mehr änder bar HAUPTSCHLEIFE Code: [AUSKLAPPEN] For i=1 To GS Gegner=New GegnerTyp Gegner\X = Rand(-50,-550) Gegner\Y = Rand(50,550) Next |
||
Progger93 |
Mo, Sep 20, 2010 15:11 Antworten mit Zitat |
|
---|---|---|
Ich nehme mal an dass du auch nach dem Spielstart noch die Anzahl der Gegner verändern willst.
Dazu musst du einfach neue erzeugen, allerdings nur dann wenn du wirklich neue willst, denn ansonsten werden ja bei jedem Schleifendurchlauf X Gegner erzeugt: Code: [AUSKLAPPEN] If NeueGegner=True Then
For i=0 to NeueGegnerAnzahl ;GegnerErzeugen Next Endif |
||
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT |
Raiden93 |
Mo, Sep 20, 2010 15:13 Antworten mit Zitat |
|
---|---|---|
So habe ich das ja auch gemacht aber sobald es dann True wird kommen 10000Gegner... | ||
XeresModerator |
Mo, Sep 20, 2010 15:20 Antworten mit Zitat |
|
---|---|---|
Nachdenken -> Negative Rückkoppelung...
Code: [AUSKLAPPEN] If NeueGegner=True Then
NeueGegner=False For i=0 to NeueGegnerAnzahl ;GegnerErzeugen Next Endif |
||
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) |
Raiden93 |
Mo, Sep 20, 2010 16:52 Antworten mit Zitat |
|
---|---|---|
Ok wieder was dazu gelernt^^ | ||
Raiden93 |
Mo, Sep 20, 2010 20:47 Antworten mit Zitat |
|
---|---|---|
Hey Leute hab mal wieder eine Frage mit einem Problem
Ich habe jetzt ein Gegner und Playertyp und ich muss die ja mit Each ansprechen aber wie mache ich das wenn beide gleichzeitig angesprochen werden müssen? Code: [AUSKLAPPEN] For Spieler.SpielerTyp=Each SpielerTyp ;Maus Erstellen
Spieler\Y = MouseY() Spieler\X = 710 Color 255,0,0 Oval Spieler\X,Spieler\Y,10,10 ;Schuss Erstellen Oval Spieler\Schuss_X,Spieler\Schuss_Y,3,3 Spieler\Schuss_X = Spieler\Schuss_X -3 If MouseHit(1) ;Maus links Spieler=New SpielerTyp Spieler\Speed=Rnd(0.01,0.25) Spieler\Schuss_Y = MouseY() +3 Spieler\Schuss_X = 710 End If ;Kollision UND AB HIER IST DAS PROBLEMM Spieler wird mit Each angesprochen und was mit Gegner? If Spieler\Schuss_X => Gegner\X And Spieler\Schuss_X <= Gegner\X +50 If Spieler\Schuss_Y => Gegner\Y And Spieler\Schuss_Y <= Gegner\Y -50 End If End If Next |
||
XeresModerator |
Mo, Sep 20, 2010 22:17 Antworten mit Zitat |
|
---|---|---|
In "Gegner" steht die letzte Instanz dieses Typs... Nach einer For...Each schleife wäre sie NULL... Wenn du alles-gegen-alles überprüfen willst, musst du wohl zwei verschachtelte For...Each Schleifen verwenden. | ||
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) |
Raiden93 |
Mo, Sep 20, 2010 23:14 Antworten mit Zitat |
|
---|---|---|
Hmm kannst du mir sagen was du mit verschachtelt meinst^^?
Und kann ich sag ich jetzt nochmal Hauptkategorien oder was das ist löschen sprich Code: [AUSKLAPPEN] If Spieler\Schuss_X =< 100
Delete Spieler\Schuss_X End If Weil sonst müsste ich mir für den Schuss ein extra Type machen.:/ |
||
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group