Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как заставить объект стрелять

Ответить
Настройки темы
C/C++ - Как заставить объект стрелять

Новый участник


Сообщения: 17
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте... Пытаюсь написать игру типа Космической дуэли... Застопарился на стрельбе... Точнее как заставить свой объект стрелять... Подскажите как можно организовать данный процесс. Или где можно про это почитать?


Код: Выделить весь код
#pragma once
#include <iostream>
#include <stdlib.h>
#include <Windows.h>

using namespace std;

class GameObject
{
public:
	int x, y; // Координаты расположения объекта
	int size; // Размер объекта
	char image; //Изображение объекта

	GameObject(void);
	GameObject(int x, int y, char img);
	GameObject(int x, int y, int s, char img);
	virtual void Draw();
	~GameObject(void);
};
Код: Выделить весь код
#include "GameObject.h"


GameObject::GameObject(void)
{
}

GameObject::GameObject(int x, int y, int s, char img)
{
	this-> x = x;
	this-> y = y;
	size = s;
	image = img;
}


GameObject::GameObject(int x, int y, char img)
{
	this-> x = x;
	this-> y = y;
	image = img;
}

void GameObject::Draw()
{
	HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); //Дескриптор устройства стандартного вывода. 
	COORD coord = {x, y}; //структура для опред позиции на плосости
	SetConsoleTextAttribute(h, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
	SetConsoleCursorPosition(h, coord);
	cout << image;
}

GameObject::~GameObject(void)
{
}
Код: Выделить весь код
#pragma once
#include "GameObject.h"

class Spacecraft : public GameObject
{
	int speedx;
	int speedy;
public:
	Spacecraft(void);
	Spacecraft(int, int, char);
	void Move();
	~Spacecraft(void);
};
Код: Выделить весь код
#include "Spacecraft.h"


Spacecraft::Spacecraft(void)
{
}

Spacecraft::Spacecraft(int x, int y, char img):GameObject(x, y, img)
{
}

Spacecraft::~Spacecraft(void)
{
}
Код: Выделить весь код
#pragma once
#include "Spacecraft.h"

class Player_SC : public Spacecraft
{
public:
	Player_SC(void);
	Player_SC(int, int, char);
	void Draw();
	void Move();
	~Player_SC(void);
};
Код: Выделить весь код
#include "Player_SC.h"

Player_SC::Player_SC(void)
{
}

Player_SC::~Player_SC(void)
{
}

Player_SC::Player_SC(int x, int y, char img):Spacecraft(x, y, img)
{
}

void Player_SC::Draw()
{
	HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD coord = {x, y};
	SetConsoleTextAttribute(h, FOREGROUND_RED | FOREGROUND_INTENSITY);
	SetConsoleCursorPosition(h, coord);
	cout << image;
}

void Player_SC::Move()
{
	if(GetAsyncKeyState(VK_UP))
	{
		if(y>0)
		y--;	
	}
	if(GetAsyncKeyState(VK_LEFT))
	{
		if(x>0)
		x--;	
	}
	if(GetAsyncKeyState(VK_RIGHT))
	{
		if(x<79)
		x++;	
	}
	if(GetAsyncKeyState(VK_DOWN))
	{
		if(y<24)
		y++;	
	}
}

Отправлено: 00:51, 27-02-2013

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


SAU-trade, ты бы хоть комментарии писал.
Стрелять, это св-во, такое же, как "Двигаться"
Цитата SAU-trade:
Или где можно про это почитать? »
Tricks of the Windows Game Programming Gurus / Программирование игр для Windows (2003)
Tricks of the 3D Game Programming Gurus Advanced. 3D Graphics and Rasterization / Программирование трёхмерных игр для Windows. Советы профессионала по трёхмерной графике и растеризации.(2004)
То, что датировка достаточно поздняя делу не помешает. Базовое 2D и 3D будете знать.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:09, 27-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 1813
Благодарности: 146

Профиль | Отправить PM | Цитировать


Вполне возможно, что Вам не стоит изобретать велосипед, а надо просто слямзить процесс стреляния, как он расписан в более ранних играх типа шутеров. Гугление выводит на весьма полезную страничку в Википедии: там аж 7 штук игрух с открытым кодом. Хоть одна да точно подойдет за образец.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:38, 27-02-2013 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как заставить объект стрелять

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] ObjGet находит объект экселя, но не находит объект IE, почему? evg64 AutoIt 2 21-08-2010 14:22
Как отделить объект от фона romashka7 Цифровое изображение 3 17-04-2010 01:15
Как убрать объект с картинки? bigkuler Цифровое изображение 1 01-11-2009 14:20
Сохранить объект как... в IE 6 AMM Microsoft Windows 2000/XP 1 30-05-2007 10:15
Как внедрить flash-объект в тело письма AlexSaaa Хочу все знать 1 18-11-2004 11:39




 
Переход