Qbasicnews.com

Full Version: ASCII Graphics Challenge! :P
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
Quote:A Most Happy Birthday, Na_th_an! And many more!!!


whew, got that out of my system... Just wanted to see for once what that would be like. Not trying to make fun of someone :wink:

of course not! who would ever suggest such a thing?! Happy bday boys, i'll give ya your bday spankings later Big Grin anywho, this promised to be a fun challenge Wink
Happy b'day nath! Greetz from ME (dbl meaning) :lol:

(save me some cake, ok? I'll be over soon... :lolSmile

Anyway, I'll definately have a look at the lib, I'll try to make my character with it too, but I don't think I'll make a game, I've got too much on...
Happy Birthday bro!!!!

Hah!!!!

My entry: http://rel.betterwebber.com/junk.php?id=11
Big Grin
j/k
Cheesy run is a masterpiece!

And no. I did not laughed. It was a pleasant surprise. Deffinetly
better than somekind of pureQB 3D raceing game that would run with
0.05 FPS on my PC.

I love the game. Reached level 18. There should be an end though.
WOW!!! That means yer better than me. ;*) Yeah, but it was made to torture anyone who plays it. ;*)
www.nodtveidt.net/useless_10b.zip

Just released: an updated version of the library, has much faster box routines and all the routines have been split into related modules. No new routines, but the manual comes in DOC HTML and TXT formats now, and there's a nifty (built in like 4 hours, so prolly buggy hehe) library builder included.
So with all this talk of libraries, is anyone actually writing a proggy?
here is an ascii raycaster with texture mapping for anyone who wants to make a 3d game with it.

Cheers, MattSmile
Code:
'   Ascii Ray Caster with texture mapping
'   Using Integer Mathematics for speed    Clu 5-7-03      Qbasic 1.1
'
DEFINT A-Z: DIM l(16, 16), c(360), s(360), t(16, 16)
FOR y = 1 TO 16
READ l$
FOR x = 1 TO 16
l(x, y) = VAL(MID$(l$, x, 1))
NEXT x
NEXT y
FOR y = 1 TO 16
READ l$
FOR x = 1 TO 16
t(x - 1, y) = VAL(MID$(l$, x, 1))
NEXT x
NEXT y

FOR t = 0 TO 360
s(t) = 100 * SIN(22 / 7 * t / 180)
c(t) = 100 * COS(22 / 7 * t / 180)
NEXT t

x = 5600: y = 4000: f = 0: SCREEN 0: WIDTH 80, 50
DEF SEG = &HB800

main:
FOR s = -40 TO 39: a$ = INKEY$
r = f + (s * 60 \ 80): r = r + 360 * ((r > 360) - (r < 0))
r = r - (c(r) = 0): xi = c(r): yi = s(r): x1 = x: y1 = y:
wallcheck:
x1 = x1 + xi: y1 = y1 + yi
IF l(x1 \ 1600, y1 \ 1600) = 0 THEN GOTO wallcheck

xint = ABS(x1 - INT((x1 + 800) \ 1600) * 1600)
yint = ABS(y1 - INT((y1 + 800) \ 1600) * 1600)
IF xint > yint THEN tc = (x1 - (((x1 \ 1600)) * 1600)) \ 100
IF yint > xint THEN tc = (y1 - (((y1 \ 1600)) * 1600)) \ 100

d = (ABS((x - x1) \ c(r)) * c(ABS(r - f))) * .01
h = (69 * 16 \ d) \ 2
FOR ys = 0 TO 49
addr = (s + 40) * 2 + (ys * 160): POKE addr, 178
IF ys > 25 - h AND ys < 25 + h THEN POKE addr + 1, t(tc, INT(ys - (25 - h)) / (h * 2) * 16)
IF ys > 24 + h THEN POKE addr + 1, 2
IF ys <= 26 - h THEN POKE addr + 1, 9

NEXT ys
NEXT s

k = INP(96): f = f + 5 * (k = 75) - 5 * (k = 77)
f = f - 355 * (f = -5) + 360 * (f = 365)
dx = c(f) * (-(k = 72) + (k = 80)): dy = s(f) * (-(k = 72) + (k = 80))
IF l((x + dx) \ 1600, (y + dy) \ 1600) = 0 THEN x = x + dx: y = y + dy
IF INP(96) = 1 THEN SYSTEM ELSE GOTO main

DATA "1111111111111111"
DATA "1000010000010011"
DATA "1000000111110001"
DATA "1000010010000001"
DATA "1111111010000001"
DATA "1000001011101111"
DATA "1000001000000001"
DATA "1000000011100001"
DATA "1000001010000001"
DATA "1111111011100111"
DATA "1000001000000001"
DATA "1000101101001001"
DATA "1000000101011101"
DATA "1001000000001001"
DATA "1000000100000001"
DATA "1111111111111111"

DATA "8666666686666666"
DATA "8666666686666666"
DATA "8666666686666666"
DATA "8888888888888888"
DATA "6666866666668666"
DATA "6666866666668666"
DATA "6666866666668666"
DATA "8888888888888888"
DATA "8666666686666666"
DATA "8666666686666666"
DATA "8666666686666666"
DATA "8888888888888888"
DATA "6666866666668666"
DATA "6666866666668666"
DATA "6666866666668666"
DATA "8888888888888888"
Plasma357 wrote on a topic some months ago:

Quote:To disable blinking:
Code:
junk = INP(&H3DA) 'disable text blinking
OUT &H3C0, &H20 + &H10 'and enable all the background colors
OldAttr = INP(&H3C1)
OUT &H3C0, OldAttr AND &HF7
junk = INP(&H3DA)


To change a character on the screen:
Code:
POKE (Row - 1) * NumCols * 2 + (Col - 1) * 2, Char

To change a color on the screen:
Code:
POKE (Row - 1) * NumCols * 2 + (Col - 1) * 2 + 1, Colr

Where NumCols is the number of columns active (80 or 40).


This should be useful here, not? Smile

(I found these words at DEF SEG = &HB800, at 29th Octobre, 2003)


I have not got anything to show up here now, but I am interested in this subject. I will do something as soon as I will have time Smile
If you want ASCII graphics, I'll give you ASCII graphics!!! The first thing you do is go to my old page, http://pc72.narod.ru/old/ and download REFORM. REFORM is a VGA font editor, which you can use to make fonts for use in text mode.

I've developed it a year ago, but it's still good. Let's see what you think Smile

With REFORM you can do all the ASCII graphics you want.
Pages: 1 2 3