Problem beim Genger erzeugen in 2D
Übersicht

Maikson_18Betreff: Problem beim Genger erzeugen in 2D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey Leute bin relativ neu in dem Gebiet
ich bin grad dabei nen simples spiel zu programmieren wo man mit der maus ein ball steuert und von oben immer steine runter kommen sollen jetz hab ich aber ein problem und zwar bekomm ich das mit den steinen nich hin :S ich wollte das mit type realisieren BlitzBasic: [AUSKLAPPEN] Global xmax=800,ymax=600 ich hoffe das ich das im ansatz schon mal richtig hab und hoffe das ihr mir helfen könnt mfg Maikson |
||
![]() |
Bura.Tino |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde Dir gerne helfen, aber ich weigere mich Deinen Spagetticode zu enziffern. Also gewöhn Dir, auch in Deinem eigenen Interesse, einen ordentlichen Programmierstil an -> Einrücken ist das Zauberwort !
Außerdem solltest Du Dein Problem genauer beschreiben, denn ein 'Ich kriege es nicht hin' ist keine qualifizierte Aussage und so wird Dir da auch niemand helfen ! Ich verweise Dich da mal an die Forumregeln. |
||
![]() ![]() |
Maikson_18 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
na ja der code sieht im editor doch etwas anders aus
wegen thema einrücken und mein problem ist dass wenn ich das programm builden will immer die Fehlermeldung "expecting variable assigment" kommt. Und denn wird der Corsur auf die For each Schleife gelegt For s.Stein Each Stein s\ystein=s\ystein+1 DrawImage stein,s\xstein,s\ystein Next |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Bura.Tino
Also nach Spaghetticode sieht das ja nun wirklich nicht aus! Alle klar strukturiert! Was willst Du? @Maikson_18 Das sieht richtig gut aus! An welcher Stelle im Code erstelltst Du denn neue Steine? Ich glaube, genau da ist der Fehler. Es wird nur 1x ein Stein erstellt, wenn START genau 80 ist, oder? Wharscheinlich müsste man in DrawStein ein "START=0" setzen oderdie If-Zeile in IF (START MOD 80) = 0 ändern. Die DrawStein würe ich übrigens eher CreateStein nennen, denn das tut sie eigentlich. Der Zeichenbefehl gehört dann da auch nicht rein, wird ja eh beim nächsten Durchgang gemalt. |
||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es muss heißen
Code: [AUSKLAPPEN] For s.Stein = Each Stein
Du hast einfach ein = vergessen ![]() Achja, und wo wir schonmal dabei sind. Benutze in Verbindung mit einem Timer am besten "Flip 0". SeedRnd brauchst du nur einmal machen. Pack die For Schleife am besten in eine Update-Funktion. Und bei SetBuffer kommt gleube ich kein "=" hin. Ich weiß aber nicht, ob's auch mit geht. @Bura.Tino: Sein Code war gut strukturiert und eingerückt. Ich verstehe wirklich nicht, was du für ein Problem hast oO |
||
- Zuletzt bearbeitet von Megamag am Fr, Dez 18, 2009 19:27, insgesamt 2-mal bearbeitet
Maikson_18 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jetz hatte ichs olange immer rumgeämdert das ich wohl vergessen hab das start=0 wieder reinzubauen ![]() das problem ist das ich ganricht erst zum ausführen des Programms komme weil mir halt vorher die Fehlermeldung "expicting variable assignment" kommt und auf die For each Schleife verweist geht das überhaupt so? "For s.Stein each Stein" selbst wenn ich das start=0 noch nich hätte würde ja wenigstens ein Stein kommen :S |
||
Maikson_18 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aah danke ![]() jetz funzt es ![]() und jetz hab ich das nächste Porblem wenn ich zufallszahlen für die x-achse wenn ich SeedRnd MilliSecs() benutze sind die zahlen immer 5stellig oder mehr aber mein bildschirm is ja nur 800 breit geht das irgendwie das man sich "von bis" Zahlen ausgeben lassen kann? |
||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] rnd(100,200)
Erzeugt eine (Float) Zahl zwischen 100 und 200. ![]() |
||
Maikson_18 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ah danke ![]() denn kann ich jetz dem ganzen dem feinschliffgeben ![]() danke an alle die mir so schnell helfen konnten und ein extra danke an midimaster das du mein code nich für spagetti hälst ^^ MFG Maikson |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hätte auch noch einen tipp:
Graphics sollte während der Testphase nicht schon auf Fullscreen gehen. Es ist viel bequemer parallel den Quelltext zu sehen, bzw den Debugger noch erreichen zu können. Ich denke, dass die meisten Jung-Proggis viel zu viel Code schreiben, bevor sie das Ganze zum ersten Mal starten. Dann können leicht ein Dutzend gleichzeitige Fehler die Fehlersuche echt schwer machen. Hier mal ein Beispiel wie ich Deinen Code reduziert habe, um den Fehler zu finden. Mit dem WAITKEY geht es Step-By-Step vorwärts... Code: [AUSKLAPPEN] Global xmax=800,ymax=600
Graphics 800,600,32,2 SeedRnd MilliSecs() Global xball=xmax/2 Global yball=ymax/2 SeedRnd MilliSecs() Global start=0 Type Stein Field xstein Field ystein Field Nr% End Type DrawStein(0) Repeat i=i+1 DrawStein(i%) Print "...waitkey" WaitKey For s.Stein = Each Stein s\ystein=s\ystein+1 Print s\nr+ ". X=" + s\xstein + " Y=" + s\ystein Next Forever End Function DrawStein(Nr) s.Stein = New Stein s\xstein=xmax/2 s\ystein=0 s\nr=nr End Function Noch Trick: Mit der laufenden "Nr" im Typ kann ich immer sehen welcher Stein gerade welchen Zustand hat. |
||
- Zuletzt bearbeitet von Midimaster am Fr, Dez 18, 2009 19:50, insgesamt einmal bearbeitet
Maikson_18 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für den guten tip ![]() ich programmier auch immer stück für stück ich compilier sogar wenn ich nur nen bild eingefügt habe um zu schaun obs überhaupt angezeigt wird wie gesagt ich bin noch nich solange dabei ich konnte mich jedoch gut reinfinden weil ich mich vorher mit c++ beschäftigt habe oder immer noch beschäftige |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
die beste Debug möglichkeit ist, den Code im Debug Modus zu Starten und mit Stop![]() Aber Achtung: Wenn du den Code dann normal ausführen willst (ohne Debugger) dann musst du die Stops wieder rausmachen. Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und DebugLog![]() ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group