本文整理汇总了C++中tilemap_t::set_scrolly方法的典型用法代码示例。如果您正苦于以下问题:C++ tilemap_t::set_scrolly方法的具体用法?C++ tilemap_t::set_scrolly怎么用?C++ tilemap_t::set_scrolly使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tilemap_t
的用法示例。
在下文中一共展示了tilemap_t::set_scrolly方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: screen_update_cultures
UINT32 cultures_state::screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int attr;
// tilemaps attributes
attr = (m_bg0_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg0_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
m_bg0_tilemap->set_flip(attr);
attr = (m_bg1_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg1_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
m_bg1_tilemap->set_flip(attr);
attr = (m_bg2_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg2_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
m_bg2_tilemap->set_flip(attr);
// tilemaps scrolls
m_bg0_tilemap->set_scrollx(0, (m_bg0_regs_x[2] << 8) + m_bg0_regs_x[0]);
m_bg1_tilemap->set_scrollx(0, (m_bg1_regs_x[2] << 8) + m_bg1_regs_x[0]);
m_bg2_tilemap->set_scrollx(0, (m_bg2_regs_x[2] << 8) + m_bg2_regs_x[0]);
m_bg0_tilemap->set_scrolly(0, (m_bg0_regs_y[2] << 8) + m_bg0_regs_y[0]);
m_bg1_tilemap->set_scrolly(0, (m_bg1_regs_y[2] << 8) + m_bg1_regs_y[0]);
m_bg2_tilemap->set_scrolly(0, (m_bg2_regs_y[2] << 8) + m_bg2_regs_y[0]);
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例2: screen_update
UINT32 joystand_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
{
int layers_ctrl = -1;
#ifdef MAME_DEBUG
if (machine().input().code_pressed(KEYCODE_Z))
{
int msk = 0;
if (machine().input().code_pressed(KEYCODE_Q)) msk |= 1;
if (machine().input().code_pressed(KEYCODE_W)) msk |= 2;
if (machine().input().code_pressed(KEYCODE_A)) msk |= 4;
if (machine().input().code_pressed(KEYCODE_S)) msk |= 8;
if (msk != 0) layers_ctrl &= msk;
}
#endif
m_bg1_tmap->set_scrollx(0, 0);
m_bg1_tmap->set_scrolly(0, 0);
m_bg2_tmap->set_scrollx(0, m_scroll[0] - 0xa);
m_bg2_tmap->set_scrolly(0, m_scroll[1]);
draw_bg15_tilemap();
bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 4) copybitmap_trans(bitmap, m_bg15_bitmap[0], 0, 0, 1, 0, cliprect, BG15_TRANSPARENT);
if (layers_ctrl & 8) copybitmap_trans(bitmap, m_bg15_bitmap[1], 0, 0, 0, 0, cliprect, BG15_TRANSPARENT);
if (layers_ctrl & 1) m_bg1_tmap->draw(screen, bitmap, cliprect, 0, 0);
if (layers_ctrl & 2) m_bg2_tmap->draw(screen, bitmap, cliprect, 0, 0);
popmessage("S0: %04X S1: %04X EN: %04X OUT: %04X", m_scroll[0], m_scroll[1], m_enable[0], m_outputs[0]);
return 0;
}
示例3:
uint32_t quizpun2_state::screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int layers_ctrl = -1;
#ifdef MAME_DEBUG
if (machine().input().code_pressed(KEYCODE_Z))
{
int msk = 0;
if (machine().input().code_pressed(KEYCODE_Q)) msk |= 1;
if (machine().input().code_pressed(KEYCODE_W)) msk |= 2;
if (msk != 0) layers_ctrl &= msk;
}
#endif
int bg_scroll = (m_scroll & 0x3) >> 0;
int fg_scroll = (m_scroll & 0xc) >> 2;
m_bg_tmap->set_scrolly(0, bg_scroll * 0x100);
m_fg_tmap->set_scrolly(0, fg_scroll * 0x100);
if (layers_ctrl & 1) m_bg_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
else bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 2) m_fg_tmap->draw(screen, bitmap, cliprect, 0, 0);
// popmessage("BG: %x FG: %x", bg_scroll, fg_scroll);
return 0;
}
示例4: screen_update_pzletime
UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int count;
int y, x;
bitmap.fill(machine().pens[0], cliprect); //bg pen
m_txt_tilemap->set_scrolly(0, m_tilemap_regs[0] - 3);
m_txt_tilemap->set_scrollx(0, m_tilemap_regs[1]);
m_mid_tilemap->set_scrolly(0, m_tilemap_regs[2] - 3);
m_mid_tilemap->set_scrollx(0, m_tilemap_regs[3] - 7);
if (m_video_regs[2] & 1)
{
count = 0;
for (y = 255; y >= 0; y--)
{
for (x = 0; x < 512; x++)
{
if (m_bg_videoram[count] & 0x8000)
bitmap.pix16((y - 18) & 0xff, (x - 32) & 0x1ff) = 0x300 + (m_bg_videoram[count] & 0x7fff);
count++;
}
}
}
m_mid_tilemap->draw(screen, bitmap, cliprect, 0, 0);
{
UINT16 *spriteram = m_spriteram;
int offs, spr_offs, colour, sx, sy;
for(offs = 0; offs < 0x2000 / 2; offs += 4)
{
if(spriteram[offs + 0] == 8)
break;
spr_offs = spriteram[offs + 3] & 0x0fff;
sy = 0x200 - (spriteram[offs + 0] & 0x1ff) - 35;
sx = (spriteram[offs + 1] & 0x1ff) - 30;
colour = (spriteram[offs + 0] & 0xf000) >> 12;
// is spriteram[offs + 0] & 0x200 flipy? it's always set
drawgfx_transpen(bitmap, cliprect, machine().gfx[1], spr_offs, colour, 0, 1, sx, sy, 0);
}
}
m_txt_tilemap->draw(screen, bitmap, cliprect, 0, 0);
if ((screen.frame_number() % 16) != 0)
m_txt_tilemap->draw(screen, bitmap, cliprect, 1, 0);
return 0;
}
示例5:
UINT32 chance32_state::screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* TODO: wtf? */
m_bg_tilemap->set_scrollx(0, 352);
m_bg_tilemap->set_scrolly(0, 160);
m_fg_tilemap->set_scrollx(0, 352);
m_fg_tilemap->set_scrolly(0, 160);
m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
示例6: screen_update_bestleaw
UINT32 bestleag_state::screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0,m_vregs[0x08/2]);
m_bg_tilemap->set_scrolly(0,m_vregs[0x0a/2]);
m_tx_tilemap->set_scrollx(0,m_vregs[0x00/2]);
m_tx_tilemap->set_scrolly(0,m_vregs[0x02/2]);
m_fg_tilemap->set_scrollx(0,m_vregs[0x04/2]);
m_fg_tilemap->set_scrolly(0,m_vregs[0x06/2]);
m_bg_tilemap->draw(bitmap, cliprect, 0,0);
m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(bitmap,cliprect);
m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
示例7: screen_update_lbeach
UINT32 lbeach_state::screen_update_lbeach(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// draw bg layer (road)
m_bg_tilemap->set_scrolly(0, *m_scroll_y);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
// check collision
int sprite_code = *m_sprite_code & 0xf;
int sprite_x = *m_sprite_x * 2 - 4;
int sprite_y = 160;
m_colmap_car.fill(0, cliprect);
m_gfxdecode->gfx(2)->transpen(m_palette,m_colmap_car,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0);
bitmap_ind16 &fg_bitmap = m_fg_tilemap->pixmap();
m_collision_bg_car = 0;
m_collision_fg_car = 0;
for (int y = sprite_y; y < (sprite_y + 16); y++)
{
for (int x = sprite_x; x < (sprite_x + 16) && cliprect.contains(x, y); x++)
{
m_collision_bg_car |= (bitmap.pix16(y, x) & m_colmap_car.pix16(y, x) & 1);
m_collision_fg_car |= (fg_bitmap.pix16(y, x) & m_colmap_car.pix16(y, x) & 1);
}
}
// draw fg layer (tiles)
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
// draw player car
m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0);
return 0;
}
示例8: screen_update_umipoker
UINT32 umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_tilemap_0->set_scrolly(0, m_umipoker_scrolly[0]);
m_tilemap_1->set_scrolly(0, m_umipoker_scrolly[1]);
m_tilemap_2->set_scrolly(0, m_umipoker_scrolly[2]);
m_tilemap_3->set_scrolly(0, m_umipoker_scrolly[3]);
bitmap.fill(get_black_pen(machine()), cliprect);
m_tilemap_0->draw(screen, bitmap, cliprect, 0,0);
m_tilemap_1->draw(screen, bitmap, cliprect, 0,0);
m_tilemap_2->draw(screen, bitmap, cliprect, 0,0);
m_tilemap_3->draw(screen, bitmap, cliprect, 0,0);
return 0;
}
示例9: screen_update_galaxi
UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg3_tmap->set_scrollx(m_bg3_xscroll);
m_bg3_tmap->set_scrolly(m_bg3_yscroll);
int layers_ctrl = -1;
#ifdef MAME_DEBUG
if (machine().input().code_pressed(KEYCODE_R)) // remapped due to inputs changes.
{
int msk = 0;
if (machine().input().code_pressed(KEYCODE_T)) msk |= 1;
if (machine().input().code_pressed(KEYCODE_Y)) msk |= 2;
if (machine().input().code_pressed(KEYCODE_U)) msk |= 4;
if (machine().input().code_pressed(KEYCODE_I)) msk |= 8;
if (machine().input().code_pressed(KEYCODE_O)) msk |= 16;
if (msk != 0) layers_ctrl &= msk;
}
#endif
if (layers_ctrl & 1) m_bg1_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
else bitmap.fill(m_palette->black_pen(), cliprect);
if (layers_ctrl & 2) m_bg2_tmap->draw(screen, bitmap, cliprect, 0, 0);
if (layers_ctrl & 4) m_bg3_tmap->draw(screen, bitmap, cliprect, 0, 0);
if (layers_ctrl & 8) m_bg4_tmap->draw(screen, bitmap, cliprect, 0, 0);
if (layers_ctrl & 16) m_fg_tmap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例10: screen_update_jackie
UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i,j;
int startclipmin = 0;
const rectangle &visarea = screen.visible_area();
bitmap.fill(get_black_pen(machine()), cliprect);
for (i=0;i < 0x40;i++)
{
m_reel1_tilemap->set_scrolly(i, m_bg_scroll[i+0x000]);
m_reel2_tilemap->set_scrolly(i, m_bg_scroll[i+0x040]);
m_reel3_tilemap->set_scrolly(i, m_bg_scroll[i+0x080]);
}
for (j=0; j < 0x100-1; j++)
{
rectangle clip;
int rowenable = m_bg_scroll2[j];
/* draw top of screen */
clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+1);
if (rowenable==0)
{
m_reel1_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==1)
{
m_reel2_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==2)
{
m_reel3_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==3)
{
}
startclipmin+=1;
}
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
示例11: screen_update_chanbara
UINT32 chanbara_state::screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg2_tilemap->set_scrolly(0, m_scroll | (m_scrollhi << 8));
m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0);
draw_sprites(bitmap, cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例12: screen_update_dacholer
UINT32 dacholer_state::screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if (flip_screen())
{
m_bg_tilemap->set_scrollx(0, 256 - m_scroll_x);
m_bg_tilemap->set_scrolly(0, 256 - m_scroll_y);
}
else
{
m_bg_tilemap->set_scrollx(0, m_scroll_x);
m_bg_tilemap->set_scrolly(0, m_scroll_y);
}
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
draw_sprites(bitmap, cliprect);
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}
示例13: screen_update
uint32_t patapata_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// vregs
// 0/1 are fg scroll? 0x0ff0 , 0x07b0 is no scroll
// 2/3 are bg scroll?
// 4 is fg bank
int scrollx = (m_vregs[2]-0xff0)&0xfff;
int scrolly = (m_vregs[3]-0x7b0)&0xfff;
if (scrolly&0x200) scrollx += 0x1000;
scrolly&=0x1ff;
m_bg_tilemap->set_scrollx(0, scrollx);
m_bg_tilemap->set_scrolly(0, scrolly);
scrollx = (m_vregs[0]-0xff0)&0xfff;
scrolly = (m_vregs[1]-0x7b0)&0xfff;
if (scrolly&0x200) scrollx += 0x1000;
scrolly&=0x1ff;
m_fg_tilemap->set_scrollx(0, scrollx);
m_fg_tilemap->set_scrolly(0, scrolly);
if ((m_vregs[4]&0x3) != m_fg_bank)
{
m_fg_bank = m_vregs[4]&0x3;
m_fg_tilemap->mark_all_dirty();
}
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
/*
popmessage("%04x %04x %04x %04x\n%04x %04x %04x %04x",
m_vregs[0], m_vregs[1],
m_vregs[2], m_vregs[3],
m_vregs[4], m_vregs[5],
m_vregs[6], m_vregs[7]);
*/
return 0;
}
示例14: screen_update
UINT32 hvyunit_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
#define SX_POS 96
#define SY_POS 0
m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO
m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO
bitmap.fill(m_palette->black_pen(), cliprect);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
m_pandora->update(bitmap, cliprect);
return 0;
}
示例15:
uint32_t wyvernf0_state::screen_update_wyvernf0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int layers_ctrl = -1;
#ifdef MAME_DEBUG
if (machine().input().code_pressed(KEYCODE_Z))
{
int msk = 0;
if (machine().input().code_pressed(KEYCODE_Q)) msk |= 1;
if (machine().input().code_pressed(KEYCODE_W)) msk |= 2;
if (machine().input().code_pressed(KEYCODE_A)) msk |= 4;
if (machine().input().code_pressed(KEYCODE_S)) msk |= 8;
if (msk != 0) layers_ctrl &= msk;
popmessage("fg:%02x %02x bg:%02x %02x ROM:%02x RAM:%02x",
m_scrollram[0],m_scrollram[1],m_scrollram[2],m_scrollram[3],
m_rombank, m_rambank
);
}
#endif
m_fg_tilemap->set_scrollx(0, m_scrollram[0]);
m_fg_tilemap->set_scrolly(0, m_scrollram[1]);
m_bg_tilemap->set_scrollx(0, m_scrollram[2]);
m_bg_tilemap->set_scrolly(0, m_scrollram[3]);
bitmap.fill(0, cliprect);
// background monitor
if (layers_ctrl & 1) m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
if (layers_ctrl & 4) draw_sprites(bitmap, cliprect, false);
// foreground monitor
if (layers_ctrl & 8) draw_sprites(bitmap, cliprect, true);
if (layers_ctrl & 2) m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;
}