lessen

Pagina 1/2
| 2

Door blackbram

Supporter (2)

afbeelding van blackbram

08-06-2006, 16:06

hoi allemaal,

ik ben op zoek naar msx lessen waarmee ik programmas en spellen kan maken want ik heb nu een emulator maar ik kan nog niet echt programeren.
als je weet waar ik dit kan vinden zeg dat dan.

groetjes blackbramQuestion

Aangemeld of registreer om reacties te plaatsen

Van wolf_

Ambassador_ (10109)

afbeelding van wolf_

08-06-2006, 18:14

Bezoek een msx-beurs, of een lokale msx-meeting. Daar zijn meestal wel boekjes te koop uit de jaren 80, dat was een beetje die tijd zegmaar.

Eerstvolgende grote beurs is in't najaar in Bussum, lokale msx-meeting is afhankelijk van waar je woont.

Uiteraard is MRC (of een van de andere msx-sites waar een forum is) ook een grote bron van antwoorden!

(kortom: stel je vragen!)

Van blackbram

Supporter (2)

afbeelding van blackbram

08-06-2006, 19:24

ok hier is een vraag:

hoe maak je een inputbox waarbij je iets kan intypen en de msx als je bijv. pietje hebt ingetypet zegt hoi pietje

Van [D-Tail]

Ascended (8263)

afbeelding van [D-Tail]

08-06-2006, 19:30

Nou, om maar met het makkelijkste te beginnen: er bestaat niet zoiets als een 'input box'. Iets in de trant van je omschrijving zou dit kunnen zijn:

10 CLS: LINE INPUT "Voer je naam in:",A$
20 PRINT "Hoi ";A$

Het eerste commando (CLS) maakt je scherm mooi leeg, behalve misschien de onderste regel. Die kun je wegkrijgen met een KEY OFF commando. Voorts wacht het LINE INPUT statement op een textuele invoer, beëindigd met een RETURN. Het zojuist getypte komt in A$ te staan die later met een PRINT op het scherm komt. Veel plezier met aanklooien! Smile

Van wolf_

Ambassador_ (10109)

afbeelding van wolf_

08-06-2006, 19:30

Je wilt een nette oplossing die dombo-proof is? Of wil je gewoon het commando 'LINE INPUT' ?

Met dombo-proof bedoel ik dus iets als een textfield in Windows, een vakje waarin je gewoon kan tiepen, niks fout kan doen, etc. etc.

Van smart duck

Master (156)

afbeelding van smart duck

08-06-2006, 21:24

Zoals in windows kan maar dan moet je dat grafisch oplossen in bijvoorbeeld screen 2.
Met: open "grp:" for output #1
kun je tekst naar grafische schermen afdrukken. Toetsen afvangen kun je met inkey$, ook de back space (char code 8).
Kijk eens of je 2e hands MSX Basic boek kunt vinden.

Van wolf_

Ambassador_ (10109)

afbeelding van wolf_

08-06-2006, 21:47

Kan ook in screen 0, met de grafische karakters (bijv. die hoekjes met graph-F etc.) voor het kadertje. En wellicht wil je geen kadertje, maar gewoon 4 liggende streepjes voor 4 in te vullen karakters. Ik bedoelde dus niet zozeer hoe het in Windows eruit ziet, maar meer hoe het werkt. Idem voor numerieke input, je wilt dus niet -in je runnende programma- die REDO FROM START onzin als de user iets verkeerd doet.

Van smart duck

Master (156)

afbeelding van smart duck

10-06-2006, 12:19

Best wel leuk weer eens wat in MSX basic te doen.
Ik zit nu meer in Pascal. Ik kon het niet laten:

10 SCREEN 5
20 COLOR 1
30 OPEN "grp:" FOR OUTPUT AS#1
40 PSET(19,9):PRINT#1,"Enter your name:"
50 REM *** This is the input box ***
60 LINE (19,19)-(181,29),14,BF
70 LINE (18,18)-(182,18),1
80 LINE -(182,30),15
90 LINE -(18,30),15
100 LINE -(18,18),1
110 COLOR ,14
120 REM *** This is the actual input routine ***
130 REM *** only a-z and A-Z are allowed     ***
140 P% = 12
150 K$ = INKEY$: IF K$="" THEN GOTO 150
160 IF ASC(K$) >=65 AND ASC(K$) <=122 AND P% <170 THEN P%=P%+8: PSET(P%, 20),14:PRINT#1, K$: W$=W$+K$
170 REM *** BACK SPACE ***
180 IF ASC(K$) = 8 AND P%>12 THEN LINE (P%,20)-(P%+8,28),14,BF: W$=LEFT$(W$, LEN(W$)-1): P%=P%-8
190 REM *** ENTER PRESSED ***
200 IF ASC(K$) = 13 THEN GOTO 220
210 GOTO 150
220 COLOR ,4
230 PSET (19,40): PRINT#1, "You entered: "+W$
240 CLOSE#1
250 IF INKEY$="" THEN GOTO 250
260 COLOR 15,4,4

Van AuroraMSX

Paragon (1902)

afbeelding van AuroraMSX

10-06-2006, 13:39

Nou, om maar met het makkelijkste te beginnen: er bestaat niet zoiets als een 'input box'. Iets in de trant van je omschrijving zou dit kunnen zijn:

10 CLS: LINE INPUT "Voer je naam in:",A$
20 PRINT "Hoi ";A$

Het eerste commando (CLS) maakt je scherm mooi leeg, behalve misschien de onderste regel. Die kun je wegkrijgen met een KEY OFF commando. Voorts wacht het LINE INPUT statement op een textuele invoer, beëindigd met een RETURN. Het zojuist getypte komt in A$ te staan die later met een PRINT op het scherm komt. Veel plezier met aanklooien! Smile
En waarom gebruik je hier LINE INPUT en niet gewoon INPUT?

Van AuroraMSX

Paragon (1902)

afbeelding van AuroraMSX

10-06-2006, 13:43

Best wel leuk weer eens wat in MSX basic te doen.
Ik zit nu meer in Pascal. Ik kon het niet laten:

10 SCREEN 5
20 COLOR 1
30 OPEN "grp:" FOR OUTPUT AS#1
40 PSET(19,9):PRINT#1,"Enter your name:"
50 REM *** This is the input box ***
60 LINE (19,19)-(181,29),14,BF
70 LINE (18,18)-(182,18),1
80 LINE -(182,30),15
90 LINE -(18,30),15
100 LINE -(18,18),1
110 COLOR ,14
120 REM *** This is the actual input routine ***
130 REM *** only a-z and A-Z are allowed     ***
140 P% = 12
150 K$ = INKEY$: IF K$="" THEN GOTO 150
160 IF ASC(K$) >=65 AND ASC(K$) <=122 AND P% <170 THEN P%=P%+8: PSET(P%, 20),14:PRINT#1, K$: W$=W$+K$
170 REM *** BACK SPACE ***
180 IF ASC(K$) = 8 AND P%>12 THEN LINE (P%,20)-(P%+8,28),14,BF: W$=LEFT$(W$, LEN(W$)-1): P%=P%-8
190 REM *** ENTER PRESSED ***
200 IF ASC(K$) = 13 THEN GOTO 220
210 GOTO 150
220 COLOR ,4
230 PSET (19,40): PRINT#1, "You entered: "+W$
240 CLOSE#1
250 IF INKEY$="" THEN GOTO 250
260 COLOR 15,4,4


Nu nog de cursor-toetsen en een 'cancel' (ESC) optie erbij en de inputbox is klaar Wink
Verder zou ik de volgende regels als volgt schrijven:

150 K$=INPUT$(1)
200 IF ASC(K$)<>13 THEN 150
210 '
250 K$=INPUT$(1)

Van wolf_

Ambassador_ (10109)

afbeelding van wolf_

10-06-2006, 13:58


En waarom gebruik je hier LINE INPUT en niet gewoon INPUT?

INPUT is voor nummers, LINE INPUT voor strings .. Tongue

Pagina 1/2
| 2