2012-04-08 2 views
0

Мне очень нужна помощь. Я делаю игровое приложение для своего проекта в прошлом году. Это простая игра, в которой вам нужно стрелять в цель в цель, восстанавливая стены или угловые блоки. Однако мне нужна помощь в 2-х областях:столкновение & касание + методы стрельбы для Android

  1. механизм стрельбы подобен стрельбе из глупых зомби. Существует перекрестье, где вы касаетесь экрана, чтобы указать, в каком направлении вы хотите, чтобы мяч был снят. При выпуске мяч должен двигаться в этом направлении и, надеюсь, попадает в цель, и если гравитация и трение не заставят его остановиться.

    Проблема в том, как мне закодировать что-то вроде этого?

  2. Мне нужен шар для отскока стен, и у меня будет несколько блоков под углом, чтобы мяч попал в определенную часть, чтобы добраться до цели. Мяч в конце концов остановится, если цель не будет достигнута.

    Как я могу создать метод для создания столкновений стены и блоков?

Я провел последние недели, пытаясь найти учебники, чтобы помочь мне сделать игру, но не нашли много характерных для типа игры, я делаю. Было бы здорово, если бы был предоставлен образец кода или шаблон, так как это мое первое приложение для Android, и это для моего последнего проекта года, и у меня мало времени.

Спасибо заранее
akkki

+0

Посмотрите на коробку 2d код и учебники, особенно box2d lite. Он разработан, чтобы быть простым. – Rick

ответ

1

Ваш вопрос слишком общий для переполнения стека никто не собирается делать свой проект для Вас. Предполагая, что у вас есть базовый опыт программирования, если вы не получите книги и не узнаете это в первую очередь.

Предполагая, что вы уже выбрали Android из-за своего тега и считаете, что игра 2d проще.

Предварительные запросы: Установите java + eclipse + android sdk, если у вас уже нет. Создайте новый проект и используйте пример Лунного Ландара, убедитесь, что он работает на вашем телефоне или эмуляторе.

Начальный образец: В лунном лаваре есть игровая петля отдельная нить, которая постоянно перерисовывает весь экран, она делает это, постоянно вызывая функцию doDraw. Затем вы должны использовать холст, чтобы рисовать линии, круги, коробки, цвета и растровые изображения, чтобы они напоминали вашу игру. (canvas.draw ....) Лунный ландвард не использует openGL, поэтому его медленнее, но гораздо проще в использовании.

Снятие образца: Вы, вероятно, не хотите, чтобы кейветы или лунный космический корабль! Удалить все в функции OnDraw Удалить OnKeyUp, OnKeyDown Удалить все ошибки, что случаются Создать новую

@Override 
public boolean onTouchEvent(MotionEvent event){ 
    return false; 
} 

запустить его, вы должны получить пустой экран, это ваш холст, чтобы начать делать свою игру .. Вы упомянули о шарах, разделите их на то, что такое мяч: позиция и направление, создайте переменные для шаров x, y direction_x и direction_y событие касания захочет изменить направление мяча, событие ничьей будет хотеть переместить мяч (добавив направление x, y к шару x, y) и нарисуйте шарик (canvas.drawCircle (x, y, radius, new Paint())), чтобы больше шаров искало и читало о массивах. Самое главное начать просто и экспериментировать.

2 столкновения

Коллизии может быть сделано в dodraw функции и разбита на: перемещение объекта, проверка, если этот объект прошел, где она должна идти, и если да, переместить его обратно, прежде чем кто-нибудь заметит. ... есть много по-разному методы обнаружения столкновений:

  • Если ваши стены все горизонтальные и вертикальные (самый простой), то поле столкновения проверяет шары новый х, у + -радиус против стены через х, у, ширина и высота его один большой, если утверждение и Google имеет миллиарды примеров.

  • Если ваши стены наклонены, то ваше столкновение с столкновением в нужной точке, у вас в основном есть линия (вектор) того, где ваш шар возглавляет вектор вашей стены, создайте функцию, чтобы проверить, где сталкиваются две линии, и проверьте, как на стене, так и в радиусе вашего шара (функции пересечения линии google)

  • или вы можете использовать выбор цвета, вы рисуете сцену, зная, что все ваши стены красные, например, затем проверьте, новый мяч x, y is, красный и знает, что вы нажмете

Удачи, надеюсь, что это он Немного облегчил, прост и пробовал, и, надеюсь, это поможет вам начать, и ваши следующие вопросы могут быть более конкретными.

+0

Большое спасибо за вашу помощь очень благодарен – akkki

Смежные вопросы