anfänger mit schleifen

Previous topic - Next topic

kanonet

Quote from: Schranz0r on 2013-Apr-09Ein 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

Schranz0r

Aber nur leicht OT ^^
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

BumbleBee

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

Schranz0r

Quote from: BumbleBee 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 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Marmor

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 .

S.O.P.M.

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

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

kanonet

Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Metamorphose

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

BumbleBee

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

Metamorphose

#25
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.
lalagames - www.metamo.ch/lalagames/
Keine K?nstler Online - www.keinekuenstler.ch
M?rchenwelt PNP-RPG - www.metamo.ch/maerchenwelt

Schranz0r

Quote from: BumbleBee 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 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Metamorphose

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

Quentin

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

Metamorphose

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