Include Tutorial?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Raiden93

BeitragDo, Sep 23, 2010 10:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey ich hab ja mal was alleine hingekriegt xD jetzt geht es nur Xeres ich bedanke mich ja das du mir schon so viele tipps gesagt hast.Aber du musst bedenken ihr macht das ja Freiwillig und seit nicht gezwungen mir zu Helfen ich kann ja auch nicht mehr tun als zu bitten und zu danken Smile

Xeres

Moderator

BeitragDo, Sep 23, 2010 10:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, du könntest mehr tun als bitte und danke sagen: Selber nachdenken zum Beispiel. Früher gab es noch kein Portal in dem man alles nachschlagen konnte, und man hat autodidaktisch gelernt, durch nachdenken und ausprobieren - und wenn man was selber herausfindet bleibt es auch definitiv im Schädel.
Heute liegen alle Informationen eine Suche weit entfernt, und du fragst trotzdem nochmal nach. Du wirst dadurch nichts lernen und darauf zurückgreifen, bei simpelsten Problemen im Forum nach zu fragen. Und dann auch noch mit tollen Fehlerbeschreibungen wie "funktioniert nicht" ohne das man weiß, was der Code eigentlich machen soll - da halt ich mich dann raus.
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

M0rgenstern

BeitragDo, Sep 23, 2010 13:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Bevor du wieder rumheulst, dass man keine Antworten bringt:
Einmal rate ich dir Mousehit nicht direkt abzufragen, sondern in einer Variable zu speichern (in der Hauptschleife):
BlitzBasic: [AUSKLAPPEN]
Local iMhitLeft:Int = MouseHit(1)
;... Code
;Abfrage:
If iMhitLeft Then
;Schuss erstellen oder so
EndIf


Aber woran das ganze wahrscheinlich eher liegt:
Du überprüfst ob Schuss\Schuss_Timer = 0 ist.
Dein Programm müsste sich hier eigentlich beschweren, da es gar nicht weiß, worauf du das beziehst.
Du hast keine lokale Instanz von TSchussTyp worauf ssich Schuss beziehen könnte.
Wenn dann müsstest du vor die Abfrage sowas wie for Schuss.TSchussType = each TSchusstype setzen.
Wobei ich das ganze als unsinnig empfinde. Die Zeit, die du haben willst ist ja die Zeit die vergangen ist seit dem letzten Schuss, also ob du wieder einen neuen Schuss erstellen kannst. Das solltest du nicht an den alten Schüssen festmachen, sondern einfach an zwei globalen Variablen.

Z.b. So:
BlitzBasic: [AUSKLAPPEN]
Global LetzerSchuss%, SchussZeit%
Schusszeit = 50
LetzterSchuss = MilliSecs()

If iMHitLeft Then
If (Schusszeit+LetzterSchuss) < MilliSecs() Then
;Schuss erstellen
LetzterSchuss = MilliSecs()
EndIf
EndIf


So, ich hoffe das hilft dir... Bis zum nächsten Problem auf das du stößt udn wo du andere denken lässt statt selbst zu denken.

Würdest du dich endlich mal richtig mit der Materie beschäftigen könntest du deine Fehler selbst finden.
Aber dazu müsste man ja denken und dazu scheinst du viel zu faul zu sein.
Wenn du unbedingt ein Spiel schreiben willst dann kümmer dich richtig darum. Denn wenn dir andere ALLES vorkauen dann kommst du auf Dauer auch nicht weiter.
Oder überweis mir 50 Euro auf mein Konto, sag mir was du haben willst und ich schreib dir dann Spiel. Dann müsstest du gar nicht mehr selbst denken. Du dürftest auch all deinen Freunden erzählen, dass es von dir sei.

Fang endlich mal selbst an zu denken. Ja du bist neu und ja du kannst vieles noch nicht. ABER du wirst niemals weiter kommen und du wirst nie was können wenn du andere für dich denken lässt.
Trial and Error, so ist das halt mal bei der Spieleprogrammierung.
Dann muss man halt mal von vorne Anfangen, einen ganzen Type neu schreiben oder sogar das ganze Spiel neu schreiben. Was glaubst du wie viele Projekte ich verworfen und neu angefangen hab weil es einfahc nur Müll war oder so unschön geschrieben war, dass man es nicht umschreiben konnte?
Du musst aus deinen Fehlern lernen. Aber dazu musst du Fehler machen und sie selbst bemerken.


Gruß, M0rgenstern

Thunder

BeitragDo, Sep 23, 2010 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Da muss ich noch etwas hinzufügen (um rumgeheule zu verhindern), weil M0rgenstern anscheinend aus Versehen die Variable iMhitLeft auf BlitzMax-Art deklariert hat. Sein erster Code wäre daher in BlitzBasic:
BlitzBasic: [AUSKLAPPEN]
Local iMhitLeft% = MouseHit(1)
;... Code
;Abfrage:
If iMhitLeft Then
;Schuss erstellen oder so
EndIf


mfg Thunder

Edit:
Raiden93 hat Folgendes geschrieben:
ich kann ja auch nicht mehr tun als zu bitten und zu danken

Ich bitte dich, den Satz nochmal zu überdenken. Schau halt ab und zu in die BB-Hilfe, wenn du einen Befehl nicht verstehst ("Tutorial zu Include" -> Include ist nur ein Befehl, wozu ein Tutorial? Es gibt einen schönen Eintrag in der BB-Hilfe, den man eigenständig finden kann). Die BB-Hilfe hat oben in der Menüleiste einen eigenen Button - der ist zum draufdrücken gedacht - dazu braucht man keinen eigenen Thread.

Wenn du mit deinem Code nicht klar kommst, dann geh ihn durch und nimm im schlimmsten Fall nen Zettel und einen Stift und schreib dir auf, bei welchem Schleifendurchgang welche Werte zu Stande kommen.
Außerdem gibt es noch DebugLog, Stop ...
Zitat:
Aber packe ich mein Schuss\Schusstimer in einer If schleife davor geht nix mehr dabei habe ich mir ein Schuss Tutorial runtergeladen habe alles überprüft aber geht trotzdem nicht.

Hast du das Tutorial durchgearbeitet oder Code kopiert? (nein, ich erwarte keine Antwort auf diese Frage - die soll nur zum Denken anregen).
Ich glaube, du solltest nochmal an die Grundlagen von BB (eventuell mit Robs BB Kurs 2 - oder mit einem Buch, falls du eines hast).

Raiden93

BeitragDo, Sep 23, 2010 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok ich werde mir eure Kritik zu Herzen nehmen habe es aber jetzt soweit verstanden.
Ich habe den SchussCounter einfach nicht in ein Type gesteckt sondern als Normale Variable genommen.
MFG:
Raiden93/Kevin.K
 

102030

BeitragDo, Sep 23, 2010 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
@M0rgenstern:

Warum soll man die Mausabfrage zwischenspiechern?

BladeRunner

Moderator

BeitragDo, Sep 23, 2010 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil Mousehit wenn aufgerufen die Anzahl der Klicks auf 0 zurücksetzt, d.h. der nächste Aufruf direkt danach kann nur 0 zurückgeben.
Durch das zwischenspeichern können alle Abfragen der Hauptschleife stattfinden.
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
 

102030

BeitragDo, Sep 23, 2010 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ach so, danke!

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group