Type tut! Von dummies für dummies, Type Tutorial
Übersicht

![]() |
DottakopfBetreff: Type tut! Von dummies für dummies, Type Tutorial |
![]() Antworten mit Zitat ![]() |
---|---|---|
Types für Dummies
Hio blitzer ! Dotta hatte mal wieder zu viel zeit, und traut sich ein type tut raus zugeben! Wenns nicht zu gebrauchen ist... freut sich der trash drüber ^^ ![]() Ach ja rechtschreibfehler gelten der allgemeinen belustigung, und verbesserungen sind erwünscht. also: Types für Dummies von Dummies ! Hi in diesem tut versuche ich euch die types und ihr unglaubliches potenzial näher zu bringen. Ich werde dies anhand von kleinen herabfallenden Bällen demonstrieren, welche verschiedene Farben, Geschwindigkeiten und Größen aufweisen. (ganz unten Beispiel) Gleich mal vorab, ich bin in diesem tut nicht auf alles extrem genau eingegangen, es soll als kleine basis dienen auf die dann weiter aufgebaut wird. Was sind types und was machen die überhaupt ???? Ein type ist eine art Variable die mehrere werte/Eigenschaften in sich vereinen kann. Mit ihnen lassen sich Horden von Soldaten oder z.B. zig tausende Sterne gleichzeitig kontrollieren. Und jeder dieser Sterne oder Soldaten hat seine Eigenarten(Größe, Farbe, Geschwindigkeit etc.) und diese kontrolliert/berechnet der type für jedes einzelne Objekt das auf dem Bildschirm gemalt wird. und wie macht das der type ???? Nun ja zuerst muss der type wissen, was er überhaupt darstellt(ein Stern oder ein Soldat?). Und dann möchte er wissen was für Eigenschaften er hat(Farbe usw.). Wenn das geschehen ist, ist der type "festgelegt". Blitzbasic weis nun das es diesen type gibt. Dieses festlegen des types muss vor der Main-schleife geschehen. So, wollen wir nun mal einen type festlegen und ihm einige Eigenschaften zuweisen. - einen "ball type" festlegen und ihm Eigenschaften zuweisen - also zuerst sagen wir blitzbasic, dass wir einen type haben wollen der "ball" heißt: Code: [AUSKLAPPEN] type ball und jetzt geben wir dem "type ball" seine Eigenschaften(farbe,größe,fall_geschwindigkeit,x koord, y koord) das macht man mit dem befehl "field", also : Code: [AUSKLAPPEN] field farbe field größe field speed field ball_x field ball_y und jetzt da alles im type festgelegt wurde, muss man noch bb sagen, das der type hier endet also: Code: [AUSKLAPPEN] end type Zusammen gesetzt sieht das dann so aus: Code: [AUSKLAPPEN] type ball field farbe field größe field speed field ball_x field ball_y end type tata ! ein type wurde festgelegt. Zur Erinnerung dies muss immer vor der schleife geschehen Ok der erste teil des types ist fertig, jetzt weis bb schon einmal das irgendwann mal ein type verwendet wird, der "ball" heißt, und jeder einzelne ball die Eigenschaften farbe,größe usw. hat. Überhaupt bestehen die types im groben nur aus 3 teilen. 1. festlegen, welche Eigenschaften hat er ? 2. erstellen und werte zuweisen. welche farben? welche größen? 3. den Type "etwas machen lassen" in unserem Beispiel soll er einfach nur fallen Ok Punkt 1 ist erledigt, wenden wir uns Punkt 2 zu, dem erstellen/setzten des types. Damit bb versteht, dass wir jetzt einen type ansprechen wollen, muss ich ihm ein "Zeichen" dazu geben. Das ist eine spezielle Syntax die dann so aussieht: Wenn ich den kompletten "ball" type ansprechen will, brauche ich diese Syntax: Code: [AUSKLAPPEN] info.ball wenn ich jetzt aber nur eine "Eigenschaft" des types ansprechen will, muss statt dem "." ein "\" her also: Code: [AUSKLAPPEN] info\farbe Für das Wort "info" kann man schreiben was mal will, zb. type1\eingenschaft oder lol.type_name Ich Persönlich benutze "info" weil ich dann genau weis, dass dies in meinem code für einen type steht. Was ihr für "info" hinschreibt ist euch überlassen. Jedoch müsst ihr beachten, dass dies immer nur für einen typ gilt. Beim 2ten müsst ihr euch ein anderes wort ausdenken. Das Wesentliche ist einfach nur, dass du dir merkst, ein " . " steht für den type selbst und ein " \ " für seine Eigenschaften(felder). Um das ganze etwas zu entwirren, zeige ich mal wie das auszusehen hat, wenn man einen type erstellt: 1. den type ansprechen und sagen, "das wird ein neues type_objekt auf dem Bildschirm" 2. type_eigenschaften werte zuweisen In bb hat das dann so auszusehen: Code: [AUSKLAPPEN] info.ball = new ball ;erstellt einen neuen ball info\farbe = rnd(0,255) ;farbe wird ein zufalls-farbwert von 0 - 255 zugewiesen info\größe = rnd(1,5) ;eigenschaft größe wird zufällig bestimmt info\speed = rnd(2,4) info\ball_x = rnd(0,800) ;irgendwo auf dem bildschirm spawnen lassen info\ball_y = -5 ; -5 da spawn aussehrhalb der sichtweite stattfinden soll Also noch mal, was ist da jetzt geschehen ? zu erst wird ein type erstellt. (info.ball = new ball) und dann bin ich alle type Eigenschafen durchgegangen die ich oben zuerst festgelegt habe, und habe ihnen werte zugewiesen. Jetzt ist der type fertig erstellt, man muss nur noch damit irgendetwas machen. Bevor wir uns jetzt aber auf das nächsten punkt stürzen, hier noch mal eine zusammen Fassung: types werden immer vor der schleife festgelegt ! Code: [AUSKLAPPEN] type ball ;so heißt der type field farbe ;das sind seine eigenschaften field größe field usw end type ; type fertig definiert Wenn ein type öfter erstellt werden muss, zb. mehrere Bälle, laser_schüsse, Soldaten was weis ich, dann muss das erstellen in einer schleife stattfinden, ist ja logisch. Code: [AUSKLAPPEN] repeat ;schleife wenn irgendwas passiert dann ---> erstelle type auf bildschirm info.ball = new ball ;type erstellt info\farbe = rnd(0,255 ) ;seinen eigenschaften werte zuweisen info\größe = rnd(1,3) usw until keyhit(1) ;ende schleife jetzt werden die Bälle aber noch ohne zeitlichen abstand erstellt, und wenn man das so lassen würde, würde es ziemlich aufm Monitor abgehen^^ also noch schnell ein Timer eingebaut der für eine schön gleichmäßige Verteilung sorgt: Code: [AUSKLAPPEN] counter = counter +1 ; der timer if counter >15 then ;wenn timer = 15 dan ball erstellen counter = 0 info.ball = new ball ;type erstellt info\farbe = rnd(0,255) ;seinen eigenschaften werte zuweisen info\größe = rnd(1,3) usw end if Gut. jetzt wenn man des testen würde, würde nichts passieren... Der wichtigste und letzte punkt fehlt noch "der mach was mit jedem einzelnen ball - punkt" In diesem abschnitt wird dass fallen berechnet und der type als ein ball(oval) gezeichnet. Sobald der ball den unteren Bildschirm Rand erreicht, wird dieser wieder gelöscht. also wie jetzt??? Zuerst müssen wir bb klarmachen, dass wir jetzt alle Bälle, die erstellt wurden, ansprechen wollen und sie nach unten plumpsen lassen wollen. Also sprechen wir erstmal alle Bälle an. ---> den "ball" type in dem ja alle Bälle gespeichert sind, egal welche Farbe und Geschwindigkeit sie gerade haben. Das Schlüsselwort zum ansprechen aller Bälle die im Typ gespeichert sind heist : EACH Also : Code: [AUSKLAPPEN] For info.ball = each ball ;each also JEDER ball info\ball_y = info\ball_y + info\speed oval info\ball_x,info\ball_y,info\größe,info\größe ;bewegen if info\ball_y >600 then delete info.ball ;löschen next Um kurz noch den befehl "delete" anzusprechen. Dieser befehl löscht einen eintrag, so wie es der name ja bereits verrät. Wenn man jetzt ein einzelnes type objekt löschen will( einen ball ), muss man das schreiben: - löscht ein einzelnes Objekt - Code: [AUSKLAPPEN] delete info.ball und wenn man alle löschen möchte: - löscht alle Objekte Code: [AUSKLAPPEN] delete each ball Hinweis: Nach einem delete befehl darf der type nicht mehr angesprochen werden. Weil sonst die fehlermeldung "objekt does not exist" erscheint. Ist ja klar... du löscht den ball, willst dann aber das er etwas macht. Also sowas wird niemals klappen : Code: [AUSKLAPPEN] delete info.ball info\ball_y = info\ball_y + 3 ;FALSCH ! dieses objekt wurde ja gerade gelöscht schön ! soweit fertig. verstanden hat es eh keiner auf Anhieb, weil das wäre sonst ein wunder ^^ Hier zum angucken und rumbasteln der lauffähige Code des ball progis. Das Ball Progi. Es ist nichts großartiges, aber es enthält viele basics. Wer dies beherrscht, kann sich dann ja mal an ein space shooter ranmachen. Vom Prinzip her genau das selbe. Beispiel 1 Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() ;wird später zum ball erstellen benötigt (timer) Global counter ;das ist der ball type mit seinen "feldern"(eigenschaften) Type ball Field farbe Field grosse Field speed Field ball_x Field ball_y End Type ;main schleife ------------------------- Repeat Cls balle_erstellen() balle_machen_lassen() Flip Until KeyHit(1) ;--------------------------------------- ;hier werden die balle in zeilichen abständen erstellt Function balle_erstellen() counter = counter +1 If counter >= 15 Then counter = 0 info.ball = New ball ;ball erstellen info\farbe = Rnd(0,255) ;eigenschaften werte zuweisen info\grosse = Rnd(2,9) info\speed = Rnd(1,4) info\ball_x = Rnd(0,800) info\ball_y = -5 End If End Function Function balle_machen_lassen() For info.ball = Each ball ;alle bälle ansprechen info\ball_y = info\ball_y + info\speed ;alle bälle nach unten Color info\farbe,100,50: Oval info\ball_x , info\ball_y , info\grosse , info\grosse ;farbe von ball und ball erstellen If info\ball_y >600 Then Delete info.ball ;unten angekommen ball löschen Next End Function Beispeil 2 Code: [AUSKLAPPEN] ;mit linker maustaste "partikel" types erstellen Graphics 800,600,32,2 SetBuffer BackBuffer() ;globals Global counter Global speed_x# Global speed_y# ;types Type partikel Field px# Field py# Field p_live ;lebenszeit eines partikels Field p_speedX# Field p_speedY# End Type ;main------------------------------------ Repeat Cls speed_x = MouseXSpeed() ;übernimmt den mausspeed für den partikel speed_y = MouseYSpeed() create_partikel() update_partikel() Flip Until KeyHit(1) ;------------------------------------- Function create_partikel() If MouseDown(1) Then counter = counter +1 If counter >= 5 Then counter = 0 info.partikel = New partikel info\px = MouseX() info\py = MouseY() info\p_live = Rnd(80,120) info\p_speedX = speed_x ;mausspeed übergeben info\p_speedY = speed_y End If End Function Function update_partikel() For info.partikel = Each partikel info\p_live = info\p_live -1 ;partikel lebenszeit verkürzen info\px = info\px + info\p_speedX info\py = info\py + info\p_speedY Rect info\px,info\py,10,10,1 ;"Partikel" malen If info\px <0 Or info\px >800 Or info\py <0 Or info\py > 600 Or info\p_live <0 Then Delete info.partikel ;löschen End If Next End Function Testet euch selbst ! Aufgabe zu Beispiel 2 - Verpasse jedem der rechtecke eine andere zufällige farbe - Es sollen verschieden große Rechtecke erstellt werden - bau eine simple gravitation ein, welche die rechtecke nach unten zieht. Wie schon zu beginn gesagt, Verbesserungsvorschläge sind gern gesehen und bestimmt auch vorhanden. mfg Dottakopf |
||
- Zuletzt bearbeitet von Dottakopf am Sa, Dez 11, 2010 23:38, insgesamt 21-mal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. Dieses Tutorial hat sowas von gar nichts mit BlitzMax zu tun... Du solltest das Tutorial mal durch eine Rechtschreibprüfung laufen lassen. ![]() Ich hab ja nichts dagegen, wenn es in einem Post nur so von Fehlern wimmelt, aber bei einem Tutorial macht sich das gar nicht gut. cheers |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
woa sry mit dem falsch post ^^ hab wohl a wengle zu schnell gescrollt.
Jo als ich des gestern geschrieben hab wars wohl scho a wengle spät. mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte dich auch dringenst bitten dein Tutorial in der Rechtschreibung massiv zu überarbeiten. Du meinst es gut und hast viel Arbeit investiert, aber das wird durch die Rechtschreibung zunichte gemacht.
Bälle werden gespawned, nicht gespornt, so als Beispiel. Und eines musst du mir noch erklären: Seit wann weiss man wenn man info.irgendwas liesst dass es sich um einen Type handelt ? und wie machst Du das wenn du 2 verschiedene Types hast? Ein 2es Type wird hier ein "Variable Type Mismatch" liefern. Diese gezielte Falschinformation solltest Du noch korrigieren. Also nochmal: Bitte mach das ganze (zumindest fast) fehlerfrei, damit es den Qualitätsansprüchen hier genügt - es wäre schade das Tut entsorgen zu müssen nur weil die Präsentation Macken hat. |
||
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 |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok ok,
das problem ist nur, dass ich gerade in der arbeit sitz und da etz ned soviel zeit hab diesen text zu korrigieren. Hmm das mit "info.blup" hab ich wohl zu sehr von mir auf andere schlussgefolgert.... Für mich persönlich, in meinen codes, ist info ein klares type anzeichen. Und wenn halt zwei types sind dan mach ich da info2. draus. Jaja schimpft nur, dass das schlecht und "böse" ist, für mich ist das aber selbstverständlich und ich arbeite auch so schon eine ganze weile. Ich bin halt kein rechtschreib genie... aber ich werd mich drum kümmern ! Dabei wird auch der sachliche inhalt nich zu kurz kommen. mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
- Zuletzt bearbeitet von Dottakopf am Mi, Sep 26, 2007 7:33, insgesamt 2-mal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Niemand sagt es sei schlecht oder böse - es ist nur nicht die Konvention als die Du es verkaufst. Und Du hast in deinem Tut eben auch die Tatsache unterschlagen dass man bei mehreren Types einen veränderten Namen braucht. Da Du dein Tut für Beginner geschrieben hast wäre das aber eine wichtige Info.
Das ist ja kein Anschiss, es ist konstruktive Kritik - besser die genannten Punkte noch nach (muss ja nicht innerhalb 5 Minuten sein) und Du hast ein schönes Tutorial geschaffen. |
||
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 |
![]() |
maboxBetreff: Hi Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich finde das Tutorial sehr gut! ich kannte mich vorher noch fast nicht mit Types aus und habs schon beim ersten mal lesen verstanden. Großes Lob!
mfg Maurits |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke hört man gerne !
Wenn einer noch irgendwelche sachlichen fehler findet, oder es stellen gibt die schwer zu verstehen/nachvollziehen sind bitte melden. meiner meinung nach gehört hier noch mehr type stuff dazu: type kompakt OH -Seite nicht mehr vorhanden- type robsite (bischen scrollen) http://www.robsite.de/suche.php Gleich mal thx für feedback !! mfg Dottakopf |
||
- Zuletzt bearbeitet von Dottakopf am Di, März 24, 2009 17:52, insgesamt 2-mal bearbeitet
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nettes tut... eine Kleinigkeit fehlt mir dabei aber (hatte, wie ich mit den Types angefangen hab, kleine Probleme damit): schreib irgend wo rein, das nachdem ein type gelöscht worden ist, keinerlei Anfragen mehr drauf kommen dürfen, also nicht, zb, so:
Code: [AUSKLAPPEN] for b.ball = each ball delete b.ball print b\farbe next |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
mpcool |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich finde das Tut auch super, vorher habe ich überhaupt nichtmal gewusst was Types sind, aber jetzt ![]() Also großes Lob von mir, egal was die anderen sagen, mir hats geholfen ![]() |
||
Crossbow |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Ich würde mich freuen, wenn jemand (der wirklich viel von BB versteht) bestätigen könnte, das nun alle Angaben in dem Tutorial korrekt und verlässlich sind. "Denn einen wackliges Fundeament bemerkt man oft erst spät und kann später zu schwerwiegenden Problemen führen". Ansonsten möchte ich aber sagen, dass ich es sehr gut finde das ein "Dummie" ein Tutorial für "Dummies" schreibt, da ein "Dummie" eher auf Dinge eingeht die für einen Profi selbstverständlich sind. Diese Erfahrung habe ich auch im Französischunterricht in der Schule gemacht: Die ersten 2 Lehrer die ich hatte, hatten Französisch als Muttersprache. Bei diesen 2 Lehrern lernte man kaum etwas. Die nächsten 2 hatten Deutsch als Muttersprache und bei ihnen lernte man viel mehr. MfG Sämi |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Fehler sind mir keine aufgefallen. kannst ja nochmal alles mit mienem Schnellkurs vergleichen sollte irgendwas nicht übereinstimmen müssen wir nochmal kuken haben sollte aber nicht sein | ||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun, ich würde sagen, in dem Tutorial sind keine Fehler enthalten.
Jedoch wäre es besser, wenn du die ganzen "Schnell, schnell" Code Beispiele etwas abänderst, das viele "Blup" und "Blap" ist in einem guten Tutorial einfach fehl am Platze, meiner Meinung nach. Auch würde ich anstatt "Info" eher eine Variable verwenden, die etwas mit der Klasse zu tun hat. Auch fehlt die Info, das Types immer mit einem "T" beginnen sollten. Noch dazu ist ein "Type" kein wirklicher dahingesagter "Type", vielmehr sollte dem Benutzer vermittelt werden, das es eine "Klasse" ist. (Finde es ehrlich gesagt ein wenig doof, das es unbedingt "Type" sein muss... Class wäre viel selbsterklärender) Ein kleiner Beispiel code: Code: [AUSKLAPPEN] Type TBall
Field x%, y% Field Color% Field xspeed#,yspeed# Field size# Field id% End Type SeedRnd MilliSecs() Graphics 640,480,32,2 SetBuffer BackBuffer() For i% = 0 To 25 Local ball.TBall = New TBall ball\xspeed = Rnd(-2.5,2.5) ball\yspeed = Rnd(-2.5,2.5) ball\size = Rand(5,15) ball\Color = Rand($0000ff,$ffffff) ball\id = i ball\x = GraphicsWidth()/2 ball\y = GraphicsHeight()/2 Next Local txt$,rem% While Not KeyHit(1) For ball.TBall = Each TBall If OutOfRange(ball\x,ball\y) txt = "Ball "+ball\id+" was removed!" Delete ball rem = True EndIf If Not Rem ball\x = ball\x + ball\xspeed ball\y = ball\y + ball\yspeed Color 0,0,ball\Color Oval ball\x,ball\y,ball\size,ball\size EndIf Rem=False Next Color 0,0,$ffffff Text 0,0,txt Flip Cls Wend End Function OutOfRange(x%,y%) If x > GraphicsWidth() Or x < 0 Or y > GraphicsHeight() Or y < 0 Return True EndIf End Function |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Crossbow |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Junkprogger: Jetzt wo du Klasse sagst ist das ganze natürlich total was anderes. Ich hatte auch schon vermutet, dass es sich um etwas dieser Art handelt. Ich kenne die den Begriff Klasse grob von der Sprache C++.
Vieleicht wäre es noch gut wenn jemand sagen könnte ob da Unterschiede zu einer allgemein definierten Klasse bestehen oder nicht? Das würde endlich Licht ins Dunkle bringen. MfG Sämi |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Klasse hat damit nichts zu tun. Der da korrektere C / C++ Begriff wäre Struct ("benennungsfähiger Memoryblock")
Eine Klasse würde implizieren, dass man auch methoden / funktionen etc darin unterbringen kann, was man nicht kann. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. Es gibt keine Zugriffsmodifizierer wie 'private', 'protected' und 'public'. Auf die Member kann von überall zugegriffen werden.
2. Es gibt keine Methoden oder Funktionen innerhalb eines Types. 3. Alle Type-Instanzen werden in einer internen Liste gespeichert, wodurch es möglich ist, mit 'For/Each'-Schleifen und den Schlüsselwörtern 'First', 'Before', 'After' etc. auf die Instanzen zuzugreifen. Das Handle auf das Objekt muss nicht zwangsweise in einer Variable gespeichert werden. Insgesamt entspricht ein Type also eher einer Struktur als einer Klasse ( C++ ). Edit: Langsamer, aber ausführlicher. ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay, das war ein kleiner Denkfehler, klar meinte ich Struktur, jedoch ist "Klasse" ein besserer Begriff um etwas damit Anfangen zu können als Anfänger. | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eigentlich ja. Das Problem ist wenn man nach "Klasse" googlen würde, würde dies zu massiver Verwirrung führen | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
MikeDee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer BackBuffer() SeedRnd MilliSecs() Local Timer=CreateTimer(60) Type ball Field farbe Field groesse Field speed Field ballx Field bally End Type Repeat Cls MS = MilliSecs() If MS-timer>1000 Then tball.ball = New ball tball\farbe = Rnd(0,255) tball\groesse = Rnd(1,5) tball\speed = Rnd(2,4) tball\ballx = Rnd(0,800) tball\bally = -5 timer=MS EndIf For tball.ball = Each ball tball\bally = tball\bally + tball\speed Color tball\farbe,100,50 Oval tball\ballx , tball\bally , tball\groesse , tball\groesse If tball\bally >600 Then Delete tball.ball Next WaitTimer Timer Flip 0 Until KeyHit(1) End geht nicht, warum? |
||
Nicht wenige benutzen die Anonymität des Internets um berühmt zu werden. |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Liegt daran, dass du in deiner Schleife eine Variable namens "timer" hast.
Bei Code: [AUSKLAPPEN] WaitTimer(Timer) ruft das dann einen Fehler hervor, da "timer" jetzt einen anderen Wert hat, als sie zu Anfang per CreateTimer![]() Aber mit Debug hättest du das doch sicher selbst schnell rausfinden können, wenn die Meldung kommt "Timer does not Exist" ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group