Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kaksoispuskurointi UGLlällä(QB)

Dude [26.11.2007 16:15:39]

#

Miten saa tehtyä kaksoispuskuroinnin uglläs?
Mä kyllä tierän miten saa vaihrettua muistisivuja mutta se kuitenki välkkyy.
Ja sorsa:

DECLARE SUB PiirraLevu ()
'$INCLUDE: 'ugl\inc\ugl.bi'
'$INCLUDE: 'ugl\inc\kbd.bi'
'$STATIC
DIM SHARED v AS LONG, a AS INTEGER
DIM SHARED tile(10) AS LONG 'tilemuuttuja
DIM x AS INTEGER, y AS INTEGER: DIM SHARED k(20, 10) AS INTEGER
DIM SHARED sx AS INTEGER
DIM SHARED wp AS INTEGER, vp AS INTEGER
DIM kbd AS TKBD'nppinhandleri
ON ERROR GOTO virhe

v = uglInit
v = uglSetVideoDC(UGL.16BIT, 320, 240, 2)
uglSetVisPage 1
a = uglPutBMP(v, 0, 0, "ts\squiral.bmp")
uglSetVisPage 0
SLEEP
a = uglPutBMP(v, 0, 0, "ts\sqtile.bmp")
tile(1) = uglNew(UGL.MEM, UGL.16BIT, 32, 32) '
tile(2) = uglNew(UGL.MEM, UGL.16BIT, 32, 32) 'luodaan paikat tilej varten
tile(3) = uglNew(UGL.MEM, UGL.16BIT, 32, 32) '
uglGet v, 32, 0, tile(2) 'GETataan
uglGet v, 0, 0, tile(3)  'tilet
uglGet v, 64, 64, tile(1)'
uglClear v, 0

x = 0: y = 0: sx = 0
wp = 0: vp = 1
kbdInit kbd 'nppinhandleri
'uglPut v, 100, 100, r
'uglHLine v, 0, 220, 320, 255
FOR q = 0 TO 6
FOR w = 0 TO 19
	READ k(w, q)
NEXT w, q
'SLEEP
'pluuppi
DO
	uglClear v, 0
	a = uglPutBMP(v, x, y, "ts\tso1.bmp")
	PiirraLevu
	IF kbd.left THEN x = x - 1
	IF kbd.right THEN x = x + 1
	IF kbd.rshift AND i = 0 THEN h = 120: i = 1

	IF kbd.left AND kbd.ctrl THEN x = x - 2
	IF kbd.right AND kbd.ctrl THEN x = x + 2

	IF h > 0 THEN
		y = y - 1
		h = h - 1
	ELSEIF uglPGet(v, x + 38, y + 62) = 0 THEN
		y = y + 1: i = 1
	ELSE
		i = 0
	END IF
LOOP UNTIL kbd.esc
kbdEnd
uglRestore
uglEnd
END
virhe:
kbdEnd
SLEEP: uglRestore
COLOR 4: PRINT "ERROR"
uglEnd
END

DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

SUB PiirraLevu
DIM q AS INTEGER, w AS INTEGER
	FOR q = 0 TO 10
	FOR w = 0 TO 20
		SELECT CASE k(w, q)
		CASE 1: uglPut v, w * 32, (q * 32) - sx, tile(1)
		'CASE 0: uglPut v, w * 32, (q * 32) - sx, tile(2)
		END SELECT
	NEXT w, q
END SUB

ja tarvittavat tiedostot tästä. tuo paketti on rarilla tehty exe. purkaa se ts kansioon(tai muuta sorsaa).

Dude [26.11.2007 18:37:45]

#

Tuo paketti on sitte komentorivisysteemi(cdeetät ts kansioon ja purkaat). Siis se UGLlän esimerkkikaksoispuskurointisysteemi(aika pitkä sana) ei toimi tuos.

Dude [28.11.2007 15:57:14]

#

Selkis jo. Vika oli siinä että ukkelin kuva ladattiin joka kierroksella.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta