- Régóta ott van a fiókban az Intel válasza az AMD-féle 3D V-Cache-re
- Esik eső karikára, a hardverek kalapjára
- Ha nem növelnéd feleslegesen a villanyszámlád, a Chieftecnek van pár új ajánlata
- ARC vs eARC — Ilyet is tud a HDMI-d? 🤨
- A következő évtizedbe repíti a NAND hatékonyságát a Samsung új kutatása
- Vezetékes FEJhallgatók
- 5.1, 7.1 és gamer fejhallgatók
- Canon EOS DSLR topic
- AMD vs. INTEL vs. NVIDIA
- NVIDIA GeForce RTX 3060 Ti / 3070 / 3070 Ti (GA104)
- Már csak az ár a titok a Redmi Pad 2 Pro kapcsán
- Kompakt vízhűtés
- Milyen TV-t vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- 3D nyomtatás
Új hozzászólás Aktív témák
-
zuzu000
őstag
Sziasztok!
C#-ban próbálok egy wolf3d klónt írni, suliban beadandóhoz kell. Megvan az eredeti forráskód, de c++ tudásom sajna ennyire nincs a topon, hogy minden részét tudjam értelmezni. Egy metódus lenne, ami elég fontos, ha tudnátok segíteni, megköszönném (hogy pontosan mit is csinál)
boolean CheckLine (objtype *ob)
{
int x1,y1,xt1,yt1,x2,y2,xt2,yt2;
int x,y;
int xdist,ydist,xstep,ystep;
int temp;
int partial,delta;
long ltemp;
int xfrac,yfrac,deltafrac;
unsigned value,intercept;
x1 = ob->x >> UNSIGNEDSHIFT; // 1/256 tile precision
y1 = ob->y >> UNSIGNEDSHIFT;
xt1 = x1 >> 8;
yt1 = y1 >> 8;
x2 = plux;
y2 = pluy;
xt2 = player->tilex;
yt2 = player->tiley;
xdist = abs(xt2-xt1);
if (xdist > 0)
{
if (xt2 > xt1)
{
partial = 256-(x1&0xff);
xstep = 1;
}
else
{
partial = x1&0xff;
xstep = -1;
}
deltafrac = abs(x2-x1);
delta = y2-y1;
ltemp = ((long)delta<<8)/deltafrac;
if (ltemp > 0x7fffl)
ystep = 0x7fff;
else if (ltemp < -0x7fffl)
ystep = -0x7fff;
else
ystep = ltemp;
yfrac = y1 + (((long)ystep*partial) >>8);
x = xt1+xstep;
xt2 += xstep;
do
{
y = yfrac>>8;
yfrac += ystep;
value = (unsigned)tilemap[x][y];
x += xstep;
if (!value)
continue;
if (value<128 || value>256)
return false;
//
// see if the door is open enough
//
value &= ~0x80;
intercept = yfrac-ystep/2;
if (intercept>doorposition[value])
return false;
} while (x != xt2);
}
ydist = abs(yt2-yt1);
if (ydist > 0)
{
if (yt2 > yt1)
{
partial = 256-(y1&0xff);
ystep = 1;
}
else
{
partial = y1&0xff;
ystep = -1;
}
deltafrac = abs(y2-y1);
delta = x2-x1;
ltemp = ((long)delta<<8)/deltafrac;
if (ltemp > 0x7fffl)
xstep = 0x7fff;
else if (ltemp < -0x7fffl)
xstep = -0x7fff;
else
xstep = ltemp;
xfrac = x1 + (((long)xstep*partial) >>8);
y = yt1 + ystep;
yt2 += ystep;
do
{
x = xfrac>>8;
xfrac += xstep;
value = (unsigned)tilemap[x][y];
y += ystep;
if (!value)
continue;
if (value<128 || value>256)
return false;
//
// see if the door is open enough
//
value &= ~0x80;
intercept = xfrac-xstep/2;
if (intercept>doorposition[value])
return false;
} while (y != yt2);
}
return true;
}A nagyrésze érthető, de vannak c++ dolgok, amik számomra teljesen ismeretlenek. False-t ad vissza, ha a "vonal" útjában van valami, igazat, ha a kettő obj között semmi nincs.
xt1 = x1 >> 8;
Ez pontosan mit csinál?
Illetve y1&0xff és a többi ilyen rész?
Előre is köszi
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- sziku69: Fűzzük össze a szavakat :)
- Vezetékes FEJhallgatók
- PH!otósok beszélgetős, offolós topikja
- Felhő alapú adattárolás (Dropbox, stb.)
- BestBuy topik
- 5.1, 7.1 és gamer fejhallgatók
- Formula-1
- Black Friday november 29. / Cyber Monday december 2.
- exHWSW - Értünk mindenhez IS
- Canon EOS DSLR topic
- További aktív témák...
- Samsung Galaxy S22 Ultra 12/256GB Phantom Black, fóliás új állapot, Regalaxy
- Keressek intel i7-i9!!
- Szép! Lenovo Thinkpad T14s G2 Üzleti "Golyóálló" Laptop 14" -50% i7-1185G7 4Mag 16GB/1TB FHD IPS
- Szép! Lenovo Thinkpad T14s G2 Üzleti "Golyóálló" Laptop 14" -50% i7-1185G7 4Mag 16GB/512GB FHD IPS
- Dell PowerEdge T110 II PC, Xeon E3-1220 v2 CPU, 32 GB DDR3 RAM, 2 x 1 TB SAS HDD
- Bomba ár! Lenovo IdeaPad 330S - i3-8130U I 8GB I 128SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- HIBÁTLAN iPhone 16 Pro Max 256GB White Titanium -1 ÉV GARANCIA - Kártyafüggetlen, 92% Akkumulátor
- GYÖNYÖRŰ iPhone 11 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3121, 100% Akkumulátor
- Bomba ár! Lenovo ThinkPad T14s G2 - i7-11GEN I 16GB I 1TSSD I 14" FHD Touch I W11 I Cam I Gari!
- Macbook Air M2 15" 8GB 256GB 100%
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest



