// // BattleView.m // Awars III // // Created by Killery on 2013/03/23. // Copyright (c) 2013年 Killery. All rights reserved. // #import "BattleView.h" @implementation BattleView -(void)awakeFromNib{ battleView = self; hitSoundBasic = [[NSSound soundNamed:@"hitSound.mp3"] retain]; } -(BOOL)isFlipped{ return YES; } - (id)initWithFrame:(NSRect)frame { self = [super initWithFrame:frame]; if (self) { } return self; } -(void)mouseDown:(NSEvent *)theEvent{ bLoopFlag = false; } -(void)drawImage:(NSImage*)image x:(float)x y:(float)y f:(float)frac{ NSRect frRect; frRect.size.height = image.size.height; frRect.size.width = image.size.width; frRect.origin.x = 0; frRect.origin.y = 0; NSRect drRect; drRect.origin.x = x; drRect.origin.y = y; drRect.size.height = image.size.height; drRect.size.width = image.size.width; [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:frac respectFlipped:YES hints:nil]; } - (void)drawRect:(NSRect)dirtyRect { // Drawing code here. NSImage *img; if(!battleVeryBegunFlag){ U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX1 y:BT_POINTY f:1.0]; U = UTop; U = UTop; while (!(DUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX2 y:BT_POINTY f:1.0]; U = UTop; }else if(battleVeryBegunFlag && !BTunitAttackFlag1 && !BTunitAttackFlag2){ btDistanceX1 += BT_CHAMOVESPEED; if(btDistanceX1 >= BT_CHADISTANCEDELTA) btDistanceX1 = BT_CHADISTANCEDELTA; U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0]; U = UTop; btDistanceX2 += BT_CHAMOVESPEED; if(btDistanceX2 >= BT_CHADISTANCEDELTA) btDistanceX2 = BT_CHADISTANCEDELTA; U = UTop; while (!(DUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0]; U = UTop; if(btDistanceX1 >= BT_CHADISTANCEDELTA && btDistanceX2 >= BT_CHADISTANCEDELTA){ baseDistanceCompFlag = true; } }else if(BTunitAttackFlag1 && !btHitFlag1 && !btHitExtendFlag1){ U = UTop; while (!(DUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0]; U = UTop; U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if(btAttackMoveValue1 == 0){ btAttackMove1 += 20; }else if(btAttackMoveValue1 == 1){ btAttackMove1 += -20; } if(btAttackMove1 >= 80){ btAttackMoveValue1 = 1; } if(btAttackMove1 <= 0){ btAttackMoveValue1 = 2; } if(btAttackMoveValue1 < 2){ [self drawImage:img x:BT_POINTX1 + btDistanceX1 + btAttackMove1 y:BT_POINTY f:1.0]; }else{ [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0]; } U = UTop; }else if(BTunitAttackFlag2 && !btHitFlag2 && !btHitExtendFlag1){ U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0]; U = UTop; U = UTop; while (!(DUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if(btAttackMoveValue2 == 0){ btAttackMove2 += 20; }else if(btAttackMoveValue2 == 1){ btAttackMove2 += -20; } if(btAttackMove2 >= 80){ btAttackMoveValue2 = 1; } if(btAttackMove2 <= 0){ btAttackMoveValue2 = 2; } if(btAttackMoveValue2 < 2){ [self drawImage:img x:BT_POINTX2 - btDistanceX2 - btAttackMove2 y:BT_POINTY f:1.0]; }else{ [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0]; } U = UTop; }else if(btHitExtendFlag1 && !btHitFlag1){ U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0]; U = UTop; if(btHitExtendProc1 == 0){ btHitExtendFix1 = 0; btHitExtendMove1 += 20; U = UTop; while (!(DUN[DUNnum-1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if(btHitExtendMove1 >= 300) btHitExtendProc1 = 1; [self drawImage:img x:BT_POINTX2 - btDistanceX2 + btHitExtendMove1 y:BT_POINTY f:1.0]; U = UTop; }else if(btHitExtendProc1 >= 1){ if(btHitExtendProc1 == 1) btHitExtendMove1 -= 20; if(btHitExtendMove1 <= 130 && btHitExtendProc1 < 2){ btHitExtendProc1 = 2; } U = UTop; while (!(DUN[DUNnum - btHitExtendFix1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX2 - btDistanceX2 + btHitExtendMove1 y:BT_POINTY f:1.0]; U = UTop; } }else if(btHitExtendFlag2 && !btHitFlag2){ U = UTop; while (!(DUN[DUNnum] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0]; U = UTop; if(btHitExtendProc2 == 0){ btHitExtendMove2 += 30; U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if(btHitExtendMove2 >= 400 && btHitExtendProc1 < 2){ btHitExtendProc2 = 1; } [self drawImage:img x:BT_POINTX1 + btDistanceX1 - btHitExtendMove2 y:BT_POINTY f:1.0]; U = UTop; }else if(btHitExtendProc2 >= 1){ if(btHitExtendProc2 == 1) btHitExtendMove2 -= 30; U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if(btHitExtendMove2 <= 200 && btHitExtendProc2 < 2){ btHitExtendProc2 = 2; } [self drawImage:img x:BT_POINTX1 + btDistanceX1 - btHitExtendMove2 y:BT_POINTY f:1.0]; U = UTop; } } if(btHitFlag1){ if(btHitExtendFlag1 && btHitExtendProc1 < 2) return; btHitFlagCnt1++; U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if (btHitFlagCnt1 == 1) [hitSoundBasic play]; [self drawImage:img x:BT_POINTX1 + btDistanceX1 y:BT_POINTY f:1.0]; U = UTop; int n = 0; if(DUNnum > 1) n = 1; U = UTop; while (!(DUN[DUNnum-n] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if(btHitFlagCnt1%2 == 0) [self drawImage:img x:BT_POINTX2 - btDistanceX2 + btHitExtendMove1 y:BT_POINTY f:1.0]; U = UTop; if(btHitFlagCnt1 > 9){ btHitFlagCnt1 = 9; btHitFlag1 = false; } } if(btHitFlag2){ if(btHitExtendFlag2 && btHitExtendProc2 < 2) return; btHitFlagCnt2++; U = UTop; while (!(DUN[DUNnum] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if (btHitFlagCnt2 == 1) [hitSoundBasic play]; [self drawImage:img x:BT_POINTX2 - btDistanceX2 y:BT_POINTY f:1.0]; U = UTop; U = UTop; while (!(AUN[1] == U->number)) { U = U->next; } img = [U->C.imgb copy]; [img setSize:NSMakeSize(BT_CHASIZEX, BT_CHASIZEY)]; if(btHitFlagCnt2%2 == 0) [self drawImage:img x:BT_POINTX1 + btDistanceX1 + btHitExtendMove1 y:BT_POINTY f:1.0]; U = UTop; if(btHitFlagCnt2 > 9){ btHitFlagCnt2 = 9; btHitFlag2 = false; } } } @end