Вниз  AndroidSimplestGameLibrary
- 3.03.2014 / 09:05
Ilya_dio
  Пользователь

Ilya_dio 
Сейчас: Offline
А ты поверял спрайт и замощенный слой на столкновения? Что-то я попробовал collidesWith(LayerSprite) и ноль реакции :-( true не возвращается :-( И как-то странно проверять карту на столкновения со спрайтом. Как-то задом наперед :-D Не?
- 3.03.2014 / 09:14
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Ilya_dio, у меня все нормально детектировалось, спасибо за совет, исправлю. Покажи класс, в котором ты проверял столкновение.

Изменено samodelkin (3.03 / 09:18) (всего 2 раза)
- 3.03.2014 / 10:31
Ilya_dio
  Пользователь

Ilya_dio 
Сейчас: Offline
samodelkin, Я распаковал твой SampleASGL с первой страницы себе в проэкты и добавил переменные для движения спрайта и карты. Когда спрайт наедет на карту - карта тоже должна ехать влево, но не едет :) И метод setVisible(true/false) тоже кстати не фурычит( У меня android 4.1 если что :)


Прикрепленные файлы:
GameView.java (0.94 кб.) Скачано 799 раз
- 3.03.2014 / 10:35
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Ilya_dio, неверно делаешь, там не нужны никакие лишние переменные, перемещай методом move(-1,0); -перемещение влево
У тебя и не будет ничего работать, так как действия происходят в методе onDraw, который отвечает за прорисовку, создай отдельный поток и в нем делай, сейчас напишу как надо сделать.
- 3.03.2014 / 10:39
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
package com.example.sampleasgl;


import samodelkin.androidsimplestgamelibrary.LayerSprite;
import samodelkin.androidsimplestgamelibrary.LayerTiles;
import android.content.Context;
import android.graphics.Canvas;
import android.view.View;
import android.graphics.*;

public class GameView extends View implements Runnable{


private LayerSprite sprite;
private LayerTiles map;
private int[] indexMap={
1,1,1,
1,0,1,
1,1,1
};

public GameView(Context context) {
super(context);
sprite=new LayerSprite(R.drawable.ic_launcher,this.getResources());
sprite.setPosition(100,50);
map=new LayerTiles(getResources(),new int[]{R.drawable.ic_launcher},indexMap, 3, 3);
new Thread(this).start();
}

public void onDraw(Canvas c){
super.onDraw(c);
map.paint(c);
sprite.paint(c);
invalidate();
}

public void run(){
while(true){
sprite.move(-1,0);
if (map.collidesWith(sprite)) map.move(-1,0);
try{
Thread.sleep(100);
}catch(Exception e){}
}
}



}
- 3.03.2014 / 11:23
Ilya_dio
  Пользователь

Ilya_dio 
Сейчас: Offline
samodelkin, Не фурычит и это дело. А команда move двигает спрайт хоть в run(), хоть в onDraw() - он ведь тоже поток. На него так же можно паузу перед invalidate() поставить. Я попробовал то что ты написал - тайлы стоят на месте все равно и даже просто в run() команда move не двигает карту, хотя спрайт движется :-( В чем проблема?
- 3.03.2014 / 11:25
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Ilya_dio, скинь проект.
- 3.03.2014 / 11:36
Ilya_dio
  Пользователь

Ilya_dio 
Сейчас: Offline
samodelkin, Вот он) Кстати спрайты нормально проверяются на столкновения... А вот с тайлами фигня какая-то :)


Прикрепленные файлы:
SampleASGL.zip (135.75 кб.) Скачано 22 раза
- 3.03.2014 / 11:39
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Ilya_dio, после обеда попробую разобраться.
- 3.03.2014 / 11:43
Ilya_dio
  Пользователь

Ilya_dio 
Сейчас: Offline
samodelkin, Ок, давай разберись :gg: А то у меня игра встала из-за этого :hack: Я же подумываю как слепить игровое пространство не из тайлов :-D
Наверх  Всего сообщений: 120
Фильтровать сообщения
Поиск по теме
Файлы топика (5)