Пятница, 01 Ноября 2024, 16:29

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
dwarvenДата: Пятница, 18 Октября 2013, 00:50 | Сообщение # 1 | Тема: Классическая змейка
был не раз
Сейчас нет на сайте
Здравствуйте, движок slick2d Java не могу додумать как сделать в змейки классическое передвижение когда например пару квадратов идут вниз а пол змеии еще с боку) и расстояние между ними туплю по строшному)) еду сделал 1 примитив кушает другой))

Код
import java.util.ArrayList;

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.Input;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.geom.Rectangle;
import org.newdawn.slick.geom.Vector2f;
import org.newdawn.slick.tiled.TiledMap;
import org.newdawn.slick.geom.Point;
public class Player {
  private float x;
  private float y;
private float tx;
private float ty;
private Vector2f pos = new Vector2f(x,y);
private Vector2f posen = new Vector2f(x,y);
private int q=1;
  private int temp=0;
   
private ArrayList<Vector2f> snakes  = new ArrayList<Vector2f>();;

  protected Image bullet;
  private int k;
  private int raz;
  private int val;
  private int n;
  private  int n1;
   
  public Player(int raz) {
this.raz=raz;

  }
   
   
   
  public void update(GameContainer gc, int delta) {
   Vector2f trans = new Vector2f(0, 0);
    

   //Vector2f trans = new Vector2f(0, 0); // Vector contains a value with components x & y
    ArrayList<Vector2f> snake = new ArrayList<Vector2f>();
   Input input = gc.getInput();
    
   snake.add(new Vector2f(0, 0));
   if (input.isKeyDown(Input.KEY_W) && (pos.y>=5)) {
    trans.y = -0.2f * delta;
    for (Vector2f pos : snakes) {
     pos.y=(float) (pos.y+Math.floor(trans.y)) ;
          
    }
   }
    //this.sprite=spritemove;
  if( (n==0)&& (n1==0 )) {
    snakes.add(new Vector2f(pos.x, pos.y));
    n1=1;
  }
    
    
    
   if ((input.isKeyDown(Input.KEY_S)) && (pos.y<=580)) {
    //trans.y = 0.2f * delta;
    trans.y = 0.2f * delta;
    for (Vector2f pos : snakes) {
     pos.y=(float) (pos.y+Math.floor(trans.y));
      
    }
   }
    
   if (input.isKeyDown(Input.KEY_D)&& (pos.x<=780))  {
    trans.x = 0.2f * delta;
    for (Vector2f pos : snakes) {
     pos.x=(float) (pos.x+Math.floor(trans.x));
          
    }
   }
   if (input.isKeyDown(Input.KEY_A) && (pos.x>=5)){
    trans.x = -0.2f * delta;
    for (Vector2f pos : snakes) {
     pos.x=(float) (pos.x+Math.floor(trans.x));
          
    }
   }
   if (input.isKeyDown(Input.KEY_ESCAPE))   
    gc.exit();
    
   if(val==1) {
    
      snakes.add(new Vector2f(pos.x, pos.y));
      
   }
    

   
   //System.out.println("Player" + pos.x);
   //System.out.println("Eat" + posen.x);

    
   pos.y += Math.floor(trans.y);
  pos.x += Math.floor(trans.x);
   k=1;
    
    
     
System.out.println(raz);
     
  }
   
   
  public void render(Graphics g) {
   //g.drawRect(pos.x, pos.y, 15, 15);
    
   for (Vector2f pos : snakes) {
    g.drawRect(pos.x, pos.y, 15, 15);
     
   
  }
    
  }
   
  public int getQ() {
   return q;
  }
   
  public Vector2f getPos() {
    
   return pos;
  }
public float getX() {
    
   return pos.x;
  }

public float getY() {
   
  return pos.y;
}

public void setRaz(int val) {
this.val=val;
}

public void setN(int n) {
this.n=n;
}

}
   
   


В общем класс игрока про просивку подскажите_
dwarvenДата: Среда, 02 Октября 2013, 22:02 | Сообщение # 2 | Тема: Попадание пули slick2d
был не раз
Сейчас нет на сайте
Здравствуйте=) С вами опять я какую проврерку сделать на попадание пули (ну чтобы исчез объект при попадании) туплю страшно))) нужно провреть попадание в квадрат как я понял
dwarvenДата: Воскресенье, 29 Сентября 2013, 15:05 | Сообщение # 3 | Тема: Прорисовка пуль slick2d
был не раз
Сейчас нет на сайте
MR_Borg, эту проблему уже решил почти так же (не люблю булен по этому обычный инт юзаю=) теперь думаю как передавать постоянно кординаты
dwarvenДата: Воскресенье, 29 Сентября 2013, 02:37 | Сообщение # 4 | Тема: Прорисовка пуль slick2d
был не раз
Сейчас нет на сайте
Нет суть вообще не в этом=) Опять проблемы с отрисовкой, все добавляю вот кусок кода из класса bullet

Код
if (input.isKeyDown(Input.KEY_E)){
trans.y+=delta;
    bull.y+=+trans.y;
Это update
и отрисовываю пулю вопервых пуля летит кототкое расстояние(ну это понятно вроде хотя не совсем) если пишу trans.y+=10f*delta; то дальность становится больше и вижу лишь начальное и конечное положение патрона при прорисовки(либо с большой скоростью отрисовывает либо сразу отрисовывает в нужном месте и еще вижу только при зажатой кнопке(ну это не суть))
dwarvenДата: Воскресенье, 29 Сентября 2013, 02:16 | Сообщение # 5 | Тема: Прорисовка пуль slick2d
был не раз
Сейчас нет на сайте
Из предыдущего топика усвоил немного разобарлся с update суть проблемы в том что вижу лишь начальное и конечное положение пули

Код
trans.y+=10f*delta;
bull.y=bull.y+trans.y;
Класс булет метод update

[code]

sprite.draw(bull.x, bull.y); render в общем-то в главном классе от правляю на перерисовку без цикла(пробывал и с циклом )
dwarvenДата: Суббота, 28 Сентября 2013, 22:25 | Сообщение # 6 | Тема: Простой по графике движок на Java
был не раз
Сейчас нет на сайте
Удачи вам!
dwarvenДата: Суббота, 28 Сентября 2013, 17:07 | Сообщение # 7 | Тема: slick2d Стрельба персонажа
был не раз
Сейчас нет на сайте
Цитата (x-and1988)
Я то думал хобби... В таком случае да, что начал, то и делай.

Желаение есть=(Времени нету дали курсовой на яве нужно сделать и забыть)

Добавлено (28.09.2013, 17:07)
---------------------------------------------

Код
time+=delta;
    trans.y = -0.9f * time*0.1f;
         
    bull.y+=trans.y;

переписал код в метод update сделал, как вы выразились более валидным, но вижу как летит снаряд только при зажатии кнопки

Скорость пробывал меньше сделать(
dwarvenДата: Суббота, 28 Сентября 2013, 17:02 | Сообщение # 8 | Тема: 2D MMORPG
был не раз
Сейчас нет на сайте
Как бы человек имел ввиду не мморпг как какжется мне , а что-то необыкновенно простое=) Типа проход по карте, парочка квестов(например 1=))) И убить 2-3 монстра.... Это реально досчить имея представления о яп и зная хотябы основы 1 из них=) Сомневаюсь что ты будешь писать на чистом си, следовательно будешь использывать ООП подход, но опять же 2 без первого не возможно так что реквестирую:
1)Сделать обычные программки на структурных языках например си (Циклы, файлы, условия, элементарная логика)
2)Поработать с ООП например с языком Java (сделать простенькие задачи), затем поработать со swing (чтобы хоть как-то понять как работает)
3)И делать игру по частям например карту и прочее

P.S выше изложен не имоверный бред=)
dwarvenДата: Суббота, 28 Сентября 2013, 16:55 | Сообщение # 9 | Тема: Простой по графике движок на Java
был не раз
Сейчас нет на сайте
Кстати и не слышал простых движком с AI=)
dwarvenДата: Суббота, 28 Сентября 2013, 01:46 | Сообщение # 10 | Тема: slick2d Стрельба персонажа
был не раз
Сейчас нет на сайте
Цитата (x-and1988)
А зря, так придется привыкать и узнавать одну архитектуру, а потом менять на другую. А менять то надо будет...

Я студент написал курсовой проект забыл)
dwarvenДата: Суббота, 28 Сентября 2013, 01:34 | Сообщение # 11 | Тема: slick2d Стрельба персонажа
был не раз
Сейчас нет на сайте
Цитата (x-and1988)
libgdx

коней на переправе не меняют. Спасибо попробую сделать так(я сделал так называемый метод в лоб как думал)

Добавлено (28.09.2013, 01:34)
---------------------------------------------

Цитата (DARKLORD)
Икс, ну ты нашел кому советовать переходить куда-то. Пусть учится на слике, он проще. А главное пусть учится писать нормальный, валидатный код.
По поводу валидности, есть такой грешок у меня ,в начале в лоб потом рефакторинг долгий и упорный. Все мы учимся рано или поздно(
dwarvenДата: Пятница, 27 Сентября 2013, 23:26 | Сообщение # 12 | Тема: slick2d Стрельба персонажа
был не раз
Сейчас нет на сайте
Привет всем начинающий "игродел" не могу придумать как сделать вылет пуль с задержкой происходит вот что :


собственно куски кода

Код
    public void render() {
   if(temp==1) {
    tem=tem+25;
   sprite.draw(bull.x+54, tem);
   }
  }

Это именно класс булет

и в главном классе подача на отрисовку
Код

try {
    for(int i=0;i<10;i++ , Thread.sleep(del)){
    bull.render();  
    del+=10;
      
     
    }
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }


Понимаю, что сделано не рационально, но хочу именно так ибо делаю сам и получаю опыт для себя, а не для кого либо!
Движок Slick2d Java + lwjgl подскажите как сделать! зарание благодарен!
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг