Author Topic: anfänger mit schleifen  (Read 6734 times)

Offline kanonet

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1142
    • View Profile
    • My GLBasic code archiv
Re: anfänger mit schleifen
« Reply #15 on: 2013-Apr-09 »
Ein GOTO wird nicht gerne gesehen, weil dann dieser "Spagetticode" entsteht  :x
Schon klar, aber da eine Schleife am Ende ohnehin als "goto" übersetzt wird ist es egal ob man den Spagetticode vermeided in dem man entschprechende Schleifen verwendet oder Goto vorsichtig einsetzt. Der Verweis auf die Benutzbarkeit von Basic, da ja immer Spagetticode rauskäme ist natürlich purer Blödsinn. Im übrigen geht es mir da wie dir, ich verwende GOTO überhaupt nicht, schließlich kann alles durch Schleifen dargestellt werde.
Aber ich gebe zu, dass dieses Thema leicht Offtopic ist.  :whistle:
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5014
  • O Rly?
    • View Profile
Re: anfänger mit schleifen
« Reply #16 on: 2013-Apr-10 »
Aber nur leicht OT ^^
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline BumbleBee

  • Global Moderator
  • Prof. Inline
  • *******
  • Posts: 891
    • View Profile
Re: anfänger mit schleifen
« Reply #17 on: 2013-Apr-10 »
Ich mach alles mit GOTO. Damit kann ich meinen Quellcode offenlegen und keine Sau blickt durch.  :D

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5014
  • O Rly?
    • View Profile
Re: anfänger mit schleifen
« Reply #18 on: 2013-Apr-10 »
Ich mach alles mit GOTO. Damit kann ich meinen Quellcode offenlegen und keine Sau blickt durch.  :D

Cheers


Coding like a GOTO:BOSS :D
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Marmor

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 908
  • 96A285CC
    • View Profile
    • my youtube channel
Re: anfänger mit schleifen
« Reply #19 on: 2013-Apr-10 »
also ich nutze nie goto ! echt  :whistle:
was mich aber wundert das in der exe trotzdem jmp's vorkommen ! sauerei sowas  :whistle:

mal ehrlich , wer liest sich seinen code nach einem jahr durch und versteht ihn noch ?
ob mit oder ohne goto , neuschreiben ist da oft besser.
oceans methode gefällt mir ganz gut , alles nah aneinander in einer funktion das passt .

Offline S.O.P.M.

  • Prof. Inline
  • *****
  • Posts: 529
    • View Profile
Re: anfänger mit schleifen
« Reply #20 on: 2013-Apr-11 »
Ich mache das immer so, ich habe mehrere WHILE WEND Schleifen die alle von dem Wert einer Variablen abhängen und mit dieser Steuerungsvariable kann ich jede der Schleifen nach Bedarf anspringen. Macht das wer auch noch so? Mir gefällt das nicht, alles in einer Schleife zu haben und dann mit vielen IF's abfragen zu müssen, welcher Teil gerade ausgeführt werden darf und welcher nicht.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5014
  • O Rly?
    • View Profile
Re: anfänger mit schleifen
« Reply #21 on: 2013-Apr-11 »
Ich verschachtel :)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline kanonet

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1142
    • View Profile
    • My GLBasic code archiv
Re: anfänger mit schleifen
« Reply #22 on: 2013-Apr-11 »
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Offline Metamorphose

  • Mr. Drawsprite
  • **
  • Posts: 82
    • View Profile
Re: anfänger mit schleifen
« Reply #23 on: 2013-Apr-12 »
so, nochmals ne frage betreffend schleifen.
ich würde gerne, wenn der held einen feind schlägt, für eine halbe sekunde ein bild anzeigen, dieses bild wieder verbergen, für eine halbe sekunde ein anderes bild anzeigen + 1x musik abspielen bei jedem der bilder.
also eine kleine schlaganimation. (bild 1 = held schlägt, bild 2 = monster schlägt).

hier hat mal jemand timer vorgeschlagen.
weiss nur nicht wie ich das ganze bewerkstelligen kann.
kann mir da jemand helfen?
lalagames - www.metamo.ch/lalagames/
Keine K?nstler Online - www.keinekuenstler.ch
M?rchenwelt PNP-RPG - www.metamo.ch/maerchenwelt

Offline BumbleBee

  • Global Moderator
  • Prof. Inline
  • *******
  • Posts: 891
    • View Profile
Re: anfänger mit schleifen
« Reply #24 on: 2013-Apr-12 »
Hi

also mit DRAWANIM ist das ja kein Problem sein. Das Ganze noch mit  GETTIMER gedrosselt und schon sollte es gehen. Vielleicht   macht dir jemand noch ein Beispiel.


@Schranz0r
 
Apropos GOTO. Was hältst du von diesen GOTOs?
 
   GOTO Lagerleben, GOTO Bierstand, GOTO Bierstand, GOTO Bierstand... :booze:   GOTO Klo  :puke:   GOTO Taxistand  :D

Also ich wäre dabei.   =D

Cheers

The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Offline Metamorphose

  • Mr. Drawsprite
  • **
  • Posts: 82
    • View Profile
Re: anfänger mit schleifen
« Reply #25 on: 2013-Apr-12 »
ich hab mir jetzt mehrmals gettimer angeschaut in der hilfe und immer wieder dran rumgeschraubt.

Code: GLBasic [Select]
LIMITFPS 30
LOADANIM "test.png", 0, 32,32

WHILE TRUE
DRAWANIM 0, x, 1,1
PRINT dtime, 200, 200

dtime = GETTIMER()
IF dtime>30
x=x+1
ENDIF

SHOWSCREEN
WEND

 

wie kann ich das umschreiben, dass die anim jede sekunde weitergeht? ich kapier das glbasic-hilfebeispiel nicht.
in diesem code geht er alle 30 1en hoch. weiss nicht wie ich des umschreiben kann.
« Last Edit: 2013-Apr-12 by Metamorphose »
lalagames - www.metamo.ch/lalagames/
Keine K?nstler Online - www.keinekuenstler.ch
M?rchenwelt PNP-RPG - www.metamo.ch/maerchenwelt

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5014
  • O Rly?
    • View Profile
Re: anfänger mit schleifen
« Reply #26 on: 2013-Apr-12 »
Hi

also mit DRAWANIM ist das ja kein Problem sein. Das Ganze noch mit  GETTIMER gedrosselt und schon sollte es gehen. Vielleicht   macht dir jemand noch ein Beispiel.


@Schranz0r
 
Apropos GOTO. Was hältst du von diesen GOTOs?
 
   GOTO Lagerleben, GOTO Bierstand, GOTO Bierstand, GOTO Bierstand... :booze:   GOTO Klo  :puke:   GOTO Taxistand  :D

Also ich wäre dabei.   =D

Cheers

Bin dabei! :D Machen wir dieses Jahr wieder? Evtl. mal versuchen Gernot mit zu nehmen :)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Metamorphose

  • Mr. Drawsprite
  • **
  • Posts: 82
    • View Profile
Re: anfänger mit schleifen
« Reply #27 on: 2013-Apr-12 »
leute, dass ist alles ot.
macht nen eigenen goto-thread auf.
lalagames - www.metamo.ch/lalagames/
Keine K?nstler Online - www.keinekuenstler.ch
M?rchenwelt PNP-RPG - www.metamo.ch/maerchenwelt

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Re: anfänger mit schleifen
« Reply #28 on: 2013-Apr-12 »
ich verwende eigentlich lieber GETTIMERALL().
vielleicht macht das folgende kleine Beispiel es klarer. Es erhöht die Variable zaehler jede Sekunde um 1.

Die Zeit bis zur nächsten Erhöhung von zaehler wird in der Variablen Zeit gespeichert. Das ist dann jeweils die aktuelle Zeit (GETTIMERALL) plus die gewünschte Verzögerung (verzoegerung).

Wenn diese abgelaufen ist (zeit ist kleiner als die aktuelle Zeit), wird die Variable zaehler erhöht und die Zeit bis zur nächsten Erhöhung von zaehler neu berechnet.

Code: GLBasic [Select]
LOCAL zaehler = 0
LOCAL verzoegerung = 1000  // 1000 Millisekunden
LOCAL zeit

WHILE TRUE
       
        PRINT zaehler, 0, 0
        IF zeit < GETTIMERALL()
                INC zaehler
                zeit = GETTIMERALL() + verzoegerung    
        ENDIF
       
        SHOWSCREEN
       
WEND
 

Offline Metamorphose

  • Mr. Drawsprite
  • **
  • Posts: 82
    • View Profile
Re: anfänger mit schleifen
« Reply #29 on: 2013-Apr-12 »
genau so ein beispiel hab ich gesucht.
wie geht das ganze mit gettimer?
weil so wie ich das versteh, sehe ich mit gettimerall seit wann das programm läuft.
lalagames - www.metamo.ch/lalagames/
Keine K?nstler Online - www.keinekuenstler.ch
M?rchenwelt PNP-RPG - www.metamo.ch/maerchenwelt