void RenderLeaves(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } int i; while (spritetimer != 0) { spritetimer--; for (i = 0; i < NUM_LEAVES; i++) { switch (leaftbl[(leaves[i].angle + systemtime) % 140 / 7]) { case 0: leaves[i].x -= 4; leaves[i].y += 4; break; case 1: leaves[i].x -= 6; leaves[i].y += 8; break; case 2: leaves[i].x -= 8; leaves[i].y += 10; break; case 3: leaves[i].x -= 8; leaves[i].y += 12; break; case 4: leaves[i].x -= 16; leaves[i].y += 8; break; } if (leaves[i].x / 16 < 0 - 14) leaves[i].x = 334 * 16; if (leaves[i].y / 16 > 214) leaves[i].y = 0 - 14 * 16; } } for (i = 0; i < NUM_LEAVES; i++) { if (systemtime > leaves[i].starttime && systemtime < leaves[i].endtime) BlitFrameAt(leaves[i].x / 16, ybase + (leaves[i].y / 16), lspr, leaftbl[(leaves[i].angle + systemtime) % 140 / 7], b); } }
void RenderBGR8() { if (bgrtoggle < 2) { bgrtoggle++; return; } bgrtoggle -= 2; if (bgrtick > 128) { bgrproc = null; return; } Blitter b = new Blitter(bg); if (bgrtick < 64) { b.Color = ColorMorph(bgr8_col1, bgr8_col2, bgrtick, 64); b.Line(0, 128 - bgrtick, 255, 128 - bgrtick); b.Color = ColorMorph(bgr8_col1, bgr8_col2, bgrtick, 64); b.Line(0, 128 + bgrtick, 255, 128 + bgrtick); } else { b.Color = ColorMorph(bgr8_col2, bgr8_col3, bgrtick - 64, 64); b.Line(0, 128 - bgrtick, 255, 128 - bgrtick); b.Color = ColorMorph(bgr8_col2, bgr8_col3, bgrtick - 64, 64); b.Line(0, 128 + bgrtick, 255, 128 + bgrtick); } bgrtick++; }
void RenderBGR11() { if (bgrtoggle < 1) { bgrtoggle++; return; } bgrtoggle -= 1; if (bgrtick > 512) { bgrproc = null; return; } int x, y; Blitter b = new Blitter(bg); if (bgrtick < 256) { x = 50 + (sin(bgrtick * 1536 / 360) * 30 / 65535); y = bgrtick; SetLucent(b, 85); BlitWrap(b, bgr11spr, x, y); SetLucent(b, 0); } else if (bgrtick < 512) { x = 178 + (sin(bgrtick * 1536 / 360) * 30 / 65535); y = 256 - (bgrtick - 256); SetLucent(b, 85); BlitWrap(b, bgr11spr, x, y); SetLucent(b, 0); } bgrtick++; }
void RenderCircular(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } while (spritetimer > 1) { spritetimer -= 2; crc_xc += crc_dir; } int i, mx, my; int rx, ry; rx = crc_xr + (sin(systemtime) * 10 / 65535); ry = crc_yr + (cos(systemtime) * 15 / 65535); for (i = 0; i < 8; i++) { mx = sin(cangle[i] + systemtime) * rx / 65535; my = cos(cangle[i] + systemtime) * ry / 65535; BlitAt(crc_xc + mx, ybase + crc_yc + my, crc_sprite, b); } }
void RenderWeather(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } int i, j; while (spritetimer > 1) { spritetimer -= 2; for (i = 0; i < NUM_NODES; i++) { for (j = 0; j <= wnodes[i].layer; j++) { wnodes[i].x--; wnodes[i].y++; } if (wnodes[i].x < 0 - 14) wnodes[i].x = 334; if (wnodes[i].y > 214) wnodes[i].y = 0 - 14; } } for (i = 0; i < NUM_NODES; i++) { if (systemtime > wnodes[i].starttime && systemtime < wnodes[i].endtime) BlitFrameAt(wnodes[i].x, ybase + wnodes[i].y, wspr, wnodes[i].layer, b); } }
void BlitFrame(int x, int y, anim_t anim, int frame, Blitter b) { if (frame > anim.numframes) return; int frametop = anim.sizey * frame; b.BlitSubrect(anim.image, 0, frametop, anim.sizex, anim.sizey, x, y); }
void BlitFrameAt(int x, int y, anim_t anim, int frame, Blitter b) { if (frame > anim.numframes) return; //if (frame == anim.bufferedframe) int frametop = anim.sizey * frame; b.BlitSubrect(anim.image, 0, frametop, anim.sizex, anim.sizey, x-anim.sizex/2, y-anim.sizey/2); }
public override void Update(GameTime gameTime) { bCurr = new Blitter(screen); base.Update(gameTime); if (Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) Exit(); systemtime++; MyTimer(); Tick(); }
void RenderSlug(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } slug_y = 220 - (spritetimer / 2); BlitFrameAt(slug_x, ybase + slug_y, slug_spr, pingpong4[systemtime % 42 / 7], b); }
void RenderFlyer(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } int my = fly_y + ((spritetimer / 4) * fly_dir); BlitFrameAt(fly_x + (sin(systemtime / 2) * 60 / 65535), ybase + my, flyer_sprite, pingpong3[systemtime % 28 / 7], b); }
/// <summary> /// pass in true if you want to enable antialiasing. it will then default to on /// </summary> protected d3dChrController(GraphicsHW g, bool antialias, int w, int h, int w2x, int h2x) { this.w = w; this.h = h; this.antialias = antialias; image = g.newImage(w,h); if(antialias && !Config.disableModelAntialiasing) { b = new Blitter(image); this.w2x = w2x; this.h2x = h2x; image2x = g.newImage(w2x,h2x); } this.g = g; }
void RenderFish(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } int i, xmod = 0 - (spritetimer / 2); for (i = 0; i < NUM_FISHIES; i++) BlitFrameAt(fishies[i].x + xmod, ybase + fishies[i].y + (sin(fishies[i].angleofs + systemtime) * 10 / 65535), fishspr, (fishies[i].angleofs + systemtime) % 20 / 10, b); }
void InitializeBGR7() { bgrtick = 0; bgrtoggle = 0; //???? TODO //SetClip(0, 0, 255, 255, bg); //SetClip(0, 0, 255, 255, bg2); //SetClip(0, 0, 255, 255, bg3); Blitter b = new Blitter(bg3); b.Blit(bg, 0, 0); bgrproc = RenderBGR7; }
void RenderCelestial(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } while (spritetimer > 1) { spritetimer -= 2; clst_x--; } BlitAt(clst_x, ybase + clst_y + (sin(systemtime / 3) * 15 / 65535), clst_sprite, b); }
void RenderFlower(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } while (spritetimer > 1) { spritetimer -= 2; flw_x += flxdir; flw_y += flydir; } b.RotScale(flower, flw_x, ybase + flw_y, Lib.Rads(systemtime * 4 / 3), 1); }
protected override void Draw(GameTime gameTime) { Blitter b = new Blitter(screen); bCurr = b; b.Clear(Color.Gray); //do it with supersecret SuperSecretThingy(scrollofs/16, systemtime/2, 0, bg, SuperSecretBuffer); b.Blit(SuperSecretBuffer); //do it plain for debugging //WrapBlit(b, bg, 0, 0); //b.ScaleBlit(bobgreen, 0, 0, 100, 100); RenderSprites(b); app.Window.Title = systemtime.ToString(); //b.ScaleBlit(spherepurple, 0, 0, 100,100); //test }
void Autoexec() { vidmode = 0; switch (vidmode) { case 0: ybase = 0; break; case 1: ybase = 20; break; case 2: ybase = 30; break; } //TODO //SetClip(0, ybase, 319, 199+ybase, screen); //TODO //int r = Random(0,5); //switch (r) //{ // case 0: PlayMusic("music\rain.s3m"); // case 1: PlayMusic("music\zcs-02-intro.xm"); // case 2: PlayMusic("music\zk-jdood.it"); // case 3: PlayMusic("music\verge6.it"); // case 4: PlayMusic("music\lib-grey.xm"); // case 5: PlayMusic("music\sully-columns.it"); //} //cursong = r; InitTables(); //HookTimer("MyTimer"); //handled by Update() scrollpath = 0; nextscroll = systemtime+700; nextskew = systemtime+800; int i; for (i=0; i<100; i++) _skewlines[i] = 1; var b = new Blitter(bg); b.SetColor(Color.Transparent); b.RectFill(0, 0, 256, 256); //InitScript(); }
void RenderSprites(Blitter b) { int s; if (spr_state == 0) return; switch (spr_state) { case SPR_SLUG: RenderSlug(b); break; case SPR_FLY: RenderFlyer(b); break; case SPR_FLOWER: RenderFlower(b); break; case SPR_CELESTIAL: RenderCelestial(b); break; case SPR_CIRCULAR: RenderCircular(b); break; case SPR_FISH: RenderFish(b); break; case SPR_SMILIES: RenderSmilies(b); break; case SPR_LEAVES: RenderLeaves(b); break; case SPR_WEATHER: RenderWeather(b); break; case SPR_CANDLE: RenderCandle(b); break; } }
void RenderBGR5() { if (bgrtoggle < 4) { bgrtoggle++; return; } bgrtoggle -= 4; if (bgrtick > 63) { bgrproc = null; return; } int y = bgrtick / 8; int x = bgrtick % 8; Blitter b = new Blitter(bg); b.Blit(bgr5img, x * 32, y * 32); bgrtick++; }
void RenderBGR0() { /* if (bgrtoggle < 1) { bgrtoggle++; return; } bgrtoggle-=1;*/ if (bgrtick > 600) { bgrproc = null; return; } int z = Random(40, 255); Blitter b = new Blitter(bg); b.Color = MakeColor(z, z, z); b.SetPixel(Random(0, 255), Random(0, 255)); bgrtick++; }
void RenderBGR7() { if (bgrtoggle < 5) { bgrtoggle++; return; } bgrtoggle -= 5; if (bgrtick > 100) { bgrproc = null; return; } Blitter b = new Blitter(bg); b.Blit(bg3, 0, 0); SetLucent(b,100 - bgrtick); b.Blit(bg2, 0, 0); bgrtick++; }
void RenderSmilies(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } while (spritetimer != 0) { spritetimer--; xmin += 2; } int i; for (i = 0; i < NUM_SMILIES; i++) { if (smilies[i].x < xmin) smilies[i].x += 200; BlitAt(smilies[i].x, ybase + smilies[i].y, smilespr, b); } }
void RenderCandle(Blitter b) { if (systemtime >= spr_die) { spr_state = 0; return; } while (spritetimer != 0) { spritetimer--; ctick++; } cx = 350 - (ctick / 2); clangle += 16; int i, x, y, haloframe; for (i = 0; i < 4; i++) { if (systemtime > candles[i].nextframe) { candles[i].nextframe = systemtime + Random(8, 20); candles[i].frame = Random(0, 9); } x = cx + (sin(candles[i].angle + (clangle / 12)) * 30 / 65535); y = ybase + 100 + (sin(systemtime) * 30 / 65535) + (cos(candles[i].angle + (clangle / 12)) * 30 / 65535); BlitAt(x, y, candle, b); BlitFrameAt(x - 1, y - 14, flame, candles[i].frame, b); haloframe = candles[i].frame; if (haloframe > 4) haloframe -= 5; BlendAdditive(); b.BlitSubrect(halo.image, 0, halo.sizey * haloframe, halo.sizex, halo.sizey, x - 1 - (144 / 2), y - 14 - (144 / 2)); BlendNormal(); } }
public void render(int rx, int ry, Blitter b) { bool bBottom = true; string[] ops = m.rstring.Split(','); foreach(string str in ops) { if(str == "E") { ee.Render(0, rx, ry, b); if(bRenderEntityObs) ee.renderObs(0, rx, ry, b); } try { //wtf xna has no tryparse //if(int.TryParse(str, out l)) { if(str[0] >= '0' && str[0] <= '9') { int l = int.Parse(str); renderLayer(bBottom, rx, ry, m.layers[l - 1], b); bBottom = false; } } catch { } } if(bRenderObsLayer) { renderObsLayer(rx, ry, b); } }
void RenderBGR3() { if (bgrtoggle < 1) { bgrtoggle++; return; } bgrtoggle -= 1; if (bgrtick > 200) { bgrproc = null; return; } Blitter b = new Blitter(bg); b.Blit(bg2, 0, 0); b.Alpha = (bgrtick / 2)/100.0f; b.RectFill(0, 0, 256, 256); bg.Cache(); bgrtick++; }
void InitializeBGR6(int i) { bgrtick = 0; bgrtoggle = 0; int bg5img; switch (i) { case 0: bgr5img = tiledbg0; break; case 1: bgr5img = tiledbg1; break; case 2: bgr5img = tiledbg2; break; case 3: bgr5img = tiledbg3; break; case 4: bgr5img = tiledbg4; break; case 5: bgr5img = tiledbg5; break; case 6: bgr5img = tiledbg6; break; case 7: bgr5img = tiledbg7; break; case 8: bgr5img = tiledbg8; break; case 9: bgr5img = tiledbg9; break; } Blitter b = new Blitter(bg2); b.TClear(); //??? is this good? WrapBlit(b, bgr5img, 0, 0); InitializeBGR7(); }
/// <summary> /// loads a spritemanager by dicing a source image /// </summary> public SpriteManager LoadSpriteManager(Image source, int width, int height, int xpad, int ypad) { //TODO - don't do this with blitting. that way we can keep the source texture format. but this will work for now.. SpriteManager ret = new SpriteManager(); int framesAcross = source.Width / (width+xpad); int framesDown = source.Height / (height+ypad); ret.NumFrames = framesAcross*framesDown; ret.frames = new Image[ret.NumFrames]; int ctr=0; DisableAlphaBlend(); for (int iy=0; iy<framesDown; iy++) { for(int ix=0;ix<framesAcross; ix++,ctr++) { Image img = NewImage(width, height); ret.frames[ctr] = img; Blitter b = new Blitter(img); //b.Clear(Color.Transparent); b.Blit(source, -ix*(width+xpad), -iy*(height+ypad)); img.Cache(); img.Premultiply(); } } EnableAlphaBlend(); return ret; }
void InitializeBGR4(int f) { Image myimg = null; Blitter b = new Blitter(bg2); b.Clear(Color.Black); switch (f) { case 0: myimg = facered; break; case 1: myimg = faceblue; break; case 2: myimg = facegreen; break; case 3: myimg = sphereblue; break; case 4: myimg = spheregreen; break; case 5: myimg = sphereorange; break; case 6: myimg = spherepurple; break; } myimg = spherepurple; for (int i = 0; i < 30; i++) { f = Random(0, 2); int dw = -1, dh = -1; switch (f) { case 0: dw = 64; dh = 64; break; case 1: dw = 32; dh = 32; break; case 2: dw = 16; dh = 16; break; } int x=Random(0, 255), y=Random(0, 255); ScaleWrapBlit(x,y, myimg, dw, dh, bg2); } InitializeBGR3(); bg2.Cache(); }
//void ScaleTo(int w, int h, int srcimg, int destimg) void StaticInitializers() { bg = NewImage(256, 256); Blitter b = new Blitter(bg); b.Clear(Color.Black); bg2 = NewImage(256, 256); bg3 = NewImage(256, 256); LoadResources(); }
void ScaleWrapBlit(int dx, int dy, Image srcimg, int dw, int dh, Image dest) { Image img = NewImage(dw, dh); Blitter b = new Blitter(img); b.TClear(); b.ScaleBlit(srcimg, 0, 0, dw, dh); int mx = dx - (dw / 2); int my = dy - (dh / 2); if (mx < 0) mx += 255; if (my < 0) my += 255; b = new Blitter(dest); BlitWrap(b, img, mx, my); img.Dispose(); }