Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.61/992: Рейтинг темы: голосов - 992, средняя оценка - 4.61
1849 / 706 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
1

Несколько небольших игрушек

08.02.2010, 23:16. Просмотров 200472. Ответов 213
Метки нет (Все метки)

Я тут решил повылаживать некоторые примеры моего творчества на заре знакомства с Билдером. Некоторые я уже тут выкладывал, некоторые нет, но я решил выложить все в одном месте. Может быть кому-нибудь поможет, может быть кто-нибудь подчерпнет для себя что-то…
В общем, смотрите, берите если нужно.
52
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2010, 23:16
Ответы с готовыми решениями:

Несколько небольших вопросов
1) отличаются ли чем-нибудь A и B и если ничем не отличаются, то когда "красивее" что использовать?...

Несколько небольших вопросов по С++
Здраствуйте уважаемые форумчани. У меня есть несколько вопросов, на которые я ответить не смог, но...

Несколько небольших вопросов
1. Если у меня есть поле типа enum с несколькими значениями, то как я могу получить через php...

Несколько игрушек не устанавливаются
при установке игры через установщик windows , при распаковке вылетает- исходный файл повреждён....

213
287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
17.12.2019, 16:05 201
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Понг
8Observer8, это просто позор господа...
Еще и исходник выложил ...
Как там 3D движок поживает ? рост то хоть есть ? Или мхом все поросло ?
хотя да вижу вижу, великие были помыслы до удаль молодецкая ушла ...

Начните создавать что то посерьезней, такие вещи как пакманы змейки пятнахи и прочее это поделки на вечер. Пакман к примеру был серьезным проектом в 80х только потому что под него сначала создали процессор для игрового автомата а потом на нем сделали код пакмана, писать такое в 21 веке на современных языках, ну я даже не знаю пойду поплачу над деградацией человечества...
0
Изображения
 
4176 / 2282 / 387
Регистрация: 05.10.2013
Сообщений: 6,385
Записей в блоге: 177
17.12.2019, 20:40 202
Этот Понг я переписал для тех кто будет изучать актуальный шейдерных OpenGL вместе с C#, изучая туториал: https://noobtuts.com/cpp/2d-pong-game По моей задумке любой начинающий в шейдерном OpenGL может читать данный туториал открыть мой код и изучить основы. В проём проекте происходит загрузка ширфтов, которые можно сгенерировать с помощью Bitmap Font Generator. Этот способ вывода текста можно использовать в 2D и 3D играх. На шейдерном OpenGL нет средств для вывода шрифтов. В данное теме выкладываются наработки. Здесь нужно выкладывать код, который может кому-то пригодится. Не нужно здесь флудить. За это накажут модераторы. Выдадут предупреждение или штраф. Каждый развивается и пытается помочь другим своими наработками, кто как может. Если у вас есть исходники, то выкладывайте. Не нужно здесь критиковать никого. Никто никому ничем не обязан. Напишите в личку, если хотите высказать критику (не надо!)
0
287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
17.12.2019, 21:04 203
Прогресс это движение вверх... В большинстве своем что здесь выложено не поможет ничему и никому, эти поделки не стоят потраченного на них времени.
Вон в разделе GUI пользователь пытается спросить как сделать программную анимацию, я знаю ? да конечно но я не скажу, он не поймет так думает иначе, по учебнику.
О том как гонять на "долбилках" (таймеры, потоки) кубик тобишь ваш мячик большого ума не надо, дальше то что ? Вы потрудились создать ракету бота ? или по вашей змейке пройдемся, вы видели современные игры "Змейка", у меня вот вопрос почему вы сделали змейку где за шаг берется целая клетка ? Так делали в тех же 80х и не потому что это мода была, так были устроены языки программирования тогда когда за шаг брался один псевдо-символ 8х8 пикселей. Почему не сделать современней красивей, еще раз Вам задаю вопрос с чего вы взяли что ваш "мусор" игры созданные по понятиям 40 летней давности чему то могут научить ?

Еще и удивление, ну да конечно вы же на это время потратили да ? Как там говорил "Кирпич" -Если бросаю кость то не важно нравиться она или нет.
А все таки я жду ваш движек 3Д, с вашим статусом делать такой вот "Понг" стыдно....
0
4176 / 2282 / 387
Регистрация: 05.10.2013
Сообщений: 6,385
Записей в блоге: 177
17.12.2019, 22:30 204
Нужно сначала учиться писать маленькие игры, тренироваться на них, постепенно эти игры будут развиваться с теми кто их пишет. Добавлять постепенно: текст, изображения, звук, игру на двоих (то есть сокеты), 3D и т.д. Мы все живые луди. Мы не можем сразу взять и реализовать скелетную анимацию на шейдерном OpenGL. Нужно через труд к этом идти, через практику. Увидел, что где-то реализован вывод шрифта и туториал под рукою, можешь открыть и взять на вооружение, сделать частью себя, довести до автоматизма, переходить на следующий этап, его доводить до автоматизма и т.д. Многие учатся так программировать через игры. Потому что это весело делать разные маленькие игрушки. Я сейчас работаю над сетевыми крестиками ноликами. Мой сервер будет на бесплатном хостинге Heroku. Пишу на TypeScript, Node.js, Express, Hadlebars, socket.io. За одно веб программирование изучаю, то есть CSS и HTML. Сделаю возможность создавать комнаты для двух человек. Далее, эти наработки можно будет использовать для других браузерных сетевых игр. Для клиента можно будет взять либо WebGL, либо Phaser (фреймворк на WebGL, с возможностью программирования на TypeScript). Можно сделать Крестики-нолики в 3D на чистом WebGL/GLSL либо взять движок Babylon.js, который написан на TypeScript. Давайте не стыдить друг друга, а выкладывать свои достижения, чтобы мотивировать других. Здесь люди иногда не выкладывают исходники, а выкладывают видео или скриншоты. Я может тоже напишу Крестики-нолики и покажу результат, а исходники не буду выкладывать - может использую свои исходники для выполнения заказов. Если не хотите выкладывать исходники, то выложите скриншоты, какие игры вы сделали. По-моему, никаких правил нет, которые обязывают выкладывать исходники в этой теме. Многое же и не смотрят исходники. Я часто запускал игры из этой темы, если выкладывали EXE. Лучше выкладывать EXE (или исполняемые файлы для Linux и macOS). Мне очень интересно запускать и пробовать играть в чьи-то игрушки.
0
287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
18.12.2019, 08:17 205
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Если не хотите выкладывать исходники, то выложите скриншоты, какие игры вы сделали.
В одной недалекой теме я персонально для Вас 30 минутное видео выкладывал своих игр, вы даже не смотрели, так что же вы тогда несете...

О уже крестики-нолики на подходе да еще и по сети, ваши игры не учат не чему, на ваших потугах не создать и жалкую аркаду.
я могу вас просто закидать первокласными туториалами и книгами с исходниками по 2D играм, там есть все от аркад до лабиринтов и анимации но есть одно НО, они на AS2-AS3 а это уже мертво... я это понимаю так как изучал а вы то нет как и остальные, а переписывать мне лень.

Ваши понги как и крестики-нолики всего лишь тешат ваше самолюбие в этом разделе пора это признать. А цена таким поделкам даже даром не нужно...
0
Evg
Эксперт CАвтор FAQ
21147 / 8163 / 628
Регистрация: 30.03.2009
Сообщений: 22,463
Записей в блоге: 30
18.12.2019, 10:20 206
Nidl, складывается ощущение, что тебя кто-то заставляет читать данную тему, да ещё и денег просит за просмотр. Не нравится - не читай. Если лично для тебя в данной теме пользы нет, то это вовсе не означает, что пользы нет ни для кого. Если вся суть твоего появления в данной теме сводится к тому, чтобы высказать недовольство в адрес 8Observer8, то на форуме есть личка, пиши туда. Не надо утомлять других людей чтением своих опусов, которые кроме тебя вряд ли кому-то интересны
3
287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
18.12.2019, 10:48 207
Evg,
Цитата Сообщение от Evg Посмотреть сообщение
складывается ощущение, что тебя кто-то заставляет читать данную тему
тема публична а значит как посетитель я прочел ее, а прочел от самого первого поста данную тему и будучи хорошим практикующим знатоком по созданию 2D игр, в частности аркад, высказал свое мнение о практичности данной темы.
Не думаю что тема станет чудесной если каждый день я буду закидывать ее "Понгами", "Крестиками-ноликами", "Галактикой", "Пакманами" которые пишутся от 1 до 2 часов каждая, и прочими поделками которые являются простыми и конечными и не несут ничего образовательного и не подразумевают никакого развития мышления для более сильных проектов, причем автор темы врятле задумывал данную тему что она вместо роста скатиться вниз, подобные разделы требуют очень хорошей модерации дабы не превращаться в свалку поделок "первоклашек".
Цитата Сообщение от Evg Посмотреть сообщение
Если лично для тебя в данной теме пользы нет, то это вовсе не означает, что пользы нет ни для кого
Вы уверены в этом ? что есть хоть кому то сейчас польза от этой темы? Когда 90% пишут на Unity и там все эти поделки образно говоря делаются в 15 кликов мыши следуя флажкам подсказкам.
Последний "Понг" с управлением для двух игроков это уже дно развития данной ветки.
Я все сказал.
0
287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
19.12.2019, 12:53 208
Ну а ЧО

Java
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.ConvolveOp;
import java.awt.image.Kernel;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
 
 
 
public class Ray
{
    public JLayeredPane swap;
    public boolean[] key = {false, false};
    public int[] size = {800, 600};
    public JLabel jl;
    public int shipX;
    public int s = 3;
    public JLabel[] st = new JLabel[18];
    public JLabel[] as = new JLabel[5];
    public int[] asteroidY = new int[as.length];
    public int[] ySt = new int[st.length];
    public JLabel bl; 
    public int bulletX;
    public int bulletY;
    public int r;
    public JTextArea score;
    public boolean flag = true;
    
    
    public Ray()
    {
        make_Window();
        make_Ship();
        make_Bullet();
        make_Star();
        make_Asteroid();
        make_Score();
        
        swap.requestFocus();
        new WorkerThread();
    }
    
    
    private void make_Window()
    {
        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(800, 600));
        panel.setOpaque(false);
        
        JFrame win = new JFrame("Ray");
        swap = new JLayeredPane();
        swap = win.getLayeredPane();
        win.add(panel);
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        win.setResizable(false);
        win.getContentPane().setBackground(Color.BLACK);
        win.pack();
        win.setLayout(null);
        win.setLocationRelativeTo(null);
        win.setVisible(true);
        
        swap.addKeyListener(new imputListener());
    }
    
    
    public class imputListener implements KeyListener
     { 
         public void keyPressed(KeyEvent e)
         {
             switch (e.getKeyCode()) 
             {
                case KeyEvent.VK_LEFT:
                    key[0] = true;
                break;
                case KeyEvent.VK_RIGHT:
                    key[1] = true;
                break;
                case KeyEvent.VK_UP:
                    if (!bl.isVisible())
                    {
                        bulletX = jl.getX() + jl.getWidth()/2 - bl.getWidth()/2;
                        bulletY = jl.getY() - bl.getHeight();
                        bl.setVisible(true);
                    }
                break;
             }
         }
         
         
         public void keyReleased(KeyEvent e)
         {
             switch (e.getKeyCode()) 
             {
                case KeyEvent.VK_LEFT:
                    key[0] = false;
                break;
                case KeyEvent.VK_RIGHT:
                    key[1] = false;
                break;
                case KeyEvent.VK_UP:
                    //...
                break;
             }
         }
         public void keyTyped(KeyEvent e){}
     }
    
    
    private void make_Ship()
    {
        int[] xPoint = {25,0,25,50};
        int[] yPoint = {0,75,100,75};
        int nPoint = 4;
        
        BufferedImage bf = new BufferedImage(50, 100, BufferedImage.TYPE_INT_ARGB);
        Graphics g = bf.createGraphics();
        ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.setColor(new Color(125,90,255));
        g.fillPolygon(xPoint, yPoint, nPoint);
        g.drawImage(bf, 0, 0, null);
        g.dispose();
        
        jl = new JLabel();
        jl.setBounds(size[0]/2-50/2, size[1]-100, 50, 100);
        jl.setLayout(null);
        jl.setOpaque(false);
        jl.setIcon(new ImageIcon(bf));
        jl.setVisible(true);
        swap.add(jl, new Integer(1), 0);
 
        bf.flush();
        
        shipX = jl.getX();
    }
    
    
    private void make_Score()
    {
        score = new JTextArea();
        score.setBounds(700, 0, 50, 100);
        score.setOpaque(false);
        score.setFont(new Font("SansSerif",Font.BOLD, 25));
        score.setForeground(Color.WHITE);
        score.setText("0");
        score.setSelectionColor(new Color(153, 153, 0));
        score.setLayout(null);
        swap.add(score, new Integer(3), 0);
    }
    
    
    private void make_Asteroid()
    {
        int arr[] = {250, 500, 750, 1000, 1250};
        for (int i = 0; i < as.length; i++)
        {
            int[] xPoint = {
                    new Random().nextInt(29),
                    new Random().nextInt(29)+30,
                    new Random().nextInt(29)+60,
                    new Random().nextInt(29)+60,
                    new Random().nextInt(29)+60,
                    new Random().nextInt(29)+30,
                    new Random().nextInt(29),
                    new Random().nextInt(29)
                    };
            int[] yPoint = {
                    new Random().nextInt(29),
                    new Random().nextInt(29),
                    new Random().nextInt(29),
                    new Random().nextInt(29)+30,
                    new Random().nextInt(29)+60,
                    new Random().nextInt(29)+60,
                    new Random().nextInt(29)+60,
                    new Random().nextInt(29)+30
                    };
            int nPoint = 8;
            
            BufferedImage bf = new BufferedImage(90, 90, BufferedImage.TYPE_INT_ARGB);
            Graphics g = bf.createGraphics();
            ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g.setColor(new Color(125,90,255));
            g.fillPolygon(xPoint, yPoint, nPoint);
            g.drawImage(bf, 0, 0, null);
            g.dispose();
            
            as[i] = new JLabel();
            as[i].setBounds(new Random().nextInt(600)+100, arr[i]*-1, 90, 90);
            as[i].setName(as[i].getY()*-1+"");
            as[i].setLayout(null);
            as[i].setOpaque(false);
            as[i].setIcon(new ImageIcon(bf));
            as[i].setVisible(true);
            swap.add(as[i], new Integer(2), 0);
 
            bf.flush();
            
            asteroidY[i] = as[i].getY();
        }
    }
    
    
    private void make_Bullet()
    {
        bl = new JLabel()
        {
            private static final long serialVersionUID = 1L;
 
            
            protected void paintComponent(Graphics g)
            {
                super.paintComponent(g);
                BufferedImage b00 = new BufferedImage(30, 30, BufferedImage.TYPE_INT_ARGB);
                BufferedImage b01 = new BufferedImage(30, 30, BufferedImage.TYPE_INT_ARGB);
                
                g = b00.createGraphics();
                int[] xPoint = {0,24,24,0};
                int[] yPoint = {0,0,24,24};
                int nPoint = 4;
                g.setColor(new Color(225,90,155));
                g.fillPolygon(xPoint, yPoint, nPoint);
                g.drawImage(b00, 0, 0, null);
                g.dispose();
                b00.flush();
                g = b01.createGraphics();
                Graphics2D g2 = (Graphics2D)g;
                g2.translate(3, 3);
                g2.rotate(Math.toRadians(r), this.getWidth()/2-3, this.getHeight()/2-3);
                g2.drawImage(b00, 0, 0, null);
                g2.dispose();
                this.setIcon(new ImageIcon(b01));
                b01.flush();
            }
        };
        bl.setBounds(-50, -50, 30, 30);
        bl.setLayout(null);
        bl.setOpaque(false);
        bl.setVisible(false);
        swap.add(bl, new Integer(1), 0);
 
    }
    
    
    private void make_Star()
    {
        int[] arrStarSize = {6, 12, 18, 24};
        int[][] color = {{153,51,255},{255,255,0},{255,102,102},{127,0,255}};
        
        for (int i = 0; i < st.length; i++)
        {
            int s = new Random().nextInt(arrStarSize.length);
            BufferedImage bf = new BufferedImage(arrStarSize[s], arrStarSize[s], BufferedImage.TYPE_INT_ARGB);
            Graphics g = bf.createGraphics();
            ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
            g.setColor(new Color(color[s][0],color[s][1],color[s][2]));
            ((Graphics2D) g).setStroke(new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
            g.drawLine(arrStarSize[s]/2, 2, arrStarSize[s]/2, arrStarSize[s]-2);
            g.drawImage(bf, 0, 0, null);
            g.dispose();
            bf.flush();
            
            float[] matrix = new float[9];
            for (int b = 0; b < matrix.length; b++)
                matrix[b] = 1.0f/(float)matrix.length;
            Kernel kernel = new Kernel(3, 3, matrix);
            BufferedImageOp op = new ConvolveOp(kernel);
            bf = op.filter(bf, null);
            
            ySt[i] = new Random().nextInt(600);
            st[i] = new JLabel();
            st[i].setBounds(new Random().nextInt(800),
                    ySt[i], arrStarSize[s], arrStarSize[s]);
            st[i].setName(arrStarSize[s]/3-1 + "");
            st[i].setLayout(null);
            st[i].setOpaque(false);
            st[i].setIcon(new ImageIcon(bf));
            st[i].setVisible(true);
            swap.add(st[i], new Integer(0), i);
        }
    }
    
    
    class WorkerThread extends Thread
    {
        int fps = 15;
 
        
        public WorkerThread()
        {
            setDaemon(true); 
            start();
        }
 
        public void run()
        {
            while (flag)
            {
                //ship
                if (key[0])
                {
                    if (jl.getX() > 0)
                    {
                        shipX -= s;
                    }
                }
                else
                if (key[1])
                {
                    if (jl.getX() < size[0] - jl.getWidth())
                    {
                        shipX += s;
                    }
                }
                jl.setLocation(shipX, jl.getY());
                //stars
                for (int i = 0; i < st.length; i++)
                {
                    if (ySt[i] < 600)
                    {
                        ySt[i] += Integer.parseInt(st[i].getName());
                        st[i].setLocation(st[i].getX(), ySt[i]);
                    }
                    else
                    {
                        ySt[i] = 0;
                        st[i].setLocation(ThreadLocalRandom.current().nextInt(800), ySt[i]);
                    }
                }
                //bullet
                if (bl.isVisible())
                {
                    if (bulletY > -50)
                    {
                        bulletY -= s*2;
                        r += 5;
                        if (r > 90) r = 0;
                    }
                    else
                    {
                        bl.setVisible(false);
                        score.setText(Integer.parseInt(score.getText()) - 10 + "");
                    }
                    bl.setLocation(bulletX, bulletY);
                }
                //asteroid
                for (int i = 0; i < as.length; i++)
                {
                    if (asteroidY[i] < 600)
                    {
                        asteroidY[i] += s;
                        as[i].setLocation(as[i].getX(), asteroidY[i]);
                    }
                    else
                    {
                        score.setText(Integer.parseInt(score.getText()) - 5 + "");
                        asteroidY[i] = (Integer.parseInt(as[i].getName()) + new Random().nextInt(500) + 900) * -1;
                        as[i].setLocation(ThreadLocalRandom.current().nextInt(600)+100, asteroidY[i]);
                    }
                }
                //hit
                for (int i = 0; i < as.length; i++)
                {
                    if (bl.getY() < as[i].getY() &&
                        bl.getX() < as[i].getX() + as[i].getWidth() &&
                        bl.getX() + bl.getWidth() > as[i].getX())
                    {
                        score.setText(Integer.parseInt(score.getText()) + 10 + "");
                        bl.setVisible(false);
                        bl.setLocation(-50, -50);
                        asteroidY[i] = (Integer.parseInt(as[i].getName()) + new Random().nextInt(500) + 900) * -1;
                        as[i].setLocation(ThreadLocalRandom.current().nextInt(600)+100, asteroidY[i]);
                    }
                }
                //:)
                if (score.getText().equals("1000"))
                {
                    flag = false;
                    score.setText("0");
                    bl.setVisible(false);
                    bl.setLocation(-50, -50);
                    for (int i = 0; i < as.length; i++)
                    {
                        asteroidY[i] = (Integer.parseInt(as[i].getName()) + new Random().nextInt(500) + 900) * -1;
                        as[i].setLocation(ThreadLocalRandom.current().nextInt(600)+100, asteroidY[i]);
                    }
                    
                    JOptionPane.showMessageDialog(null,
                            "Мир может спать спокойно," + '\n' + "если у нашей Галактики такие стражи",
                            "Победа",
                            JOptionPane.PLAIN_MESSAGE, null);
                    
                    flag = true;
                    for (int i = 0; i < key.length; i++)
                    {
                        key[i] = false;
                    }
                }
                else
                if (Integer.parseInt(score.getText()) <= -5)
                {
                    flag = false;
                    score.setText("0");
                    bl.setVisible(false);
                    bl.setLocation(-50, -50);
                    for (int i = 0; i < as.length; i++)
                    {
                        asteroidY[i] = (Integer.parseInt(as[i].getName()) + new Random().nextInt(500) + 900) * -1;
                        as[i].setLocation(ThreadLocalRandom.current().nextInt(600)+100, asteroidY[i]);
                    }
                    
                    JOptionPane.showMessageDialog(null,
                            "Вы – опозорили честь мундира!",
                            "Поражение",
                            JOptionPane.PLAIN_MESSAGE, null);
                    
                    flag = true;
                    for (int i = 0; i < key.length; i++)
                    {
                        key[i] = false;
                    }
                }
 
                try
                {
                    sleep(fps);
                }
                catch (InterruptedException e)
                {
                    //...
                }
            }
        }
    }
 
    
    public static void main(String[] args)
    {
        new Ray();
    }
}
Галактика в опасности, бла-бла-бла, вы последняя надежда, бла-бла-бал, вперед рыбешка к бою
0
Миниатюры
Несколько небольших игрушек  
287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
19.12.2019, 12:58 209
ох оказия то какая, надо вместо

Java
1
if (score.getText().equals("1000"))
поставить это
Java
1
if (Integer.parseInt(score.getText()) >= 1000)
0
snake32
19.12.2019, 18:03
  #210

Не по теме:

Nidl, архитектура монолитная, не расширяемая (где паттрены проектирования?).
Отрисовка не способная отобразить даже тысячи картинок в реалтайме (где Vulkan API?)
Однопоточное ПО в 2020 году?
Фууу... :)
У 8Observer8, хотя бы более продвинутая отрисовка ;)

0
287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
19.12.2019, 19:56 211
snake32,
Цитата Сообщение от snake32 Посмотреть сообщение
архитектура монолитная, не расширяемая
Ну развить не проблема , это у меня стиль такой, я пишу одним полотном не люблю дробить код если он не больше 10000 строчек, а вот в том что код монолит здесь вы не правы, для меня он еще как модульный. Возьмем этот код немного припудрим и вуаля
0
Миниатюры
Несколько небольших игрушек   Несколько небольших игрушек   Несколько небольших игрушек  

287 / 141 / 66
Регистрация: 22.02.2017
Сообщений: 580
19.12.2019, 20:06 212
Цитата Сообщение от snake32 Посмотреть сообщение
Отрисовка не способная отобразить даже тысячи картинок в реалтайме
java увы не может вытянуть и 200 картинок в реалтайме, оптимально пара десятков даже виртуальная машина захлебыватся начинает, но если с умом то для 90% аркад этого хватает. Главное не лепить все и сразу а отрисовываать в зоне видимости пользователя.
многопоточность в java тоже не панацея опытным путем я вышел что максимум 5-6 потоков оптимально, дальше опять же виртуальная java машина закипает.
0
0 / 0 / 0
Регистрация: 22.07.2020
Сообщений: 3
22.07.2020, 15:30 213
Otaka, не могли ли вы объяснить ваш код в игре "Пятнашки". Так как я новичок в этой сфере и много чего не знаю, мне было бы интересно узнать побольше об этом. За ранее спасибо!
0
0 / 0 / 0
Регистрация: 09.08.2020
Сообщений: 1
09.08.2020, 01:58 214
https://yadi.sk/d/i0eBSSGmVNBJQA

тир
0
Миниатюры
Несколько небольших игрушек  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2020, 01:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать структуру данных. Найти количество названий игрушек, у которых цена меньше общей средней цены всех игрушек
помогите... Создать структуру с данными в которой должно происходить следующее: Добавить и...

6 небольших программок
Есть человек который может объяснить/просто написать как составить 6 небольших...

Есть 2 небольших вопроса...
Ребят,помогите пожалуйста. Вообщем есть 2 вопроса 1)Можно ли сделать так чтоб линки на документы...

Верстка небольших блочков
Помогите, как можно реализовать такую штуку, я примерно понимаю как, но на абсолютном...


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

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

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