Author
| lessen
|
blackbram msx friend Posts: 2 | Posted: June 08 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 blackbram  |
|
wolf_
 msx legend Posts: 4781 | Posted: June 08 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!)
|
|
blackbram msx friend Posts: 2 | Posted: June 08 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
|
|
[D-Tail]
 msx guru Posts: 3020 | Posted: June 08 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!  |
|
wolf_
 msx legend Posts: 4781 | Posted: June 08 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.
|
|
webmouse msx lover Posts: 121 | Posted: June 08 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.
|
|
wolf_
 msx legend Posts: 4781 | Posted: June 08 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.
|
|
webmouse msx lover Posts: 121 | Posted: June 10 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
|
|
AuroraMSX
 msx master Posts: 1264 | Posted: June 10 2006, 13:39   |
Quote:
| 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! 
|
En waarom gebruik je hier LINE INPUT en niet gewoon INPUT?
|
|
AuroraMSX
 msx master Posts: 1264 | Posted: June 10 2006, 13:43   |
Quote:
| 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 
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) |
|
wolf_
 msx legend Posts: 4781 | Posted: June 10 2006, 13:58   |
Quote:
|
En waarom gebruik je hier LINE INPUT en niet gewoon INPUT?
|
INPUT is voor nummers, LINE INPUT voor strings ..  |
|
webmouse msx lover Posts: 121 | Posted: June 10 2006, 14:09   |
Is dat omdat INPUT$(1) sneller is?
|
|
AuroraMSX
 msx master Posts: 1264 | Posted: June 10 2006, 18:27   |
Quote:
| INPUT is voor nummers, LINE INPUT voor strings .. 
|
<flabbergasted>...right...</flabbergasted>
Quote:
| Is dat omdat INPUT$(1) sneller is?
|
Neuh, 't is omdat 't makkelijk programmeren is  |
|
|
|
|