Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Skorb
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 1
1

управление с сенсорного экрана 2D

28.02.2017, 10:46. Просмотров 230. Ответов 0
Метки нет (Все метки)

Всем привет! Помогите пожалуйста! Уже неделю мучаюсь! Хочу сделать управление игроком в 2d игре для андроид платформы, что бы бегал вправо- лево, прыжок настроил остальное не могу, и еще подскажите как сделать что бы после окончания жизней (сердечек) появлялось окно с выбором вернуться в начало игры или посмотреть рекламу что бы добавилось "сердечко"! Зарание спасибо за помощь и понимание!
Вот скрипт!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class characterController : Unit {
 
    private SpriteRenderer sprite;
    public float speed = 3.5F;
 
    public float jumpPower;
    public int directionInput;
    public bool groundCheck;
    public bool facingRight = true;
 
    private int lives = 5;
    public int Lives
    {
        get { return lives; }
        set
        {
            if (value < 5) lives = value;
            livesBar.Refresh();
        }
    }
    private LivesBar livesBar;
    Rigidbody2D body;
    private bool isGrounded = false;
    public float force = 300.0f;
 
    private int coinsInt = 0;
    public Text coinsText;
 
    // Use this for initialization
    void Start () 
    {
        body = GetComponent<Rigidbody2D> ();
    }
 
    new private Rigidbody2D rigidbody;
    private Animator animator;
    private CharState State
    {
        get { return (CharState)animator.GetInteger("State"); }
        set { animator.SetInteger("State", (int)value); }
    }
        
    private void Awake()
    {
        livesBar = FindObjectOfType<LivesBar>();
        rigidbody = GetComponent<Rigidbody2D>();
        animator = GetComponent<Animator>();
        sprite = GetComponentInChildren<SpriteRenderer>();
    }
 
    // Update is called once per frame
    private void FixedUpdate()
    {
        CheckGround ();
        body.velocity = new Vector2(speed * directionInput, body.velocity.y);
    }
 
 
    void Update ()
    {
        coinsText.text = coinsInt.ToString();
 
        if (isGrounded) State = CharState.Idle;
 
        if (Input.GetButton("Horizontal")) Run();
 
        if (isGrounded && Input.GetKeyDown (KeyCode.Space)) 
        {
 
            GetComponent<Rigidbody2D>().AddForce(new Vector2(0, force));
        }
 
            groundCheck = true;
    }
        
    public override void ReceiveDamage()
    {
        Lives--;
 
        rigidbody.velocity = Vector3.zero;
        rigidbody.AddForce(transform.up * 8.0F, ForceMode2D.Impulse);
 
        Debug.Log(lives);
    }
 
    private void CheckGround()
    {
        Collider2D[] colliders = Physics2D.OverlapCircleAll (transform.position, 1f);
        isGrounded = colliders.Length > 1;
        if (!isGrounded) State = CharState.Jump;
    }   
 
    private void Run()
    {
        Vector3 direction = transform.right * Input.GetAxis("Horizontal");
        transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);
        sprite.flipX = direction.x < 0.0F;
        if (isGrounded) State = CharState.Run;
    }
 
 
    public void Jump(bool isJump)
    {
        isJump = isGrounded;
        if (isGrounded)
        {
            body.velocity = new Vector2(body.velocity.x, jumpPower);
        }
    }
        
        
    void OnTriggerEnter2D(Collider2D col)
    {
        if ((col.gameObject.name == "dieCollider") || (col.gameObject.name == "Obstacle")) // получение урона от обьектов
        {
            ReceiveDamage ();
        }
 
        if (col.gameObject.tag == "hole") // возврат в начало уровня после падения
        {
            Application.LoadLevel (Application.loadedLevel);
        }
 
        if (col.gameObject.tag == "coins") // сбор монет
        {
            coinsInt++;
            Destroy (col.gameObject);
        }
 
        if (col.gameObject.name == "endLevel") // переход на другой уровень
        {
            Application.LoadLevel ("Level1_Scena2");
        }
    }
}
 
public enum CharState
{
    Idle,
    Run,
    Jump
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2017, 10:46
Ответы с готовыми решениями:

Реализовать алгоритм работы планировщика. Управление виртуальной памятью. Управление файловой системой
Разработка программы менеджера памяти. Свопинг. Сегментная схема организации...

Написать игру. В верхней части экрана летят 3 «звездочки»(***). В нижнем правом углу экрана находиться буква «О»
Написать игру. В верхней части экрана летят 3 «звездочки»(***). В нижнем правом...

Настройка жестов сенсорного экрана
Добрый день, форумчане! Недавно купил планшетник с Windows 7 на борту......

Как обработать ввод с сенсорного экрана
Всем привет! Как можно реализовать обработку скроллинга с сенсорного экрана. К...

Ищу описание сенсорного жк экрана LM1046A01
Имеется сенсорный жк экран LM1046A01-1H. Типа...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2017, 10:46

События сенсорного экрана "застревают" в QToolButton
Имеется компьютер с сенсорным экраном и программа на QT. На форме программы...

Управление ориентацией экрана
вот есть у меня приложение, меня у страивает как оно на всех телефонах...

Управление яркостью экрана
Как можно программно изменить яркость экрана, а также получить текущую?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru