def handle_events(): global running, dx, dy, x, y, target, speed evts = get_events() for e in evts: if e.type == SDL_QUIT: running = False elif e.type == SDL_KEYDOWN: if e.key == SDLK_ESCAPE: running = False elif e.type == SDL_MOUSEBUTTONDOWN: if e.button == SDL_BUTTON_LEFT: if speed > 0: speed += 1 dx, dy = helper.delta((x, y), target[0], speed) elif e.button == SDL_BUTTON_RIGHT: if speed == 0: speed += 1 target.append((e.x, get_canvas_height() - e.y - 1)) dx, dy = helper.delta((x, y), target[0], speed) if speed > 0: (x, y), done = helper.move_toward((x, y), (dx, dy), target[0]) if done == True: dx, dy = 0, 0 del target[0] if not target: speed = 0 else: dx, dy = helper.delta((x, y), target[0], speed)
def move_character(): global x, y, speed global move_list, move_count global animation_index if move_count < len(move_list): delta = helper.delta((x, y), move_list[move_count][0:2], move_list[move_count][2]) if move_count != 0: if delta[0] >= 0: animation_index = 1 else: animation_index = 0 (x, y), done = helper.move_toward((x, y), delta, move_list[move_count][0:2]) if done: move_count += 1 else: move_list.append((x, y, 0)) move_count += 1 if animation_index == 0: animation_index = 2 elif animation_index == 1: animation_index = 3
def handle_events(): global running global boy global arrive events = get_events() for event in events: if event.type == SDL_QUIT: running = False elif (event.type, event.key) == (SDL_KEYDOWN, SDLK_ESCAPE): running = False elif event.type == SDL_MOUSEBUTTONDOWN: boy.towardx = event.x boy.towardy = get_canvas_height() - event.y - 1 boy.dx, boy.dy = helper.delta((boy.x, boy.y), (boy.towardx, boy.towardy), 5) (deltax, deltay) = helper.delta((boy.x, boy.y), (towardx, towardy), 5)
def handle_events(): global running, boy events = get_events() for e in events: if e.type == SDL_QUIT: running = False elif e.type == SDL_KEYDOWN: if e.key == SDLK_ESCAPE: running = False elif e.type == SDL_MOUSEBUTTONDOWN: boy.speed += 1 if boy.target == None: boy.target = e.x, HEIGHT - 1 - e.y boy.delta = helper.delta(boy.pos, boy.target, boy.speed) else: boy.delta = helper.delta(boy.pos, boy.target, boy.speed) boy.target_list.append((e.x, HEIGHT - 1 - e.y)) print(boy.target_list)
def update(self): self.fidx = (self.fidx + 1) % 8 if self.target == None: self.speed = 1 if len(self.target_list) != 0: self.target = copy.copy(self.target_list[0]) self.target_list.pop(0) self.delta = helper.delta(self.pos, self.target, self.speed) helper.move_toward_obj(boy)
def update(self, tList): if len(tList) > 0: # 목적지가 있다면 dt = helper.delta((self.x, self.y),tList[0],self.speed) (self.x, self.y), done = helper.move_toward((self.x, self.y), dt, tList[0]) if done == True: del(tList[0]) self.speed = 1 # self.x += self.dx # self.y += self.dy self.fidx = (self.fidx + 1) % 8
def update(self): self.frame = (self.frame + 1) % 8 self.delta = helper.delta(self.pos, self.rTarget, self.speed) self.pos, self.done = helper.move_toward(self.pos, self.delta, self.rTarget) if self.done == True: print(self.targetList) del self.targetList[0] if len(self.targetList) == 0: self.speed = 1 else: self.rTarget = self.targetList[0]
def handle_events(): global running, dx, dy, x, y, delta, pos, target, speed, done events = get_events() for e in events: if e.type == SDL_QUIT: running = False elif e.type == SDL_KEYDOWN: if e.key == SDLK_ESCAPE: running = False elif e.type == SDL_MOUSEBUTTONDOWN: target[0], target[1] = e.x, get_canvas_height() - e.y - 1 delta = h.delta(pos, target, speed) speed = speed + 1
def handle_events(): global running global boy global tx, ty global num, cnt evts = get_events() for e in evts: if e.type == SDL_QUIT: running = False elif (e.type, e.key) == (SDL_KEYDOWN, SDLK_ESCAPE): running = False elif e.type == SDL_MOUSEBUTTONDOWN and boy.target == None: tx.append(e.x), ty.append(600 - 1 - e.y) set_target(boy, (tx[num], ty[num])) boy.delta = list( helper.delta(boy.pos, (tx[num], ty[num]), boy.speed)) num += 1 cnt += 1 elif e.type == SDL_MOUSEBUTTONDOWN and boy.target != None: boy.speed += 3 boy.delta = list(helper.delta(boy.pos, boy.target, boy.speed)) tx.append(e.x), ty.append(600 - 1 - e.y) cnt += 1
def update(): global done, target, speed if boy.pos != target: boy.finx = (boy.finx + 1) % 8 else: if targets: target = targets.pop(0) else: speed = 0 boy.finx = 0 delta = helper.delta(boy.pos, target, speed) boy.pos, done = helper.move_toward(boy.pos, delta, target)
def handle_events(): global running global dx, dy, x, y evts = get_events() boy.done = False for e in evts: if e.type == SDL_QUIT: running = False elif (e.type, e.key) == (SDL_KEYDOWN, SDLK_ESCAPE): running = False elif e.type == SDL_MOUSEBUTTONDOWN: boy.speed += 1 boy.list.append((e.x, 600 - e.y - 1)) boy.target = boy.list[0] boy.pos, boy.done = helper.move_toward( boy.pos, helper.delta(boy.pos, boy.target, boy.speed), boy.target)
def handle_events(): global running global delta, speed, Mx, My, done, pos, target evts = get_events() for e in evts: if e.type == SDL_KEYDOWN: if e.key == SDLK_ESCAPE: running = False elif e.type == SDL_QUIT: running = False elif e.type == SDL_MOUSEBUTTONDOWN: Mx, My = e.x, get_canvas_height() - e.y - 1 if e.button == SDL_BUTTON_LEFT: if done == False: speed += 1 target = Mx, My delta = helper.delta(pos,target,speed)
def handle_events(): global running global pos global delta global done global target global speed events = get_events() for event in events: if event.type == SDL_QUIT: running = False elif event.type == SDL_KEYDOWN: if event.key == SDLK_ESCAPE: running = False elif event.type == SDL_MOUSEBUTTONDOWN: targetlist.extend([event.x, get_canvas_height() - 1 - event.y]) speed += 2 delta = helper.delta(pos, target, speed)
def update(self): self.frame = (self.frame + 1) % 8 delta = helper.delta( (self.x, self.y), (self.target[self.target_idx][0], self.target[self.target_idx][1]), self.speed) result = helper.move_toward( (self.x, self.y), (delta[0], delta[1]), (self.target[self.target_idx][0], self.target[self.target_idx][1])) if result[1] is True: # Reset speed when getting to destination self.speed = 3 if self.target_idx < len(self.target) - 1: self.target_idx += 1 else: self.x = result[0][0] self.y = result[0][1]
def set_target(obj, target): obj.target = target obj.delta = [0, 0] if target is None else helper.delta( obj.pos, target, obj.speed)
running = True while running: clear_canvas() grass.draw(400, 30) character.clip_draw(frame * 100, 0, 100, 100, x, y) update_canvas() handle_events() if (tx == -1): x += 1 elif num > list_num + 2: if h.move_toward([x, y], [ h.delta([x, y], [goal[list_num + 1], goal[list_num + 2]], speed)[0], h.delta([x, y], [goal[list_num + 1], goal[list_num + 2]], speed)[1] ], [goal[list_num + 1], goal[list_num + 2] ]) != ([goal[list_num + 1], goal[list_num + 2]], True): x = x + h.delta([x, y], [goal[list_num + 1], goal[list_num + 2]], speed)[0] y = y + h.delta([x, y], [goal[list_num + 1], goal[list_num + 2]], speed)[1] speed_events() else: list_num += 2 frame = (frame + 1) % 8 close_canvas()
now = 0 #현재 좌표를 가리키는 함수 x = 30 y = 80 dx = 0 dy = 0 mx = [30] my = [80] speed = 1 start = False running = True frame = 0 while running: clear_canvas() gra.draw(400, 30) img.clip_draw(frame * 100, 0, 100, 100, x, y) #두개의 이미지를 그려줌 update_canvas() frame = (frame + 1) % 8 handle_events() dx, dy = helper.delta([x, y], [mx[now], my[now]], speed) if dx == 0 and dy == 0 and start == True: speed = 1 now += 1 if len(mx) == now: #도착시했고 리스트의 다음값이 없을땐 now에 값을 더하지 않음. 리스트의 다음값이 없기때문에 다음좌표를 가리킬수 없음. now -= 1 [x, y], done = helper.move_toward([x, y], [dx, dy], [mx[now], my[now]]) delay(0.03) close_canvas()
delta = 0, 0 # 이동 거리 speed = 1 # 프레임 당 이동 속도 Mx, My = 0, 0 # 마우스 위치 running = True while running: clear_canvas() gra.draw(400, 30) ch.clip_draw(fidx * 100, 0, 100, 100, pos[0], pos[1]) update_canvas() handle_events() delta = helper.delta(pos, target[count], speed) pos, done = helper.move_toward(pos, delta, target[count]) if pos == target[count] and len(target) - count != 1: count += 1 if done == False: pos += delta else: speed = 1 fidx = (fidx + 1) % 8 delay(0.01) close_canvas()
running = True move = False x, y = 800 // 2, 90 destList = [(800 // 2, 90)] destListCount = 1 frame = 0 speed = 0 done = 0 while running: clear_canvas() kpu_ground.draw(800 // 2, 30) character.clip_draw(frame * 100, 0, 100, 100, x, y) update_canvas() frame = (frame + 1) % 8 if move: x, y = helper.move_toward((x, y), helper.delta((x, y), destList[destListCount], speed), destList[destListCount])[0] done = helper.move_toward((x, y), helper.delta((x, y), destList[destListCount], speed), destList[destListCount])[1] if done: if destListCount == len(destList) - 1: move = False speed = 1 destListCount += 1 done = 0 handle_events()
pos = (400, 100) delta = (0, 0) speed = 1 done = False target = (x, y) targetlist = [x, y] running = True while (running): clear_canvas() grass.draw(400, 30) character.clip_draw(frame * 100, 0, 100, 100, pos[0], pos[1]) update_canvas() handle_events() pos, done = helper.move_toward(pos, delta, target) if delta[0] >= 0 and x >= target[0] or delta[0] <= 0 and x <= target[0]: done = True if (done == False): frame = (frame + 1) % 8 if (done == True): speed = 1 if (len(targetlist) >= 4): del targetlist[:2] target = (targetlist[0], targetlist[1]) delta = helper.delta(pos, target, speed) delay(0.01) close_canvas()
speed = 1 destination = [] while running: clear_canvas() gra.draw(400, 30) ch.clip_draw(fidx * 100, 0, 100, 100, pos[0], pos[1]) update_canvas() handle_events() if moving: fidx = (fidx + 1) % 8 if not len(destination) == 0: delta = h.delta(pos, destination[0], speed) pos, arrive = h.move_toward(pos, delta, destination[0]) if arrive: speed = 1 if not len(destination) == 0: destination.pop(0) else: moving = True fidx = 0 delay(0.02) close_canvas()
running = False elif e.type == SDL_MOUSEBUTTONDOWN: boy.speed += 1 boy.list.append((e.x, 600 - e.y - 1)) boy.target = boy.list[0] boy.pos, boy.done = helper.move_toward( boy.pos, helper.delta(boy.pos, boy.target, boy.speed), boy.target) open_canvas(800, 600) enter() running = True while running: handle_events() boy.pos, boy.done = helper.move_toward( boy.pos, helper.delta(boy.pos, boy.target, boy.speed), boy.target) update() clear_canvas() draw() update_canvas() delay(0.01) close_canvas()