泡泡堂开发文档内容摘要:

if(trolestate = ENDSTATE){ BitBlt(bufDC, 16+trolex, 20+troley, 48, 64, cRole1Ani, 48*(((trolestateENDSTATE)/3)%6+2), 0, SRCAND)。 BitBlt(bufDC, 16+trolex, 20+troley, 48, 64, bRole1Ani, 48*(((trolestateENDSTATE)/3)%6+2), 0, SRCPAINT)。 } else if(trolestate = BEGINSTATE){ BitBlt(bufDC, 16+trolex, 20+troley, 48, 64, cRole1Start, 48*(((trolestateBEGINSTATE)/3)%10), 0, SRCAND)。 BitBlt(bufDC, 16+trolex, 20+troley, 48, 64, bRole1Start, 48*(((trolestateBEGINSTATE)/3)%10), 0, SRCPAINT)。 } else{ BitBlt(bufDC, 16+trolex, 20+troley, 48, 64, cRole1, 48*y, 64*x, SRCAND)。 BitBlt(bufDC, 16+trolex, 20+troley, 48, 64, bRole1, 48*y, 64*x, SRCPAINT)。 }} else if(num == 2){ if(trolestate = ENDSTATE){ BitBlt(bufDC, 12+trolex, 21+troley, 56, 71, cRole2Ani, 56*(((trolestateENDSTATE)/3)%6+2), 0, SRCAND)。 BitBlt(bufDC, 12+trolex, 21+troley, 56, 71, bRole2Ani, 56*(((trolestateENDSTATE)/3)%6+2), 0, SRCPAINT)。 } else if(trolestate = BEGINSTATE){ BitBlt(bufDC, 12+trolex, 21+troley, 56, 71, cRole2Start, 56*(((trolestateBEGINSTATE))/3%10), 0, SRCAND)。 BitBlt(bufDC, 12+trolex, 21+troley, 56, 71, bRole2Start, 56*(((trolestateBEGINSTATE))/3%10), 0, SRCPAINT)。 } else { BitBlt(bufDC, 12+trolex, 21+troley, 56, 67, cRole2, 56*y, 67*x, SRCAND)。 BitBlt(bufDC, 12+trolex, 21+troley, 56, 67, bRole2, 56*y, 67*x, SRCPAINT)}} else{ if(trolestate = DEATH12 amp。 amp。 trolestate = DEATH){ BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, cBigPopo, (trolestate1)/6 * 72, 0, SRCAND)。 BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, bBigPopo, (trolestate1)/6 * 72, 0, SRCPAINT)。 } else if(trolestate DEATH12 amp。 amp。 trolestate DEATHHELPTIME12){ BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, cBigPopo, 3*72, 0, SRCAND)。 if(num == 1){ if((DEATH12trolestate)/5 % 2 == 0) BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, bRole1Death1, 0, 0, SRCPAINT)。 else BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, bRole1Death2, 0, 0, SRCPAINT)。 } else{ if((DEATH12trolestate)/5 % 2 == 0) BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, bRole2Death1, 0, 0, SRCPAINT)。 else BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, bRole2Death2, 0, 0, SRCPAINT)。 }} else if(trolestate DEATHHELPTIME12 amp。 amp。 trolestate DEATHHELPTIME 37){ BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, cBigPopo, ((trolestate+(DEATHHELPTIME))/5+5) * 72, 0, SRCAND)。 BitBlt(bufDC, 10+trolex, 25+troley, 72, 72, bBigPopo, ((trolestate+(DEATHHELPTIME))/5+5) * 72, 0, SRCPAINT)。 }} void PaintXY(int x, int y, HDC bufDC, int value){ switch(value){ case SANDGROUND:{ if( ((x+1)%2==0 amp。 amp。 (y+1)%2 == 0 )|| ((x+1)%2 ==1 amp。 amp。 (y+1)%2 == 1)) BitBlt(bufDC, 20+x*40 , 40+y*40, 40, 40, bSandGround, 0, 0, SRCCOPY)。 else BitBlt(bufDC, 20+x*40 , 40+y*40, 40, 40, bSandGround, 40, 0, SRCCOPY)。 } return。 case SANDBLOCKYELLOW:{ BitBlt(bufDC, 15+x*40 , 40+y*40, 45, 45, cShadowBlock, 0, 0, SRCAND)。 BitBlt(bufDC, 15+x*40 , 40+y*40, 45, 45, bShadowBlock, 0, 0, SRCPAINT)。 if( ((x+1)%2==0 amp。 amp。 (y+1)%2 == 0 )|| ((x+1)%2 ==1 amp。 amp。 (y+1)%2 == 1)){ BitBlt(bufDC, 20+x*40 , 36+y*40, 40, 44, cSandBlockYellow, 0, 0, SRCAND)。 BitBlt(bufDC, 20+x*40 , 36+y*40, 40, 44, bSandBlockYellow, 0, 0, SRCPAINT)。 } else { BitBlt(bufDC, 20+x*40 , 36+y*40, 40, 44, cSandBlockBuff, 0, 0, SRCAND)。 BitBlt(bufDC, 20+x*40 , 36+y*40, 40, 44, bSandBlockBuff, 0, 0, SRCPAINT)。 }} return。 case SANDSHOPYELLOW: { BitBlt(bufDC, 15+x*40 , 40+y*40, 45, 45, cShadowBlock, 0, 0, SRCAND)。 BitBlt(bufDC, 15+x*40 , 40+y*40, 45, 45, bShadowBlock, 0, 0, SRCPAINT)。 BitBlt(bufDC, 20+x*40 , 13+y*40, 40, 67, cSandShopYellow, 0, 0, SRCAND)。 BitBlt(bufDC, 20+x*40 , 13+y*40, 40, 67, bSandShopYellow, 0, 0, SRCPAINT)。 } return。 case GIFT1: case GIFT2: case GIFT3: case GIFT4: case GIFT5: { BitBlt(bufDC, 32+x*40 , 75+y*40, 18, 9, cShadowGift, 18*((giftMap[y][x]/9)), 0, SRCAND)。 BitBlt(bufDC, 32+x*40 , 75+y*40, 18, 9, bShadowGift, 18*((giftMap[y][x]/9)), 0, SRCPAINT)。 BitBlt(bufDC, 20+x*40 , 36+y*40, 42, 45, cGift[valueGIFT1], 42*((giftMap[y][x]/6)), 0, SRCAND)。 BitBlt(bufDC, 20+x*40 , 36+y*40, 42, 45, bGift[valueGIFT1], 42*((giftMap[y][x]/6)), 0, SRCPAINT)。 } return。 default: return。 } 碰撞检测: 先模拟先前移动,判断前方是否有障碍物。 左右侧都无障碍物则无碰撞,向前偏移speed,仅右侧有物则计算是否符合一的范围,符合向左侧偏移 speed,右侧有则反之, 流程图 如下 : 图 4:碰撞检测流程图 图 5:无物 图 6:左侧有物 图 7:右侧有物 图 8: 左右均有物 代码: bool MoveJudge(int derect, int amp。 x, int amp。 y, int speed){ switch(derect){ case UP:{ if(y speed 0) { y = 0。 return false。 } if((yspeed)/40 != y/40) { if(x != x/40 * 40)//是 { if(CanMove(map,(yspeed)/40, x/40 ) amp。 amp。 CanMove(map, (yspeed)/40, x/40+1) ) return true。 else if((!CanMove(map,(yspeed)/40, x/40。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。