Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Visual Basic

Ответ
 
Опции темы
Старый 07.10.2010, 15:58   #61
Лit}{Ъ
ПроЭктировщик
 
Аватар для Лit}{Ъ
 
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений
(для 7 пользователей)
Сообщение Ответ: Проблемы с переводом

У меня есть программа. Движок на вб 6.0, там больше 2000 строк. Я хочу перевести его на более современный язык. Это последняя проблема (из тех что обнаружены). В движке очень активно используются типы (например чтобы не заводить массивы XNpc YNpc и т.д. я использую тип NPC с характеристикаим Х и Y) это очень удобная функция(Как нам объясняли это и есть оьъекно ориентированное прогаммирование) очень жаль что её так изнахратили в 2010.

Хотя, я тут подумал - что если создать одну большую процедуру и прогемороиться описать в ней выделение памяти всем массивам?(риторический вопрос)

Другое дело - в 2010 есть ну очень хорошая функция - динамические массивы. Как быть с ними - выделить память N -элементам, а дальше выделять по мере увеличения размера?
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
(Offline)
 
Ответить с цитированием
Старый 07.10.2010, 17:25   #62
h1dd3n
Бывалый
 
Аватар для h1dd3n
 
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений
(для 450 пользователей)
Ответ: Проблемы с переводом

Сообщение от Лit}{Ъ Посмотреть сообщение
очень жаль что её так изнахратили в 2010.
Каво изнахратили? Создай класс Player с полями int X, int Y и создавай свои объекты как и раньше (хотя думаю в 2010 все так и осталось как раньше просто ты чего-то напутал).
Хотя, я тут подумал - что если создать одну большую процедуру и прогемороиться описать в ней выделение памяти всем массивам?(риторический вопрос)
Выделяй память массивам в конструкторе.
Вот то что ты хочешь (vb .net не знаю это с шарпа конвертировано):
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Public Class Program
    Public Shared Sub Main(ByVal args As String())
        Dim somep As New Player(20, 50)
        Console.Read()
    End Sub
End Class
Public Class Player
    Public Items As Integer()
    Public Sub New(ByVal pX As Integer, ByVal pY As Integer)
        Items = New Integer(99) {}
        X = pX
        Y = pY
    End Sub
    Public X As Integer
    Public Y As Integer
End Class
(Offline)
 
Ответить с цитированием
Старый 07.10.2010, 20:10   #63
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблемы с переводом

Сообщение от Лit}{Ъ Посмотреть сообщение
очень жаль что её так изнахратили в 2010.
Ну и выражение...

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

Вот пример с отложенной инициализацией массивов внутри структуры. При первом обращении к массиву через свойство он будет создан. Переменная хранящая массив скрыта.
Public Structure A
        
Private _b() As Long

        
Public ReadOnly Property B() As Long()
            
Get
                
If _b Is Nothing Then
                    Dim c
(100) As Long
                    _b 
c
                End 
If
                Return 
_b
            End Get
        End Property
    End Structure

    
Public Shared C(100) As 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Лit}{Ъ (07.02.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com