Ordan, да,именно для получения опыта,потому что планирую более серьезный проект,но это в недалеком будущем. Единственное,что я не столь идеальный художник,поэтому пока набросы на скорую руку. Одногруппник обещал помочь с текстурами.
Добавлено (04.11.2014, 20:31) --------------------------------------------- Временно отошел от java. Идей пока нет. Написал ping-pong на C#,ради интереса. https://yadi.sk/d/qK03UWKecVFL9
А также исходный код основного класса игры(граф.движок):
Код
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Threading; using System.Windows.Forms;
namespace ping_pong { class graphics:window { //Для прорисовки Bitmap btm=new Bitmap(832,768,System.Drawing.Imaging.PixelFormat.Format24bppRgb); int screen; //Счет public int player1_s= 0; public int player2_s = 0; //Позиция игроков int player1_x=64; int player1_y=64; int player2_x=704; int player2_y=64; int n = 64; //Позиция шарика public int ball_x = 384; public int ball_y = 384; //Позиция движения public char where = '+'; public char where_up = '='; //Основная функция public void render(Graphics g) { map(g); ball(g); player1(g); player2(g); score(g); if (screen == 1) { btm.Save("screenshot.bmp", System.Drawing.Imaging.ImageFormat.Bmp); screen = 0; } g.DrawImage(btm, 0, 0, 768, 768); Thread.Sleep(1000/800); } //Игрок 1 void player1(Graphics g) { using (g = Graphics.FromImage(btm)) { SolidBrush brush = new SolidBrush(Color.Red); g.FillRectangle(brush, new Rectangle(player1_x, player1_y, n, 256)); } } //Игрок 2 void player2(Graphics g) { using (g = Graphics.FromImage(btm)) { SolidBrush brush = new SolidBrush(Color.Green); g.FillRectangle(brush, new Rectangle(player2_x, player2_y, n, 256)); } } //Карта void map(Graphics g) {
using (g = Graphics.FromImage(btm)) { SolidBrush brush = new SolidBrush(Color.Black); g.FillRectangle(brush, new Rectangle(0, 0, 768, 768)); brush = new SolidBrush(Color.Blue); g.FillRectangle(brush, new Rectangle(0, 0, 832, 64)); g.FillRectangle(brush, new Rectangle(0, 0, 64, 768)); g.FillRectangle(brush, new Rectangle(0, 704, 832, 64)); g.FillRectangle(brush, new Rectangle(768, 0, 64, 768)); g.DrawLine(new Pen(new SolidBrush(Color.White), 3), new Point(416, 64), new Point(416, 704)); g.DrawLine(new Pen(new SolidBrush(Color.Yellow), 2), new Point(64, 64), new Point(64, 704)); g.DrawLine(new Pen(new SolidBrush(Color.Yellow), 2), new Point(768, 64), new Point(768, 704)); }
} //Мячик void ball(Graphics g) { using (g = Graphics.FromImage(btm)) { g.FillEllipse(Brushes.Yellow, ball_x, ball_y, 64, 64); } } //Счет void score(Graphics g) { using (g = Graphics.FromImage(btm)) { string s; s = "СЧЕТ:" + Convert.ToString(player1_s) + "-" + Convert.ToString(player2_s); g.DrawString(s, new Font("Arial", 18), new SolidBrush(Color.Yellow), new PointF((float)10, (float)30)); } } //Управление public void movements(Graphics g, PreviewKeyDownEventArgs e) { //Первый игрок if (e.KeyCode == Keys.W) { if (player1_y != 64) { player1_y -= 32; } } if (e.KeyCode == Keys.S) { if (player1_y != 448) { player1_y += 32; } } //Второй игрок if (e.KeyCode == Keys.Up) { if (player2_y != 64) { player2_y -= 32; } } if (e.KeyCode == Keys.Down) { if (player2_y != 448) { player2_y += 32; } } //скриншот if (e.KeyCode == Keys.F12) {
YarikPROVOD, А в чем преимущество движка над тем же гейм мэйкером?
Преимущество скорее у GM,поскольку это конструктор-расставил объекты и свойства и играй себе. А я пишу движок,пока оптимизированный под 2д платформеры, но есть все-таки преимущество - кроссплатформенность. Игры работают под Windows,Linux и в браузерах.
Добавлено (24.10.2014, 00:19) --------------------------------------------- Вот кстати улучшил движок и встроил генерацию мира.
Доброго времени суток! Я недавно начал писать собственную 2d игру на ЯП Java. Игру делаю в жанре:2d platformer shooter,sandbox; в стиле minecraft и terraria. Кому интересно,может следить за развитием проекта.Официальная страница разработки После релиза beta-версии планирую выложить движок на обозрение.
Сообщение отредактировал YarikPROVOD - Вторник, 21 Октября 2014, 17:19